CSS

CSS flow-start and flow-end alignment keywords 链接已复制!

引入 flow-start/end 关键字作为现有 flex-start/end 关键字的值别名,如 CSSWG 中所述。这在布局反转的情况下用于对齐。

CSS Grid-Lanes 中的 flow-start 指示容器的起始边缘,即元素开始放置的位置。这在元素放置方向反转的情况下非常有用(例如fill-reverse和track-reverse ,详见 CSSWG 的此 issue:[css-grid-3][masonry] item-flow row vs. column in masonry layouts · Issue #12803 · w3c/csswg-drafts)。由于这些属性充当值别名,我们期望 flex-start/end 也遵循 Grid-Lanes 中的逻辑方向,这将扩展这些关键字的定义,使其不再仅限于 flexbox 的特殊行为,而是适用于任何逻辑起始/结束位置与其物理起始/结束位置不同的布局模式。

对于序列化,如果使用 flex-start/end 或 flow-start/end,则返回的序列化值应为 flow-start/end。

功能 (Project Fugu)

HTML install element 链接已复制!

现在,Chrome 可以根据清单 URL 和可选的清单 ID 触发浏览器安装 Web 应用的请求。`<install>` 元素无需 JavaScript 即可实现跨域 Web 应用安装,并且相比处理beforeinstallprompt事件,它能提供更佳的开发者体验。该元素与navigator.install()并行推出,后者是实现相同安装功能的命令式入口点。

管理员可以通过两种方式控制此功能:

  1. 企业策略WebAppInstallByUserEnabled可以广泛禁用用户 Web 应用程序安装,包括通过navigator.install()和 <install> 启动的安装。
  2. 权限策略、web应用程序安装可以允许或禁止在企业控制的来源(例如,内部站点/iframe)上使用此功能。

Web Install API 链接已复制!

从 Chrome 158 开始,全新的 Web Install API 允许网站提示用户安装 Web 应用,只需提供清单 URL 和可选的清单 ID 即可。`navigator.install navigator.install()方法支持跨域 Web 应用安装,并且相比处理beforeinstallprompt事件,它能提供更佳的开发者体验。此 API 与<install>元素同步推出,后者是访问相同安装功能的声明式入口点。

管理员可以通过两种方式控制此功能:

  1. 企业策略WebAppInstallByUserEnabled将全面禁用用户 Web 应用安装,包括通过navigator.install()和<install>发起的安装。
  2. 权限策略、web应用程序安装可以允许或禁止在企业控制的来源(例如,内部站点/iframe)上使用此功能。

多媒体

OfflineAudioContext incremental rendering 链接已复制!

此功能为 OfflineAudioContext 添加了一种增量渲染机制,以便可以增量处理音频图数据,而不是预先分配整个音频缓冲区。通过使用数据块增量交付数据,处理大量数据时无需对用户计算机的内存提出过高要求。

其他

Permissions Policy: focus-without-user-activation 链接已复制!

通过focus-without-user-activation权限策略,嵌入者可以控制嵌入内容的程序化焦点。当发起框架被拒绝此策略时,程序化的焦点更改(例如element.focus() 、 autofocus 、 window.focus()以及对话框和弹出框的焦点操作)将被阻止,除非该框架具有瞬时用户激活或焦点已在其子树内。这不会阻止对话框或弹出框的打开。用户发起的焦点操作(例如点击或 Tab 键切换)始终不受影响。Chromium 对跨域 iframe 中自动聚焦的现有限制保持不变:此策略可以进一步限制自动聚焦,但允许此策略并不会启用跨域框架中的自动聚焦。

该策略可通过Permissions-Policy HTTP 响应头或 iframe 的allow属性进行设置。支持焦点委托:即使子 iframe 的策略被拒绝,拥有焦点的父框架也可以通过编程方式将焦点传递给子 iframe;此外,一旦框架获得焦点,它就可以在其自身的子树内移动焦点。

closest-corner and farthest-corner radii for circle() and ellipse() basic shapes 链接已复制!

CSS 基本形状函数 circle() 和 ellipse() 除了原有的 closest-side 和 farthest-side 关键字外,还接受 closest-corner 和 farthest-corner 关键字。这些关键字解析为形状中心到参考框最近角或最远角的欧氏距离,与 radial-gradient() 的长期行为一致。它们适用于 clip-path、shape-outside 和 offset-path,因此渐变所接受的形状语法现在也适用于形状。

CL: https://chromium-review.googlesource.com/c/chromium/src/+/7767079

隔离 Web 应用

Source Specific Multicast for Direct Sockets API 链接已复制!

为直接套接字 API 添加了源特定组播 (SSM) 支持,允许隔离 Web 应用在加入组播组时选择性地指定源地址,以便仅接收来自该源的 UDP 数据包。如果没有指定源地址,`joinGroup()` 函数将使用任意源组播 (ASM),接收来自任何源发送到该组的数据包。SSM 对于在私有网络之外使用组播至关重要,它可以简化数据包路由,并按源地址在网络层过滤流量,从而缓解欺骗和拒绝服务攻击。

设备

待审核

Support for WebHID 链接已复制!

WebHID API 使 Web 应用程序能够通过 USB 和蓝牙与人机接口设备 (HID) 进行交互,超越了标准系统输入映射(例如鼠标、键盘、触摸屏和标准游戏手柄)。Web 应用程序可以请求用户授权连接到 HID 设备,发送和接收输入、输出和功能报告,以及检查报告描述符。

WebHID 已在 Chrome 89 中面向桌面平台(Windows、macOS、Linux 和 ChromeOS)推出。此次发布将现有的 WebHID API 带到 Android 版 Chrome 158 中(依赖于 Android 17 / API 级别 37 及更高版本中的新操作系统支持),而对 Web 公开的 API 接口没有任何更改。

如今的热门用途包括定制机械键盘、小键盘和游戏鼠标,校准游戏手柄,以及在呼叫中心集成硬件耳机呼叫控制。

WebView 不受支持,因为它没有设备选择器 UI 或权限 UX 功能。

此功能可通过以下企业策略进行控制:

网络/连接

WebTransport keying material export 链接已复制!

添加了 WebTransport.exportKeyingMaterial(),允许应用程序导出绑定到已建立的 WebTransport 会话的加密密钥材料。

该方法接受应用程序提供的二进制标签和上下文值以及请求的输出长度,并返回一个 Promise<Uint8Array>。Chromium 支持最大 255 字节的标签和上下文值,以及 1 到 4096 字节的输出长度。

对于基于 HTTP/3 的 WebTransport,Chromium 会在 TLS 导出器上下文中包含 WebTransport CONNECT 流 ID。这确保即使不同的 WebTransport 会话共享同一个底层 HTTP/3 连接,它们也能生成不同的密钥材料。

WebTransport receive stream 链接已复制!

添加了标准化的 WebTransportReceiveStream 接口,这是一个用于接收单向流和双向流的可读端的 ReadableStream 子类。它的 getStats() 方法返回每个流的字节计数器:bytesReceived 报告从网络接收的字节数,而 bytesRead 报告发送到应用程序的字节数。

WebTransport reliability attributes 链接已复制!

添加了 WebTransport.reliability 实例属性和 WebTransport.supportsReliableOnly 静态属性。这些 API 指示用户代理是否仅支持通过可靠连接使用 WebTransport,以及已建立的会话是否支持不可靠传输(例如数据报)。

在 Chromium 中,可靠性参数最初返回“pending”,在建立 HTTP/3 WebTransport 连接后变为“supports-unreliable”。由于 Chromium 目前不支持 HTTP/2 回退,因此 WebTransport.supportsReliableOnly 返回 false;任何成功建立的会话都使用 HTTP/3 并支持不可靠的数据报。