示例
清单版本
一个整数,用于指定您的软件包所需的清单文件格式版本。从 Chrome 开始 18 中,开发者 应该 指定 2 (不带引号),以便使用本说明中所述的格式 文档: 考虑从 Chrome 18 开始 弃用 清单版本 1。版本 2 目前并非 必需 ,但我们 在不久的将来,我们会停止支持使用已弃用的软件包 清单版本。尚未准备好跳转到 新的清单版本,可以明确指定版本 1 ,也可以不启用该密钥 如需详细了解清单文件格式的版本 1 和版本 2 之间的不同之处, manifest_version 文档。
存储区域的清单
与 local 和 sync 存储区域不同, managed 存储区域的结构必须为 声明为 JSON 架构 ,并经过 Chrome 的严格验证。此架构必须存储在 (由 "storage" 清单键的 "managed_schema" 属性指示)文件,并声明 应用支持的企业政策。 政策类似于选项,但是由系统管理员(而不是用户)配置的 从而为组织的所有用户预先配置应用。了解 Chrome 如何处理 政策 。 声明政策后,您可以通过 storage.managed API
清单 - 已启用离线功能
应用或扩展程序是否可离线工作。当 Chrome 检测到自己处于离线状态时,将在“新标签页”页面上突出显示此字段设为 true 的应用。 从 Chrome 35 开始,除非应用请求 "webview" 权限,否则应用被视为已启用离线功能,且 "offline_enabled" 的默认值为 true 。在这种情况下,系统会假定网络连接是必需的,并且 "offline_enabled" 默认为 false 。 "offline_enabled" 值还可用于确定在 ChromeOS 自助服务终端模式
清单 - 图标
代表扩展程序、应用或主题的一个或多个图标。您应始终提供 128x128 图标;安装期间以及由 Chrome 应用商店使用。扩展程序还应提供 48x48 的图标,在扩展程序管理页面 (chrome://extensions) 中使用。您还可以 指定将用作扩展程序页面的网站图标的 16x16 图标。 图标通常应采用 PNG 格式,因为 PNG 可最有效地支持透明度。他们 不过,可以采用 WebKit 支持的任何格式,包括 BMP、GIF、ICO 和 JPEG。这里有 指定图标的示例: 如果您使用
清单 - 名称和简称
name 和 short_name 清单属性是用于标识应用的简短纯文本字符串。您可以为这两个字段指定特定于语言区域的字符串;如需了解详情,请参阅 国际化 。 name (最多 45 个字符)是应用的主要标识符,是必填字段。 它显示在以下位置: short_name (建议不超过 12 个字符)是应用名称的简短版本。这是一个可选字段,如果未指定,则系统会使用 name ,但可能会将其截断。通常在没有足够空间来显示全名时使用简称,例如:
清单文件格式
每个应用都有一个 JSON 格式的清单文件,名为 manifest.json ,它提供了重要的 信息。 以下代码显示了支持的 Google Apps 清单字段,其中包含指向 讨论每个字段。
清单 - 版本
一到四个以英文句点分隔的整数,用于标识此扩展程序的版本。有几项规则适用于整数:它们必须介于 0 到 65, 535 之间(包括 0 和 65, 535),并且非零整数不能以 0 开头。例如,99999 和 032 都无效。 以下是有效版本的一些示例: 自动更新系统会比较版本,以确定已安装的扩展程序是否需要更新。如果已发布的扩展程序的版本字符串比已安装的扩展程序更新,则该扩展程序会自动更新。 比较从最左边的整数开始。如果这些整数相等,则比较右侧的整数,依此类推。例如,1.2.0 是比
清单 - 要求
应用或扩展程序所需的技术。Chrome 应用商店等托管网站可能会使用 此列表以阻止用户安装无法在其计算机上正常运行的应用程序或扩展程序。 支持的要求目前包括“3D”和“插件”;可能还需要检查 。 “3D”表示 GPU 硬件加速。“webgl”是指 WebGL, API 。有关 Chrome 浏览器 3D 图形支持的详情,请参见关于 WebGL 和 3D 的帮助文章。 图形 。您可以列出应用所需的 3D 相关功能,如 示例: “插件”要求指明应用程序或扩展程序是否需要 NPAPI
清单 - 沙盒
警告 :从版本 57 开始,Chrome 将不再允许使用外部 Web 内容(包括 嵌入式框架和脚本)。请改用 网页视图 。 定义要在沙盒化的唯一源中提供的一组应用或扩展程序页面。 以及要与它们搭配使用的内容安全政策处于沙盒中有两个影响: 沙盒化页面不受其余组件所使用的 内容安全政策 (CSP) 的约束 应用或扩展程序(具有自己单独的 CSP 值)。也就是说,它可以 使用内嵌脚本和 eval 。 例如,以下代码展示了如何指定在具有 自定义 CSP: 如果未指定,则默认的
externally_connectable
externally_connectable 清单属性用于声明哪些扩展程序、应用和网页可以 通过 runtime.connect 和 runtime.sendMessage 连接到您的应用。 有关消息传递的教程,请参阅 跨扩展程序和应用消息传递 和 发送消息 来自网页 。 如果未在应用清单中声明 externally_connectable ,则所有扩展程序和应用都可以 已连接,但所有网页都无法连接。因此,当您更新清单以使用 externally_connectable ,如果未指定
清单 - Nacl 模块
从 MIME 类型到处理每种类型的 Native Client 模块的一个或多个映射。对于 以下代码段中粗体代码会将 Native Client 模块注册为 OpenOffice 电子表格 MIME 类型的处理程序。 “path”的值是 Native Client 清单(.nmf 文件)在扩展程序中的位置 目录。有关 Native Client 和.nmf 文件的详情,请参见 Native Client 技术 概览 。 每个 MIME 类型只能与一个.nmf 文件相关联,但单个.nmf
清单 - 说明
描述扩展程序的纯文本字符串(无 HTML 或其他格式;不超过 132 个字符)。该说明应适合浏览器的扩展程序管理界面和 Chrome 应用商店 。您可以为此字段指定特定于语言区域的字符串;如需了解详情,请参阅 国际化 。
清单 - 键
此值可用于在开发期间加载扩展程序、应用或主题时控制其唯一 ID。 如需获取合适的键值对,请先通过.crx 文件安装扩展程序(您可能需要 上传扩展程序 或 手动将其打包 )。然后,在 用户数据目录 中查找文件 Default/Extensions/_<extensionId>_/_<versionString>_/manifest.json 。您会看到已填充的键值对。
清单 - 默认语言区域
指定包含此扩展程序的默认字符串的 _locales 的子目录。在具有 _locales 目录的扩展程序中, 必须 填写此字段;在没有 _locales 目录的扩展程序中,此字段 必须不存在 。如需了解详情,请参阅 国际化 。
工作区流
RouteHandlerCallbackOptions StreamSource | Promise< StreamSource > 响应 ReadableStream BodyInit 接受多个来源 promise,每个 promise 都可以解析为 Response、 ReadableStream 或 BodyInit 。 返回一个对象,该对象公开了 ReadableStream 以及每个单独的流 以及一个 promise(用于指示 流完成(适用于传递给 FetchEvent 的
Chrome Web Store
Chrome Web Store 一个在线市场,用户可以在其中浏览扩展程序和主题。在那里发布您的扩展程序,让全世界的用户都能访问。 dashboard 开发者信息中心 发布您的扩展程序并管理您的商店商品。 local_mall Chrome Web Store 浏览 Chrome 应用商店中的扩展程序。 policy 开发者政策 为 Chrome 应用商店创建扩展程序的最佳做法和指南。 在发布您的首个扩展程序之前,请务必遵循这些步骤和最佳做法,以确保顺利提交扩展程序。 准备扩展程序文件
chrome.contentSettings
使用 chrome.contentSettings API 更改用于控制网站是否可以使用 Cookie、JavaScript 和插件等功能的设置。更一般地说,内容设置可让您针对每个网站(而非全局)自定义 Chrome 的行为。 您必须在扩展程序的清单中声明 "contentSettings" 权限,才能使用该 API。例如: 您可以使用模式来指定每项内容设置影响的网站。例如, https://*.youtube.com/* 指定了 youtube.com 及其所有子网域。内容设置模式的语法与
chrome.bookmarks
此权限会 触发警告 。 使用 chrome.bookmarks API 创建、整理和以其他方式处理书签。另请参阅 替换页面 ,您可以使用该页面创建自定义书签管理器页面。 您必须在 扩展程序清单 中声明“书签”权限,才能使用 Bookmarks API。例如: 书签采用树状结构,其中树中的每个节点都是一个书签或文件夹(有时称为 组 )。树中的每个节点都由 bookmarks.BookmarkTreeNode 对象表示。 BookmarkTreeNode 属性在整个 chrome.bookmarks
chrome.bookmarks
使用 chrome.bookmarks API 创建、整理和以其他方式处理书签。另请参阅 替换页面 ,您可以使用该页面创建自定义书签管理器页面。 您必须在 扩展程序清单 中声明“书签”权限,才能使用 Bookmarks API。例如: 书签采用树状结构,其中树中的每个节点都是一个书签或文件夹(有时称为 组 )。树中的每个节点都由 bookmarks.BookmarkTreeNode 对象表示。 BookmarkTreeNode 属性在整个 chrome.bookmarks API
chrome.contentSettings
使用 chrome.contentSettings API 更改用于控制网站是否可以使用 Cookie、JavaScript 和插件等功能的设置。更一般地说,内容设置可让您针对每个网站(而非全局)自定义 Chrome 的行为。 您必须在扩展程序的清单中声明“contentSettings”权限,才能使用该 API。例如: 您可以使用模式来指定每项内容设置影响的网站。例如, https://*.youtube.com/* 指定了 youtube.com 及其所有子网域。内容设置模式的语法与
人工智能
Chrome 上的 AI 欢迎来到 AI 赋能的网络时代。了解 AI 如何让开发者更轻松地打造强大的 Web 体验。 重新构想 Chrome 专用 Gemini Nano 的强大功能。 内置 AI 我们将在 Chrome 中引入 Gemini Nano,这是 Gemini 生态系统中最高效的模型。 在客户端工作 客户端 AI 为用户带来强大的模型,同时保护数据隐私并缩短延迟时间。 开始使用 了解开始使用内置 AI 构建功能和应用时需满足的要求。 可用的 API 查看可在 Chrome 中与
chrome.app.runtime
使用 chrome.app.runtime API 管理应用生命周期。应用运行时会管理应用安装、控制活动页面,并且可以随时关闭应用。 任意(可选) 可选的开发者指定数据,要嵌入的应用在做出嵌入决策时可以使用这些数据。 字符串 void 允许 embedderId 将此应用嵌入 <appview> 元素中。 url 用于指定要嵌入的内容。 allow 函数如下所示: 字符串 void 阻止 embedderId 将此应用嵌入 <appview> 元素中。 deny
chrome.printing
使用 chrome.printing API 将打印作业发送到安装在 Chromebook 上的打印机。 您需要在 扩展程序清单 中声明 "printing" 权限,才能使用所有 chrome.printing 方法和事件。例如: 以下示例演示了如何使用打印命名空间中的每种方法。此代码复制自或基于 extensions-samples GitHub 代码库中的 api-samples/printing 。 以下示例使用 onJobStatusChanged 处理脚本来在 jobStatus
chrome.userScripts
使用 userScripts API 在“用户脚本”上下文中执行用户脚本。 如需使用 User Scripts API ( chrome.userScripts ),请将 "userScripts" 权限添加到 manifest.json,并为您要运行脚本的网站添加 "host_permissions" 。 用户脚本是指注入到网页中用于修改其外观或行为的一小段代码。与其他扩展程序功能(例如 内容脚本 和 chrome.scripting API )不同,用户脚本 API
chrome.sessions
使用 chrome.sessions API 查询和恢复浏览会话中的标签页和窗口。 字符串 外部设备的名称。 会话 [] 外部设备的打开窗口会话列表,按修改时间从最近到最久排序。 编号(可选) 要从请求的列表中提取的条目数量上限。省略此参数可提取最大条目数 ( sessions.MAX_SESSION_RESULTS )。 数值 窗口或标签页关闭或修改的时间,以自公元纪年开始计算的秒数表示。 标签页 (可选) tabs.Tab (如果此条目描述的是标签页)。系统会设置此值或
chrome.printing
使用 chrome.printing API 将打印作业发送到安装在 Chromebook 上的打印机。 您需要在 扩展程序清单 中声明 "printing" 权限,才能使用所有 chrome.printing 方法和事件。例如: 以下示例演示了如何使用打印命名空间中的每种方法。此代码复制自 extensions-samples GitHub 代码库中的 api-samples/printing ,或基于该代码库。 以下示例使用 onJobStatusChanged 处理脚本来在
chrome.sessions
使用 chrome.sessions API 查询和恢复浏览会话中的标签页和窗口。 字符串 外部设备的名称。 会话 [] 外部设备的打开窗口会话列表,按修改时间从最近到最久排序。 编号(可选) 要从请求的列表中提取的条目数量上限。省略此参数可提取最大条目数 ( sessions.MAX_SESSION_RESULTS )。 数值 窗口或标签页关闭或修改的时间,以自公元纪年开始计算的秒数表示。 标签页 (可选) tabs.Tab (如果此条目描述的是标签页)。系统会设置此值或
探索 Chrome
探索 Chrome Chrome 134(Beta 版) Chrome 133 Chrome 132 Chrome 131 Chrome 130 Chrome 129 Chrome 128 Chrome 127 Chrome 126 Chrome 125 Chrome 124 Chrome 123 Chrome 122 Chrome 121 Chrome 120 Chrome 119 Chrome 的新变化 开发者工具 开发者工具提示 工程博客 无障碍 媒体 WebGPU 博客 案例研究 视频
chrome.i18n
使用 chrome.i18n 基础架构在整个应用或扩展程序中实现国际化。 如果扩展程序包含 /_locales 目录,则 manifest 必须定义 "default_locale" 。 您需要将其所有面向用户的字符串放入名为 messages.json 的文件中。每次添加新的语言区域时,您都需要在名为 /_locales/_localeCode_ 的目录下添加一个消息文件,其中 localeCode 是一个代码,例如英语的代码为 en 。 以下是支持英语 ( en )、西班牙语 ( es )
在 Windows 上基于 Chromium 的浏览器中改进了文本渲染
Edge 团队添加了直接在 Chromium 中遵循 Windows ClearType 调谐器值的支持,从而改进了 Windows 上基于 Chromium 的浏览器中的文本渲染效果。
chrome.storage
使用 chrome.storage API 存储、检索和跟踪用户数据的更改。 如需使用 Storage API,请在扩展程序 manifest 中声明 "storage" 权限。例如: Storage API 提供了一种扩展程序专用的方法来保留用户数据和状态。它与 Web 平台的存储 API( IndexedDB 和 Storage )类似,但旨在满足扩展程序的存储需求。以下是一些关键功能: 虽然扩展程序可以在某些上下文(弹出式窗口和其他 HTML 页面)中使用 Storage 接口(可通过
chrome.storage
使用 chrome.storage API 存储、检索和跟踪用户数据的更改。 Storage API 提供了一种扩展程序专用的方法来保留用户数据和状态。它类似于 Web 平台的存储 API( IndexedDB 和 Storage ),但旨在满足扩展程序的存储需求。以下是一些关键功能: 虽然扩展程序可以在某些上下文(弹出式窗口和其他 HTML 页面)中使用 [ Storage ][mdn-storage] 接口(可通过 window.localStorage
chrome.enterprise.platformKeys
使用 chrome.enterprise.platformKeys API 生成密钥并为这些密钥安装证书。证书将由平台管理,可用于 TLS 身份验证、网络访问,或由其他扩展程序通过 chrome.platformKeys 使用。 如需使用此 API 注册客户端证书,请按以下步骤操作: 使用 enterprise.platformKeys.getTokens 获取所有可用令牌。 找到 id 等于 "user" 的令牌。之后使用此令牌。 使用 generateKey 令牌方法(在
chrome.enterprise.platformKeys
使用 chrome.enterprise.platformKeys API 生成密钥并为这些密钥安装证书。证书将由平台管理,可用于 TLS 身份验证、网络访问,或由其他扩展程序通过 chrome.platformKeys 使用。 如需使用此 API 注册客户端证书,请按以下步骤操作: 使用 enterprise.platformKeys.getTokens() 获取所有可用令牌。 找到 id 等于 "user" 的令牌。之后使用此令牌。 使用 generateKey() 令牌方法(在
chrome.runtime
使用 chrome.runtime API 检索服务工件、返回清单的详细信息,以及监听和响应扩展程序生命周期中的事件。您还可以使用此 API 将网址的相对路径转换为完全限定网址。 Runtime API 提供了多种方法来支持您的扩展程序可使用的多种功能领域: 运行时 API 上的大多数方法 不需要 任何权限,但 sendNativeMessage 和 connectNative 需要 nativeMessaging 权限。 以下示例展示了如何在清单中声明 nativeMessaging 权限:
chrome.permissions
使用 chrome.permissions API 在运行时(而不是安装时)请求 声明的可选权限 ,以便用户了解需要这些权限的原因,并仅授予必要的权限。 权限警告旨在说明 API 授予的功能,但其中一些警告可能并不明显。借助 Permissions API,开发者可以解释权限警告并逐步引入新功能,让用户能够无风险地了解扩展程序。这样,用户可以指定他们愿意授予的访问权限级别以及想要启用的功能。 例如, 可选权限扩展程序 的核心功能会替换新标签页。其中一个功能是显示用户当天的目标。此功能仅需要
chrome.permissions
使用 chrome.permissions API 在运行时(而不是安装时)请求 声明的可选权限 ,以便用户了解需要这些权限的原因,并仅授予必要的权限。 权限警告旨在说明 API 授予的功能,但其中一些警告可能并不明显。借助 Permissions API,开发者可以解释权限警告并逐步引入新功能,让用户能够无风险地了解扩展程序。这样,用户可以指定他们愿意授予的访问权限级别以及他们想要启用的功能。 例如, 可选权限扩展程序 的核心功能会替换新标签页。其中一个功能是显示用户当天的目标。此功能仅需要
WebGPU(Chrome 133)中的新变化
新增了 unorm8x4-bgra 和 1 个组成部分的顶点格式,允许使用未定义值请求未知限制,WGSL 对齐规则发生变化,WGSL 性能因舍弃而提升,等等。
- WebGpu
Chrome 中的新变化
Chrome 中的新变化 参阅我们的文档和博客,了解 Chrome 的最新动态。 新增了内容和重大文档更新。 article LLM 如何流式传输回答 新增了文档,介绍了在 AI 中,服务器和客户端的流式数据的运作方式。 article Chrome 应用商店的通知和申诉 Chrome 应用商店的通知和申诉流程已更新。 article 源试用中的 AI API 从 Chrome 131 开始,Translator API、Summarizer API 和 Prompt API for
Google 密码管理工具中的通行密钥现已在 iOS 设备上推出
在 iOS 17 或更高版本上,Chrome 现在可以在 Google 密码管理工具 (GPM) 中创建、同步和使用通行密钥进行身份验证。这样一来,您就可以在任何安装了 Chrome 的设备上使用 GPM 中的通行密钥。
Chrome 132 中的新变化
Chrome 132 现已发布!Dialog 元素会获取 ToggleEvent,支持元素级视频共享,并且 FileSystem Access API 支持 Android 和 WebView。
chrome.sockets.udp
使用 chrome.sockets.udp API 通过 UDP 连接在网络上发送和接收数据。此 API 取代了之前在“socket”API 中找到的 UDP 功能。 必须在 清单 中声明以下键才能使用此 API。 数值 新创建的套接字的 ID。请注意,通过此 API 创建的套接字 ID 与通过其他 API(例如已废弃的 [ socket ](../socket/) API)创建的套接字 ID 不兼容。 DNS 解析偏好设置。默认值为 any ,并使用当前的操作系统配置,该配置可能会返回
chrome.tabs
使用 chrome.tabs API 与浏览器的标签页系统进行交互。您可以使用此 API 在浏览器中创建、修改和重新排列标签页。 Tabs API 不仅提供用于操作和管理标签页的功能,还可以检测标签页的 语言 、截取 屏幕截图 ,以及与标签页的内容脚本进行 通信 。 大多数功能无需任何权限即可使用。例如: 创建 新标签页、 重新加载 标签页、 导航 到其他网址等。 开发者在使用 Tabs API 时应注意三项权限。 此权限不会授予对 chrome.tabs
chrome.tabs
使用 chrome.tabs API 与浏览器的标签页系统进行交互。您可以使用此 API 在浏览器中创建、修改和重新排列标签页。 Tabs API 不仅提供用于操作和管理标签页的功能,还可以检测标签页的 语言 、截取 屏幕截图 ,以及与标签页的内容脚本进行 通信 。 大多数功能无需任何权限即可使用。例如: 创建 新标签页、 重新加载 标签页、 导航 到其他网址等。 开发者在使用 Tabs API 时应注意三项权限。 以下示例展示了如何在 manifest 中声明每项权限:
chrome.ttsEngine
使用 chrome.ttsEngine API 通过扩展程序实现文本转语音(TTS) 引擎。如果您的扩展程序使用此 API 进行注册,那么当任何扩展程序或 Chrome 应用使用 tts API 生成语音时,该扩展程序将会收到包含要朗读的语音和其他参数的事件。然后,您的扩展程序可以使用任何可用的 Web 技术来合成和输出语音,并将事件发送回调用函数以报告状态。 扩展程序可以将自己注册为语音引擎。这样,它就可以拦截对 tts.speak() 和 tts.stop()
chrome.cookies
使用 chrome.cookies API 查询和修改 Cookie,并在 Cookie 发生更改时收到通知。 如需使用 Cookie API,您必须在清单中声明“Cookie”权限,以及您要访问 Cookie 的所有主机的 主机权限 。例如: 借助 分区 Cookie ,网站可以标记某些 Cookie 应采用顶级框架的来源作为键。这意味着,如果网站 A 使用 iframe 嵌入到网站 B 和网站 C 中,则分区 Cookie 在每个网站中可以具有不同的值。 chrome.cookies
chrome.ttsEngine
使用 chrome.ttsEngine API 通过扩展程序实现文本转语音(TTS) 引擎。如果您的扩展程序使用此 API 进行注册,那么当任何扩展程序或 Chrome 应用使用 tts API 生成语音时,该扩展程序将收到包含要朗读的语音和其他参数的事件。然后,您的扩展程序可以使用任何可用的 Web 技术来合成和输出语音,并将事件发送回调用函数以报告状态。 扩展程序可以将自己注册为语音引擎。这样一来,它就可以拦截对 tts.speak 和 tts.stop
chrome.cookies
使用 chrome.cookies API 查询和修改 Cookie,并在 Cookie 发生更改时收到通知。 如需使用 Cookie API,请在清单中声明 "cookies" 权限,并为您要访问 Cookie 的所有主机声明 主机权限 。例如: 借助 分区 Cookie ,网站可以标记某些 Cookie 应采用顶级框架的来源作为键。例如,这意味着,如果网站 A 使用 iframe 嵌入到网站 B 和网站 C 中,则来自 A 的分区 Cookie 的嵌入版本在 B 和 C 中可以具有不同的值。
chrome.appviewTag
使用 appview 标记在您的 Chrome 应用中嵌入其他 Chrome 应用。详情请参阅 用法 。 对象 可选的开发者指定数据,要嵌入的应用在做出嵌入决策时可以使用这些数据。 字符串 发送嵌入请求的应用的 ID。 void 允许嵌入请求。 allow 函数如下所示: 字符串 指定要嵌入的内容。 void 阻止嵌入请求。 deny 函数如下所示: 请求嵌入其他应用。 字符串 要嵌入的应用的扩展程序 ID。 任意(可选) 可选的开发者指定数据,要嵌入的应用在做出嵌入决策时可以使用这些数据。
WebGPU(Chrome 132)中的新变化
纹理视图使用、32 位浮点纹理混合、GPUDevice adapterInfo 属性、使用无效格式配置画布上下文会抛出 JavaScript 错误、过滤纹理上的采样器限制、扩展的子组实验、改进开发者体验、对 16 位归一化纹理格式的实验性支持等。
- WebGpu
chrome.certificateProvider
使用此 API 将证书公开给平台,平台可以使用这些证书进行 TLS 身份验证。 如需使用此 API 向 ChromeOS 公开客户端证书,请按以下步骤操作: 实际步骤顺序可能会有所不同。例如,如果使用用于自动选择证书的企业政策,系统将不会要求用户选择证书(请参阅 AutoSelectCertificateForUrls 和 面向用户的 Chrome 政策 )。 在扩展程序中,这可能类似于以下代码段: 支持的加密签名算法类型。 "RSASSA_PKCS1_v1_5_MD5_SHA1" 使用
chrome.extension
chrome.extension API 包含可供任何扩展程序页面使用的实用程序。它支持在扩展程序及其内容脚本之间或扩展程序之间交换消息,如 消息传递 中所详述。 扩展程序视图的类型。 "tab" "popup" 对于在无痕式标签页中运行的内容脚本,以及在无痕式进程中运行的扩展程序页面,此值为 true。后者仅适用于具有“split”incognito_behavior 的扩展程序。 布尔值 返回当前扩展程序中运行的后台页面的
chrome.system.display
使用 system.display API 查询显示元数据。 一个枚举,用于指明系统是否检测到显示屏并使用了显示屏。如果系统未检测到显示屏(可能已断开连接,或因进入休眠模式等原因而被视为已断开连接),则系统会将显示屏视为“非活跃”。例如,此状态用于在所有显示屏断开连接时保留现有显示屏。 "active" "inactive" 数值 显示屏的高度(以像素为单位)。 数值 左上角的 x 坐标。 数值 左上角的 y 坐标。 数值 显示屏的宽度(以像素为单位)。 字符串 显示屏的唯一标识符。 数值
chrome.system.display
使用 system.display API 查询显示元数据。 一个枚举,用于指明系统是否检测到显示屏并使用了显示屏。如果系统未检测到显示屏(可能已断开连接,或因进入休眠模式等原因而被视为已断开连接),则系统会将显示屏视为“非活跃”。例如,此状态用于在所有显示屏断开连接时保留现有显示屏。 "active" "inactive" 数值 显示屏的高度(以像素为单位)。 数值 左上角的 x 坐标。 数值 左上角的 y 坐标。 数值 显示屏的宽度(以像素为单位)。 字符串 显示屏的唯一标识符。 数值
chrome.action
使用 chrome.action API 控制 Google Chrome 工具栏中的扩展程序图标。 必须在 清单 中声明以下键才能使用此 API。 如需使用 chrome.action API,请指定 3 的 "manifest_version" ,并在 清单文件 中添加 "action" 键。 "action" 键(及其子项)是可选的。如果未包含该图标,您的扩展程序仍会显示在工具栏中,以便用户访问扩展程序的菜单。因此,我们建议您始终至少添加 "action" 和 "default_icon"
chrome.commands
使用 Commands API 添加可在扩展程序中触发操作的键盘快捷键,例如用于打开浏览器操作或向扩展程序发送命令的操作。 必须在 清单 中声明以下键才能使用此 API。 借助 Commands API,扩展程序开发者可以定义特定命令,并将其绑定到默认的按键组合。扩展程序接受的每个命令都必须在 扩展程序清单 中声明为 "commands" 对象的属性。 属性键将用作命令的名称。命令对象可以采用两个属性。
使用远程调试时不支持此操作
某些 WebDriver 命令(例如调整浏览器窗口大小)需要将 Chrome 扩展程序加载到浏览器中。ChromeDriver 通常会在每次启动新的 Chrome 会话时加载此“自动化扩展程序”。 不过,ChromeDriver 可以被指示连接到现有 Chrome 会话,而不是启动新的会话。为此,请使用 Capabilities (也称为
ChromeOS
所有 ChromeOS 测试映像均在 /usr/local/chromedriver/ 中安装了 ChromeDriver 二进制文件。该二进制文件会更新为该测试映像中的相同版本的 Chrome。也就是说,您始终使用的是最新版 ChromeDriver。 如果您的测试预计将针对 ChromeDriver 二进制文件的稳定 build 运行,您需要在测试中编写自己的代码来下载特定二进制文件,并替换 /usr/local/chromedriver/ 中的二进制文件。 您可以编写一个使用
chrome.certificateProvider
使用此 API 将证书公开给平台,平台可以使用这些证书进行 TLS 身份验证。 如需使用此 API 向 ChromeOS 公开客户端证书,请按以下步骤操作: 实际步骤顺序可能会有所不同。例如,如果使用自动选择证书的企业政策,系统就不会要求用户选择证书(请参阅 AutoSelectCertificateForUrls 和 面向用户的 Chrome 政策 )。 在扩展程序中,这可能类似于以下代码段: 支持的加密签名算法类型。 "RSASSA_PKCS1_v1_5_MD5_SHA1" 使用
chrome.extension
chrome.extension API 包含可供任何扩展程序页面使用的实用程序。它支持在扩展程序及其内容脚本之间或扩展程序之间交换消息,如 消息传递 中所详述。 扩展程序视图的类型。 "tab" "popup" 对于在无痕式标签页中运行的内容脚本,以及在无痕式进程中运行的扩展程序页面,此值为 true。后者仅适用于具有“split”incognito_behavior 的扩展程序。 布尔值 请使用 runtime.lastError 。 如果异步扩展程序 API
性能日志
ChromeDriver 支持性能日志记录,您可以通过该日志获取“时间轴”“网络”和“网页”网域的事件,以及指定轨迹类别的 轨迹数据 。 默认情况下,系统不会启用性能日志记录功能。因此,在创建新会话时,您必须启用此功能。 启用后,性能日志会收集时间轴、网络和网页事件。如需同时启用跟踪功能或自定义性能日志记录,请继续阅读。 查看由 Michael Klepikov 撰写的 使用默认选项的性能日志记录完整示例 。 Angular Benchpress 也使用性能日志记录。
下载内容
以下是支持较低版本 Chrome 的 ChromeDriver 版本。 如需详细了解如何选择正确的 ChromeDriver 版本,请参阅 版本选择 页面。 支持 Chrome 114 版 如需了解详情,请参阅 版本说明 。 支持 Chrome 114 版 如需了解详情,请参阅 版本说明 。 支持 Chrome 113 版 如需了解详情,请参阅 版本说明 。 支持 Chrome 113 版 如需了解详情,请参阅 版本说明 。 支持 Chrome 112 版 如需了解详情,请参阅 版本说明 。
ChromeDriver 崩溃
如需诊断和修复 ChromeDriver 崩溃问题,您可以选择以下几种方法。这仅适用于 ChromeDriver 崩溃,而非 Chrome 崩溃或关闭。 在 Windows 上,您可能会看到如下内容: 创建一个重现问题的用例,以便 ChromeDriver 贡献者使用该用例来重现和调试问题。即使崩溃并非 100% 发生,也无妨。 请提交 bug 并附上重现问题的测试用例。这通常是获得帮助的最快方式。 如需创建和调试崩溃转储,您需要使用调试版 ChromeDriver。我们没有
Chrome 无法立即启动或崩溃
使用特殊的测试框架(可能是 IDE)或持续构建系统(例如 Jenkins)运行 ChromeDriver 或 Chrome 时,这种情况经常会发生。 尝试从普通用户命令提示符启动与您的测试使用的相同 Chrome 二进制文件。确认 chromedriver.log 文件中使用的 Chrome 二进制文件。如果您向 Chrome 传递特殊的命令行开关或参数,请务必也将它们包含在内。如果 Chrome 未能正常启动,您需要修正 Chrome 的安装。请尝试重新安装。 假设您可以通过命令提示运行
移动设备模拟
Chrome 允许用户通过 使用 Chrome 开发者工具启用设备模式 ,在桌面版 Chrome 中模拟移动设备上的 Chrome。此功能可加快 Web 开发速度,让开发者无需使用真实设备,即可快速测试网站在移动设备中的呈现方式。ChromeDriver 还可以使用字典值指定的“mobileEmulation”功能来模拟设备。 与开发者工具一样,ChromeDriver 中也有两种方法可以启用移动设备模拟: “mobileEmulation”字典的格式取决于所需的方法。
键盘支持
目前,ChromeDriver 仅支持配置了美国键盘的系统。 当 ChromeDriver 检测到此状态时,会记录以下内容: 没有美国键盘的用户在执行 sendKeys 或 TypeElement 命令时可能会遇到按键丢失的问题。 作为一种权宜解决方法,我们建议此类用户在系统配置中将采用 QWERTY 布局的美国键盘添加为次要选项。这样一来,ChromeDriver 便可使用美国键盘配置。 一如既往,ChromeDriver 是一个开源项目,我们欢迎您贡献代码。
Android
最新的 ChromeDriver 二进制文件 已打包为适用于各种主机平台的 ZIP 文件。 您可以在 下载 部分找到较低版本的 ChromeDriver。 ChromeDriver 支持在 Chrome 浏览器(30 及更高版本)以及启用了 Web 调试 和 JavaScript 的 Android 4.4 (KitKat) 及更高版本中基于 WebView 的应用上运行测试。 您可以通过以下方式安装 Chrome 应用: 稳定版:
Canary 版
ChromeDriver Canary 版包含最新的 ChromeDriver 功能。系统每天都会构建和提供多个新的二进制文件。 请注意,此版本专为开发者和早期采用者设计,有时可能会完全崩溃。 从 M115 开始,Chrome 测试版可用性信息中心会提供每个发布渠道(包括 Canary 渠道)的最新 Chrome + ChromeDriver 版本。如需自动下载版本,您可以使用方便的 JSON 端点。 对于较低版本,您可以按如下方式找到 Canary build: 通常,最好选择最新的
chrome.socket
使用 chrome.socket API 通过 TCP 和 UDP 连接在网络上发送和接收数据。 注意 :从 Chrome 33 开始,此 API 已废弃,取而代之的是 sockets.udp 、 sockets.tcp 和 sockets.tcpServer API。 数值 number 可选 已接受的套接字的 ID。 数值 新创建的套接字的 ID。 字符串 可用的 IPv4/6 地址。 字符串 适配器的底层名称。在 *nix 上,这通常为“eth0”“lo”等。 数值 前缀长度
chrome.bluetoothSocket
使用 chrome.bluetoothSocket API 通过 RFCOMM 和 L2CAP 连接向蓝牙设备发送和接收数据。 必须在 清单 中声明以下键才能使用此 API。 "system_error" 系统发生错误,连接可能无法恢复。 "not_listening" 套接字未监听。 AcceptError 一个错误代码,用于指明出现了什么问题。 字符串 错误消息。 数值 服务器套接字标识符。 数值 客户端套接字标识符,即新建立的连接的套接字标识符。此套接字标识符应仅与
chrome.browser
使用 chrome.browser API 与与当前应用和 Chrome 个人资料关联的 Chrome 浏览器进行交互。 字符串 新标签页初次打开时要导航到的网址。 在与当前应用和 Chrome 个人资料关联的浏览器窗口中打开新标签页。如果未打开 Chrome 个人资料的浏览器窗口,系统会先打开一个新窗口,然后再创建新标签页。 OpenTabOptions 配置标签页的打开方式。 函数(可选) callback 参数如下所示: Promise<void> 只有 Manifest V3
chrome.syncFileSystem
使用 chrome.syncFileSystem API 在 Google 云端硬盘上保存和同步数据。此 API 不适用于访问存储在 Google 云端硬盘中的任意用户文档。它提供应用专用可同步存储空间,以供离线和缓存使用,这样一来,相同的数据便可在不同的客户端中使用。如需详细了解如何使用此 API,请参阅 管理数据 。 "last_write_win" “manual” SyncAction (可选) 执行的同步操作,用于触发 onFileStatusChanged 事件。操作值可以是
chrome.bluetooth
使用 chrome.bluetooth API 连接到蓝牙设备。所有函数均通过 chrome.runtime.lastError 报告失败。 必须在 清单 中声明以下键才能使用此 API。 字符串 适配器的地址,格式为“XX:XX:XX:XX:XX:XX”。 布尔值 指示适配器是否可用(即是否已启用)。 布尔值 指示适配器当前是否正在进行发现。 字符串 适配器的直观易懂的名称。 布尔值 指示适配器是否已接通电源。 FilterType (过滤条件类型)- 可选
chrome.mdns
使用 chrome.mdns API 通过 mDNS 发现服务。这包含 NSD 规范的部分功能:http://www.w3.org/TR/discovery-api/ 字符串 mDNS 通告服务的 IP 地址。 字符串[] mDNS 通告服务的元数据。 字符串 mDNS 通告服务的主机:端口对。 字符串 mDNS 通告服务的服务名称,... onServiceList 事件中包含的服务实例的数量上限。如果有更多实例可用,系统可能会从 onServiceList 事件中截断这些实例。 2048
chrome.serial
使用 chrome.serial API 对连接到串行端口的设备执行读写操作。 number 可选 请参阅 ConnectionOptions.bitrate 。如果使用非标准比特率,或者在查询底层设备时发生错误,此字段可能会被省略或不准确。 数值 查看 ConnectionOptions.bufferSize 数值 串行端口连接的 ID。 布尔值(可选) 请参阅 ConnectionOptions.ctsFlowControl 。如果在查询底层设备时发生错误,则可以省略此字段。
chrome.bluetoothLowEnergy
chrome.bluetoothLowEnergy API 用于使用 Generic Attribute Profile (GATT) 与蓝牙智能 (Low Energy) 设备通信。 必须在 清单 中声明以下键才能使用此 API。 ManufacturerData [] 可选 要包含在广告数据的“制造商专用数据”字段中的制造商专用数据的列表。 ServiceData [] 可选 要包含在广告数据的“服务数据”字段中的服务数据列表。 string[] 可选 要添加到广告数据的“服务
chrome.webviewTag
使用 webview 标记可通过网络主动加载来自网络的直播内容,并将其嵌入到 Chrome 应用中。您的应用可以控制 webview 的外观,与网络内容互动,在嵌入的网页中发起导航,对其中发生的错误事件做出响应,等等(请参阅 用法 )。 用于确定 clearData 应清除哪些数据的选项。 number 可选 清除在此日期当天或之后累积的数据,以从公元纪年起算的毫秒数表示(可通过 JavaScript Date 对象的 getTime 方法访问)。如果不存在,则默认为 0
chrome.fontSettings
使用 chrome.fontSettings API 管理 Chrome 的字体设置。 如需使用 Font Settings API,您必须在 扩展程序清单 中声明 "fontSettings" 权限。例如: Chrome 允许某些字体设置取决于某些通用字体系列和语言脚本。例如,用于 sans-serif 简体中文的字体可能与用于 serif 日语的字体不同。 Chrome 支持的通用字体系列基于 CSS 通用字体系列 ,并在 GenericReference
chrome.usb
使用 chrome.usb API 与已连接的 USB 设备进行互动。此 API 可从应用上下文中访问 USB 操作。借助此 API,应用可以充当硬件设备的驱动程序。通过设置 runtime.lastError 并执行函数的常规回调来报告此 API 生成的错误。在这种情况下,回调的常规参数将未定义。 布尔值 这是有效配置吗? number 配置编号。 字符串(可选) 配置说明。 ArrayBuffer 与此配置相关联的额外描述符数据。 InterfaceDescriptor [] 可用的接口。
chrome.desktopCapture
Desktop Capture API 可截取屏幕、单个窗口或单个标签页的内容。 用于定义 chooseDesktopMedia() 中使用的一组桌面媒体来源的枚举。 "screen" "window" "tab" "audio" 镜像 SelfCapturePreferenceEnum 。 "include" "exclude" 镜像 SystemAudioPreferenceEnum 。 "include" "exclude" 隐藏由 chooseDesktopMedia()
chrome.dns
使用 chrome.dns API 进行 DNS 解析。 如需使用此 API,您必须在 manifest 中声明 "dns" 权限。 以下代码调用 resolve() 以检索 example.com 的 IP 地址。 service-worker.js : 字符串(选填) 表示 IP 地址字面量的字符串。仅当 resultCode 表示成功时才提供。 数值 结果代码。零表示成功。 解析给定的主机名或 IP 地址字面量。 字符串 要解析的主机名。 函数(可选) callback 参数如下所示:
chrome.declarativeContent
使用 chrome.declarativeContent API 可根据网页内容执行操作,而无需拥有读取网页内容的权限。 借助声明式内容 API,您可以根据网页的网址或 CSS 选择器是否与网页上的元素匹配来启用扩展程序的操作,而无需添加 主机权限 或注入 内容脚本 。 使用 activeTab 权限可在用户点击扩展程序的操作后与网页互动。 规则由条件和操作组成。如果满足其中任一条件,系统就会执行所有操作。相应操作分别为 setIcon() 和 showAction() 。
chrome.system.storage
使用 chrome.system.storage API 查询存储设备信息,并在可拆卸存储设备连接和断开连接时收到通知。 “success” 弹出命令已成功执行 - 应用可以提示用户移除设备。 "in_use" 设备正被其他应用使用。弹出操作未成功;在其他应用使用完设备之前,用户不应移除设备。 "no_such_device" 未知有此类设备。 “failure” 弹出命令失败。 数值 存储设备的可用容量(以字节为单位)。 字符串 getAvailableCapacity 函数参数 id 的复制
chrome.alarms
使用 chrome.alarms API 可安排代码定期运行或在未来的指定时间运行。 如需使用 chrome.alarms API,请在 manifest 中声明 "alarms" 权限: 为了确保可靠的行为,了解 API 的行为方式会很有帮助。 闹钟会在设备处于休眠状态时继续运行。不过,闹钟不会唤醒设备。设备唤醒后,所有错过的闹钟都会响铃。 重复闹钟最多会触发一次,然后系统会从设备唤醒时开始,使用指定的间隔时间重新安排闹钟,而不考虑闹钟最初设置为运行时已经经过的时间。
chrome.contextMenus
使用 chrome.contextMenus API 可向 Google Chrome 的上下文菜单添加项。您可以选择要将上下文菜单项应用于哪些类型的对象,例如图片、超链接和网页。 您必须在扩展程序的清单中声明 "contextMenus" 权限,才能使用该 API。此外,您还应指定一个 16 x 16 像素的图标,以便在菜单项旁边显示。例如: 上下文菜单项可显示在任何文档(或文档中的框架)中,即使是使用 file:// 或 chrome://
chrome.audio
chrome.audio API 的提供是为了让用户能够获取有关连接到系统的音频设备的信息并控制这些设备。此 API 目前仅适用于 ChromeOS 的自助服务终端模式。 字符串 设备名称。 DeviceType 设备类型。 字符串 简单易懂的名称(例如“USB 麦克风”)。 字符串 音频设备的唯一标识符。 布尔值 如果这是当前处于活动状态的设备,则为 true。 数值 设备的音量、输出音量、输入增益。 字符串(选填) 稳定/持久的设备 ID 字符串(如果有)。 StreamType
Autofill
浏览器和您作为开发者,都可以帮助用户更快地输入数据,并避免重复输入数据。 自动填充功能可让浏览器使用用户保存的信息(例如姓名、地址和付款详细信息)自动填充表单字段。了解自动填充功能的运作方式以及如何确保浏览器提供适当的自动填充选项,有助于用户节省大量时间和麻烦,并帮助他们避免出错。确保自动填充功能正常运行还有助于减少用户流失,从而提高表单提交率。 尤其是在商务和结账流程中,开发者发现自动填充功能对买方体验和商家成效有显著益处。 想要帮助用户快速轻松地从购物车进入付款流程?
chrome.declarativeNetRequest
chrome.declarativeNetRequest API 用于通过指定声明式规则来屏蔽或修改网络请求。这样,扩展程序就可以修改网络请求,而无需拦截和查看其内容,从而提供更高的隐私保护。 “ declarativeNetRequest ”和“ declarativeNetRequestWithHostAccess ”权限提供相同的功能。两者之间的区别在于请求或授予权限的时间。 除了前面介绍的权限之外,某些类型的规则集(尤其是静态规则集)还需要声明
chrome.devtools.panels
使用 chrome.devtools.panels API 将您的扩展程序集成到“开发者工具”窗口界面:创建自己的面板、访问现有面板以及添加边栏。 每个扩展程序面板和边栏都会显示为单独的 HTML 页面。“开发者工具”窗口中显示的所有扩展程序页面都可以访问 chrome.devtools API 的所有部分,以及所有其他扩展程序 API。 您可以使用 devtools.panels.setOpenResourceHandler
chrome.fileBrowserHandler
使用 chrome.fileBrowserHandler API 扩展 ChromeOS 文件浏览器。例如,您可以使用此 API 让用户将文件上传到您的网站。 当用户按 Alt+Shift+M 或连接外部存储设备(例如 SD 卡、USB 密钥、外部驱动器或数码相机)时,ChromeOS 文件浏览器就会弹出。除了显示外部设备上的文件外,文件浏览器还可以显示用户之前保存到系统中的文件。
chrome.readingList
使用 chrome.readingList API 读取和修改 阅读清单 中的项。 如需使用阅读列表 API,请在扩展程序 manifest 文件中添加 "readingList" 权限: manifest.json: Chrome 的侧边栏中提供了阅读清单。借助该功能,用户可以保存网页以供日后阅读或离线阅读。使用 Reading List API 检索现有内容,并在列表中添加或移除内容。 阅读列表中的项目没有固定的顺序。 项按网址键值对进行排序。其中包括哈希和查询字符串。 以下部分展示了
视频无障碍功能荣获 Gemini API 开发者大赛 Web 类奖项
我们已将 ViddyScribe 评选为 Gemini API 开发者大赛 Web 类奖项的获奖者。他们展示了 Gemini 如何通过为任何视频生成音频描述,帮助提高网页上视频的无障碍性。
chrome.networking.onc
chrome.networking.onc API 用于配置网络连接(移动网络、以太网、VPN 或 Wi-Fi)。此 API 适用于自动启动的 ChromeOS 自助服务终端会话。 网络连接配置是按照 Open Network Configuration (ONC) 规范指定的。 注意 :大多数字典属性和枚举值使用 UpperCamelCase 命名法,以符合 ONC 规范,而不是使用 JavaScript 的 lowerCamelCase 惯例。 “已启用” “正在激活”
使用 Signal API 确保通行密钥与服务器上的凭据保持一致
借助 WebAuthn Signal API,依赖方可以向通行密钥提供程序发送现有凭据的状态信号,以便通行密钥与服务器上的凭据保持一致。
WebGPU 的新变化 (Chrome 131)
WGSL 中的剪裁距离、GPUCanvasContext getConfiguration()、点和线基元不得有深度偏差、针对子组的包含扫描内置函数、对多绘制间接的实验性支持、着色器模块编译选项严格数学、移除 GPUAdapter requestAdapterInfo() 等。
- WebGpu
为 Cache-Control: no-store 启用 bfcache
Chrome 将进行一项更改,允许在确保安全的情况下,对使用 Cache-Control: no-store 的网页使用 bfcache 功能。了解这对开发者意味着什么。
Chrome 130
Chrome 130 现已发布!文档画中画功能可让您更好地控制画中画窗口,CSS 嵌套声明可修复一些棘手的边缘情况,您还可以指定分布在多行中的元素上的装饰的行为方式,还有更多功能!
Chrome 130 中的新变化
Chrome 130 现已发布!文档画中画可让您更好地控制画中画窗口,CSS 嵌套声明可修复一些棘手的边缘情况,您还可以指定分布在多行中的元素上的装饰的行为方式。Pete LePage 详细介绍了 Chrome 130 中面向开发者的新功能。
chrome.virtualKeyboard
chrome.virtualKeyboard API 是仅限自助服务终端的 API,用于配置自助服务终端会话中虚拟键盘布局和行为。 布尔值(可选) 虚拟键盘能否提供自动补全功能。 布尔值(可选) 虚拟键盘能否提供自动更正功能。 布尔值(可选) 虚拟键盘是否可以通过手写识别来提供输入。 布尔值(可选) 虚拟键盘能否提供拼写检查功能。 布尔值(可选) 虚拟键盘是否可以提供语音输入。 设置对虚拟键盘提供的功能的限制。 FeatureRestrictions 启用/停用虚拟键盘功能的偏好设置。
chrome.clipboard
chrome.clipboard API 旨在允许用户访问剪贴板中的数据。这是针对 chromeos 平台应用的临时解决方案,直到开放网络替代方案推出为止。开放网络解决方案推出后(可能在 2017 年第 4 季度推出),它将弃用。 字符串 附加数据项的内容。如果 type 为“textPlain”,则为纯文本字符串或标记字符串(如果 type 为“textHTML”)。数据大小不得超过 2 MB。 DataItemType 其他数据项的类型。 "textPlain" "textHTML"
Long Animation Frames API
了解 Long Animation Frames API (LoAF),该 API 是 Long Tasks API 的下一代迭代版本,支持通过归因衡量帧更新延迟
提升 Chrome 应用商店开发者信息中心的移动体验
我们很高兴推出一组界面变更,使 Chrome 应用商店开发者信息中心的响应速度更快,更适合移动设备。我们希望这样能让您在监控商品详情效果、更改商品详情以及管理实体店内扩展程序时获得更便捷的体验。 我们更新了所有图表和分析页面,使其更具响应能力,以便您更好地查看扩展程序在移动设备上的商品详情效果。 您还可以通过移动设备更新商店元数据,包括说明、图片和隐私设置。
使用 Web 应用清单 ID 属性对 PWA 进行唯一标识
可选的 `id` 属性是 Web 应用清单规范的一部分,可让您明确定义用于 PWA 的标识符。向清单添加 `id` 属性会移除对 `start_url` 或清单位置的依赖,以便日后更新这些属性。
Chrome:用于在桌面设备和 Android 设备之间同步 Google 密码管理工具中的通行密钥
桌面版 Chrome 很快将能够在 Google 密码管理工具 (GPM) 中创建通行密钥,并在 Android 之外的其他平台上同步这些通行密钥。
在开发者工具中监控本地和真实用户的 Core Web Vitals 性能
Chrome 开发者工具中的“性能”面板提供了一种新的方式来监控本地 Core Web Vitals 性能,并将其与实际用户数据进行比较。
Chrome 129 中的新变化
Chrome 129 现已发布!长任务可以产生 - 为了提高性能,您可以为具有固有大小的元素添加动画效果,对锚点定位语法进行一些更改,等等。Pete LePage 详细介绍了 Chrome 129 中面向开发者的新功能。
键盘锁定 API 和 Pointer Lock API 需要从 Chrome 131 获得权限
借助 Keyboard Lock API ,开发者可以为各种用例(包括互动网站、游戏以及远程桌面或应用流式传输)提供沉浸式全屏体验。它通过允许网站使用主机操作系统允许的所有可用按键来实现此目的。 借助 Pointer Lock API ,桌面应用可以隐藏指针图标,并将鼠标移动解释为其他操作,例如在 3D 世界中环顾四周。 从 Chrome 131 开始,使用这两个 API 都需要权限。您可以 检查 权限,如以下代码段所示: 无需明确 请求
内存检查器:检查 ArrayBuffer、TypedArray、DataView 和 Wasm 内存。
使用内存检查器可在 JavaScript 以及 WebAssembly.Memory of C++ Wasm 应用中检查 ArrayBuffer、TypedArray 或 DataView。
隆重推出 Digital Credentials API 源试用
Digital Credentials API 的源试用将从 Chrome 128 开始。Digital Credentials API 是一种新的网络平台 API,可让网站通过数字凭据(例如存储在数字钱包中的驾照或国民身份证)选择性地请求有关用户的可验证信息。
在 Chrome 中实现跨网站无缝共享凭据的功能
如果您使用多个网域共用同一个账号管理后端,那么现在通过 Digital Asset Links,您还可以在这些网域之间无缝共享凭据。这样一来,用户只需保存一次凭据,即可让 Chrome 密码管理器将这些凭据推荐给任何关联的网站。
Chrome 129 开发者工具中的新功能
“效果”>“搜索请求”网络、通过自动填充功能在地址表单中使用测试数据、在“记录器”面板中导出到适用于 Firefox 的 Puppeteer,以及通过“性能”面板中的观察结果一目了然地发现性能问题,等等。
chrome.webRequest
使用 chrome.webRequest API 可观察和分析流量,以及拦截、阻止或修改传输中的请求。 您必须在 扩展程序清单 中声明 "webRequest" 权限,才能使用 Web 请求 API 以及必要的 主机权限 。要拦截子资源请求, 扩展程序必须同时有权访问请求的网址及其发起者。例如: webRequestBlocking 必须填写此字段,才能注册屏蔽事件处理脚本。从 Manifest V3 开始, 适用于通过政策安装的扩展程序 webRequestAuthProvider 使用
chrome.sidePanel
使用 chrome.sidePanel API 可将浏览器侧边栏中的内容与网页的主要内容一同托管。 如需使用 Side Panel API,请在扩展程序 清单 文件中添加 "sidePanel" 权限: manifest.json: 借助 Side Panel API,扩展程序可以在侧边栏中显示自己的界面,从而提供持久的体验,补充用户的浏览历程。 部分功能包括: 以下部分介绍了 Side Panel API 的一些常见用例。如需查看完整的扩展程序示例,请参阅 扩展程序示例 。 最初可通过清单的
chrome.omnibox
多功能框 API 可让您向 Chrome 浏览器的地址栏(也称为多功能框)注册关键字。 当该用户输入您扩展程序中的关键字后,便开始只与您的 。每次按键操作都会发送到您的扩展程序,并且您可以在响应中提供建议。 建议可以采用多种格式以各种格式进行显示。当用户接受建议后 您的扩展程序会收到通知,并可以采取相应措施。 您必须在 清单 中添加 omnibox keyword 字段,才能使用多功能框 API。您 还应该指定一个 16x16
chrome.pageAction
使用 chrome.pageAction API 将图标放置在 Google Chrome 主工具栏(地址栏右侧)中。网页操作是指可对当前网页执行,但并不适用于所有网页的操作。处于非活动状态的页面操作会显示为灰色。 一些示例: 以下屏幕截图中的 RSS 图标代表可让您订阅 RSS 的页面操作 Feed。 隐藏的网页操作会显示为灰色。例如,下面的 RSS Feed 是灰显的, 订阅当前页面的 Feed: 请考虑改用 浏览器操作 ,以便用户始终与您的 。 在 扩展程序清单
chrome.windows
使用 chrome.windows API 与浏览器窗口进行交互。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。 收到请求时, windows.Window 会包含一组 tabs.Tab 对象。您必须 如果您需要访问 url ,请在 清单 中声明 "tabs" 权限, tabs.Tab 的 pendingUrl 、 title 或 favIconUrl 属性。例如: 扩展系统中的许多函数都接受可选的 windowId 参数,该参数默认为 。
chrome.i18n
使用 chrome.i18n 基础架构在您的整个应用或扩展程序中实现国际化。 您需要将其所有的用户可见字符串都放入名为 messages.json 的文件中。每次 添加新的语言区域时,请在名为 _locales/_localeCode_ 的目录下添加消息文件,其中 localeCode 是一个代码,例如表示英语的 en 。 以下是支持英语 ( en )、西班牙语的国际化扩展程序的文件层次结构 ( es ) 和韩语 ( ko ): 假设您的扩展程序包含如下图所示的文件:
chrome.browserAction
使用浏览器操作将图标放入 Google Chrome 主工具栏(位于地址栏的右侧)。除了 图标 之外,浏览器操作还可以包含 提示 、 标记 和 弹出式窗口 。 在下图中,地址栏右侧的彩色方块是 。图标下方会显示一个弹出式窗口。 如果您想创建的图标不是始终处于活跃状态,请使用 网页操作 (而不是浏览器) 操作。 在 扩展程序清单 中注册浏览器操作,如下所示: 您可以提供任意尺寸的图标,以便在 Chrome 中使用,Chrome 会选择最接近的图标并进行缩放 将其调整为适当的尺寸,以填充
chrome.webRequest
使用 chrome.webRequest API 可观察和分析流量,以及拦截、阻止或修改传输中的请求。 您必须在 扩展程序清单 中声明 "webRequest" 权限,才能使用 Web 请求 API 以及必要的 主机权限 。要拦截子资源请求, 扩展程序必须同时有权访问请求的网址及其发起者。例如: 从 Chrome 108 开始,如果您使用 "webRequest" 和 "webRequestAuthProvider" ,则可以为 onAuthRequired 事件 异步提供凭据 权限。 Web
chrome.fileBrowserHandler
使用 chrome.fileBrowserHandler API 扩展 Chrome 操作系统的文件浏览器。例如,您可以使用此 API 让用户向您的网站上传文件。 当用户按 Alt+Shift+M 或连接外部存储设备(例如 SD 卡、USB 密钥、外部驱动器或数码相机)时,ChromeOS 文件浏览器将会启动。除了显示外部设备上的文件外,文件浏览器还可以显示用户之前保存到系统的文件。
chrome.devtools.panels
使用 chrome.devtools.panels API 将您的扩展程序集成到开发者工具窗口界面中:创建自己的面板、访问现有面板以及添加边栏。 必须在 清单 中声明以下键才能使用此 API。 有关使用开发者工具 API 的一般说明,请参阅 DevTools API 摘要 。 每个扩展程序面板和边栏都会显示为一个单独的 HTML 网页。已显示所有扩展程序页面 在“开发者工具”窗口中可以访问 chrome.devtools API 中的所有模块,以及 chrome.extension
chrome.system.cpu
使用 system.cpu API 查询 CPU 元数据。 字符串 处理器的架构名称。 字符串[] 一组功能代码,用于表示处理器的部分功能。目前支持的代码包括“mmx”“sse”“sse2”“sse3”“ssse3”“sse4_1”“sse4_2”和“avx”。 字符串 处理器的型号名称。 number 逻辑处理器数量。 ProcessorInfo [] 每个逻辑处理器的相关信息。 数值 [] 来自 CPU 每个热区的 CPU 温度读数列表。温度以摄氏度为单位。 目前仅适用于 ChromeOS。
chrome.enterprise.networkingAttributes
使用 chrome.enterprise.networkingAttributes API 读取有关当前网络的信息。注意:此 API 仅适用于由企业政策强制安装的扩展程序。 字符串(可选) 设备的本地 IPv4 地址(如果未配置,则未定义)。 字符串(可选) 设备的本地 IPv6 地址(如果未配置,则未定义)。 字符串 设备的 MAC 地址。 检索设备默认网络的网络详细信息。如果用户未关联或设备未连接到网络,系统将设置 runtime.lastError 并注明失败原因。 函数(可选)
chrome.input.ime
使用 chrome.input.ime API 为 ChromeOS 实现自定义 IME。这样一来,您的扩展程序就可以处理按键、设置构图和管理候选窗口。 您必须声明“input”权限,以使用 input.ime API。 例如: 以下代码会创建一个 IME,用于将输入的字母转换为大写。 辅助窗口中按钮的 ID。 "撤消" "addToDictionary" 辅助窗口的属性。 字符串(可选) ChromeVox 朗读的字符串。 "撤消" 布尔值 设为 true 以显示
chrome.instanceID
使用 chrome.instanceID 访问实例 ID 服务。 重置应用实例标识符并撤消与其关联的所有令牌。 函数(可选) callback 参数如下所示: 承诺<void> 只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 撤消已授予的令牌。 对象 deleteToken 的参数。 字符串 用于获取令牌的授权实体。 字符串 用于获取令牌的范围。 函数(可选) callback 参数如下所示: 承诺<void> 只有 Manifest
chrome.gcm
使用 chrome.gcm 可让应用和扩展程序通过 Firebase Cloud Messaging (FCM) 发送和接收消息。 消息中所有键值对的大小上限(以字节为单位)。 4096 向 FCM 注册该应用。 callback 将返回注册 ID。如果使用同一 senderIds 列表再次调用 register ,则会返回相同的注册 ID。 字符串[] 允许向应用发送消息的服务器 ID 列表。其中应包含至少 1 个发送者 ID,但不得超过 100 个。 函数(可选) callback
chrome.loginState
使用 chrome.loginState API 读取和监控登录状态。 "SIGNIN_PROFILE" 指定扩展程序在登录个人资料中。 "USER_PROFILE" 指定扩展程序在用户个人资料中。 "UNKNOWN" 指定会话状态未知。 "IN_OOBE_SCREEN" 指定用户处于开箱体验屏幕。 "IN_LOGIN_SCREEN" 指定用户正处于登录屏幕。 "IN_SESSION" 指定用户正在会话中。 "IN_LOCK_SCREEN" 指定用户位于锁定屏幕中。
chrome.fontSettings
使用 chrome.fontSettings API 管理 Chrome 的字体设置。 要使用 Font Settings API,您必须声明“fontSettings”权限 清单 。例如: Chrome 允许某些字体设置取决于特定的常规字体系列和语言 脚本。例如, sans-serif 简体中文使用的字体可能与该字体不同 用于 serif 日语。 Chrome 支持的通用字体系列基于 CSS 通用字体系列 , 。如果网页指定了通用字体系列,Chrome
chrome.printingMetrics
使用 chrome.printingMetrics API 提取有关打印使用情况的数据。 "BLACK_AND_WHITE" 指定使用黑白模式。 "COLOR" 指定使用了颜色模式。 "ONE_SIDED" 指定使用单面打印。 &quot;TWO_SIDED_LONG_EDGE&quot; 指定使用双面打印,将长边翻转。 &quot;TWO_SIDED_SHORT_EDGE&quot; 指定使用双面打印,短边翻转。 number 打印介质的高度(以微米为单位)。
chrome.processes
使用 chrome.processes API 与浏览器的进程进行交互。 number 使用的缓存部分(以字节为单位)。 number 缓存的大小(以字节为单位)。 编号( 选填 ) 最近测量的进程 CPU 使用率,表示为进程的所有线程使用的单个 CPU 核心所占的百分比。这会得到一个介于 0 到 CpuInfo.numOfProcessors*100 之间的值,在多线程进程中,该值可以超过 100%。仅当作为 onUpdated 或 onUpdatedWithMemory
chrome.platformKeys
使用 chrome.platformKeys API 访问由平台管理的客户端证书。如果用户或政策授予了此权限,扩展程序便可在其自定义身份验证协议中使用此类证书。例如:这允许在第三方 VPN 中使用平台管理的证书(请参阅 chrome.vpnProvider )。 ArrayBuffer[] 服务器允许的证书授权机构的标识名列表。每个条目都必须是 DER 编码的 X.509 DistinguishedName。 ClientCertificateType []
chrome.devtools.inspectedWindow
使用 chrome.devtools.inspectedWindow API 与检查的窗口进行交互:获取被检查页面的标签页 ID、在被检查的窗口中评估代码、重新加载页面或者获取页面中的资源列表。 必须在 清单 中声明以下键才能使用此 API。 使用 chrome.devtools.inspectedWindow 与检查的窗口进行交互:获取用于 在检查窗口中评估代码、重新加载页面或获取 该页面内的资源列表。 有关使用开发者工具 API 的一般说明,请参阅 DevTools API 摘要 。
chrome.history
使用 chrome.history API 与浏览器的已访问网页的记录进行交互。您可以在浏览器的历史记录中添加、移除和查询网址。如需使用您自己的版本替换历史记录页面,请参阅 覆盖网页 。 您必须声明“历史记录”权限,以便使用 History API。 例如: History API 使用 过渡类型 来描述浏览器如何导航到特定网址 。例如,如果用户通过点击其他网页上的链接访问了某个网页, 为“link” 下表介绍了每种过渡类型。 若要试用此 API,请安装
chrome.identity
使用 chrome.identity API 获取 OAuth2 访问令牌。 字符串 账号的唯一标识符。在账号的整个有效期内,此 ID 不会发生变化。 "SYNC" 指定为主账号启用同步功能。 "ANY" 指定是否存在主账号(如果有)。 string[] 选填 向扩展程序授予的 OAuth2 范围列表。 字符串(可选) 与请求关联的特定令牌。 字符串 应从缓存中移除的特定令牌。 AccountStatus 可选 登录到个人资料的主账号的状态,该个人资料的 ProfileUserInfo
chrome.tts
使用 chrome.tts API 播放合成的文字转语音 (TTS)。另请参阅相关的 ttsEngine API,该 API 允许扩展程序实现语音引擎。 Chrome 为 Windows(使用 SAPI 5)、Mac OS X 和 ChromeOS 上的语音提供原生支持,使用 语音合成功能。在所有平台上,用户都可以 安装会自行注册为备用语音引擎的扩展程序。 通过分机拨打 speak() 开始说话。例如: 要立即停止说话,只需调用 stop() 即可:
chrome.devtools.recorder
使用 chrome.devtools.recorder API 自定义开发者工具中的“Recorder”面板。 有关使用开发者工具 API 的一般说明,请参阅 DevTools API 摘要 。 devtools.recorder API 是一项预览版功能,可让您扩展 Chrome 开发者工具中的 Recorder 面板 。 从 Chrome M105 开始,您可以扩展导出功能。从 Chrome M112 开始,您可以延长重放按钮。 如需注册扩展插件,请使用
chrome.enterprise.hardwarePlatform
使用 chrome.enterprise.hardwarePlatform API 获取运行浏览器的硬件平台的制造商和型号。注意:此 API 仅适用于由企业政策安装的扩展程序。 字符串 字符串 获取硬件平台的制造商和型号,如果扩展程序获得授权,则会通过 callback 返回。 函数(可选) callback 参数如下所示: HardwarePlatformInfo Promise&lt; HardwarePlatformInfo &gt; 只有 Manifest V3
chrome.dom
使用 chrome.dom API 访问适用于扩展程序的特殊 DOM API 获取由指定元素托管的打开的影子根或封闭的影子根。如果该元素未附加影子根,它将返回 null。 HTMLElement 对象 请参阅 https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot
chrome.tabCapture
使用 chrome.tabCapture API 与标签页媒体流进行交互。 借助 chrome.tabCapture API,您可以访问包含视频和媒体内容的 MediaStream 。 当前标签页的音频。只有在用户调用扩展程序后才能调用该方法,例如通过 该扩展程序的 操作按钮 即可。这类似于 activeTab 权限。 为某个标签页获取 MediaStream 后,该标签页中的音频将不再播放 。这与 getDisplayMedia() 函数在以下情况的行为类似:
chrome.management
chrome.management API 提供了多种方法来管理已安装的应用和扩展程序。 您必须声明“management” 扩展程序清单 中的权限,以使用管理功能 API。例如: management.getPermissionWarningsByManifest 、 management.uninstallSelf 和 management.getSelf 无需管理权限。 该项被停用的原因。 “未知” &quot;permissions_increase&quot;
chrome.webNavigation
使用 chrome.webNavigation API 接收有关飞行中导航请求状态的通知。 所有 chrome.webNavigation 方法和事件都需要您声明“webNavigation”权限 在 扩展程序清单 中。例如: 对于成功完成的导航,系统会按以下顺序触发事件: 此过程过程中发生的任何错误都会导致 onErrorOccurred 事件。对于特定的 导航时,在 onErrorOccurred 后不再触发其他事件。 如果导航帧包含子帧,其 onCommitted
chrome.topSites
使用 chrome.topSites API 访问新标签页上显示的热门网站(即最常访问的网站)。这些不包括用户自定义的快捷方式。 您必须声明“topSites” 扩展程序清单 中授予使用此 API 的权限。 若要试用此 API,请安装 chrome-extension-samples 中的 topSites API 示例 存储库 用于封装最常访问的网址(例如新标签页上的默认快捷方式)的对象。 字符串 网页的标题 字符串 最常访问的网址。 获取热门网站列表。 函数(可选) callback
chrome.windows
使用 chrome.windows API 与浏览器窗口进行交互。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。 收到请求时, windows.Window 会包含一组 tabs.Tab 对象。您必须 如果您需要访问 url ,请在 清单 中声明 "tabs" 权限, tabs.Tab 的 pendingUrl 、 title 或 favIconUrl 属性。例如: 扩展系统中的许多函数都接受可选的 windowId 参数,该参数默认为 。
chrome.search
使用 chrome.search API 通过默认提供程序进行搜索。 "CURRENT_TAB" 指定搜索结果显示在发起调用的标签页中或当前所用浏览器的标签页中。 "NEW_TAB" 指定搜索结果显示在新标签页中。 "NEW_WINDOW" 指定搜索结果在新窗口中打开。 Disposition (可选) 应显示搜索结果的位置。默认为 CURRENT_TAB 。 编号( 选填 ) 应显示搜索结果的位置。 tabId 不能与 disposition 一起使用。 字符串
chrome.idle
使用 chrome.idle API 检测机器的空闲状态何时发生变化。 你必须声明“idle”权限,以使用闲置 API。例如: "有效" "idle" "已锁定" 获取屏幕在闲置时自动锁定所用的时间(以秒为单位)。如果屏幕从不自动锁定,则返回时长为零。目前仅适用于 ChromeOS。 函数(可选) callback 参数如下所示: number 屏幕在闲置时自动锁定所用的时间(以秒为单位)。如果屏幕永不自动锁定,则此值为零。 Promise&lt;number&gt; 只有
chrome.types
chrome.types API 包含 Chrome 的类型声明。 ChromeSetting 原型提供了一组常用的函数( get() 、 set() 和 clear() ) 以及 Chrome 浏览器设置的事件发布者 ( onChange )。 代理设置 示例 演示了这些函数的预期用途。 Chrome 可区分浏览器设置的三种不同范围: Chrome 管理不同图层上的设置。以下列表介绍了可 影响有效设置(按优先顺序由高到低)。
chrome.wallpaper
使用 chrome.wallpaper API 更改 ChromeOS 壁纸。 您必须声明“壁纸”权限,以便使用 壁纸 API。例如: 例如,要将壁纸设为 https://example.com/a_file.png ,你可以拨打 chrome.wallpaper.setWallpaper 。 支持的壁纸版式。 “STRETCH” "CENTER" "CENTER_CROPPED" 将壁纸设置为位于 url 或 wallpaperData 且具有指定的 layout 的图片 对象
chrome.enterprise.deviceAttributes
使用 chrome.enterprise.deviceAttributes API 读取设备属性。注意:此 API 仅适用于由企业政策强制安装的扩展程序。 获取管理员注释的营业地点。如果当前用户未关联或管理员未设置任何注释位置,则返回空字符串。 函数(可选) callback 参数如下所示: 字符串 承诺<字符串> 只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。 获取管理员注释的资产 ID。如果当前用户未关联或管理员尚未设置资产
chrome.privacy
您可以使用 chrome.privacy API 控制 Chrome 中可能会影响用户隐私的功能的使用情况。此 API 依赖 ChromeSetting 类型 API 的原型 来获取和设置 Chrome 的配置。 您必须声明“隐私”权限,才能使用该 API。 例如: 读取 Chrome 设置的当前值非常简单。您首先需要找到 属性,那么您将需要对该对象调用 get() ,以检索其 当前值以及您的扩展程序的控制级别。例如,确定 Chrome 的自动填充功能是否 您需要编写:
chrome.systemLog
使用 chrome.systemLog API 记录扩展程序中的 Chrome 系统日志。 字符串 添加新的日志记录。 MessageOptions 日志记录选项。 函数(可选) callback 参数如下所示: 承诺<void> 只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
chrome.pageCapture
使用 chrome.pageCapture API 可将标签页保存为 MHTML。 MHTML 是大多数浏览器支持的 标准格式 。它将页面封装在单个文件中 及其所有资源(CSS 文件、图片...) 请注意,出于安全考虑,MHTML 文件只能从文件系统加载,而且 只能在主框架中加载 您必须声明“pageCapture”权限,以使用 pageCapture API。例如: 将具有指定 ID 的标签页的内容保存为 MHTML。 对象 number 要另存为 MHTML 的标签页的 ID。 函数(可选)
chrome.fileSystemProvider
您可以使用 chrome.fileSystemProvider API 创建可通过 Chrome 操作系统的文件管理器访问的文件系统。 您必须声明“fileSystemProvider”权限和 扩展程序清单 中的部分,以便使用 File System Provider API。例如: file_system_provider 部分必须声明如下: “文件”应用使用上述信息来适当呈现相关的界面元素。例如,如果 configurable 设置为 true,则系统会呈现用于配置卷的菜单项。同样,如果
chrome.notifications
借助 chrome.notifications API,您可以使用模板创建内容丰富的通知,并在系统任务栏中向用户显示这些通知。 字符串(可选) 按钮图标对 Mac OS X 用户不可见。 字符串 字符串 关于此内容的其他详细信息。 字符串 列表通知中一项的标题。 字符串(可选) Mac OS X 用户看不到应用图标遮罩。 指向应用图标遮罩的网址。网址与 iconUrl 具有相同的限制。 应用图标遮罩应采用 alpha 通道,因为系统只会考虑图片的 alpha 通道。
chrome.power
使用 chrome.power API 替换系统的电源管理功能。 默认情况下,当用户不活动时,操作系统会调暗屏幕,并最终暂停 系统。借助 Power API,应用或扩展程序可使系统保持唤醒状态。 使用此 API,您可以指定要停用电源管理的 Level 。 "system" 使系统保持活动状态,但允许调暗或关闭屏幕。例如, 通信应用在屏幕关闭时继续接收消息。 "display" 级别 使屏幕和系统保持活动状态例如,电子书和演示文稿应用 和系统处于活动状态。
chrome.downloads
此权限 会触发警告 使用 chrome.downloads API 以编程方式启动、监控、操作和搜索下载内容。 您必须在 扩展程序清单 中声明 "downloads" 权限,才能使用此 API。 您可以在 examples/api/downloads 中找到使用 chrome.downloads API 的简单示例 目录。如需获取其他示例以及查看源代码方面的帮助,请参阅 示例 。 布尔值(可选) 布尔值(可选) 文件 下载内容的文件名可疑。 网址 已知下载内容的网址是恶意网址。 内容
chrome.devtools.network
使用 chrome.devtools.network API 检索由开发者工具在“Network”面板中显示的网络请求的相关信息。 必须在 清单 中声明以下键才能使用此 API。 有关使用开发者工具 API 的一般说明,请参阅 DevTools API 摘要 。 网络请求信息以 HTTP 归档格式 ( HAR ) 表示。以下各项的说明: HAR 不在本文档的介绍范围内,请参阅 HAR v1.2 规范 。 对于 HAR, chrome.devtools.network.getHAR()
chrome.vpnProvider
使用 chrome.vpnProvider API 实现 VPN 客户端。 vpnProvider 的典型用法如下: 使用 createConfig 方法创建 VPN 配置。VPN 配置是在原生 ChromeOS 界面中向用户显示的永久条目。用户可以从列表中选择 VPN 配置,然后连接到该配置或断开该配置。 为 onPlatformMessage 、 onPacketReceived 和 onConfigRemoved 事件添加监听器。 当用户连接到 VPN 配置时,会收到
chrome.proxy
使用 chrome.proxy API 管理 Chrome 的代理设置。此 API 依赖 ChromeSetting 类型 API 原型 来获取和设置代理配置。 您必须声明“代理”权限,以使用代理设置 API。例如: 代理设置在 proxy.ProxyConfig 对象中定义。根据 Chrome 的代理设置, 这些设置可能包含 proxy.ProxyRules 或 proxy.PacScript 。 ProxyConfig 对象的 mode 属性决定了 Chrome
chrome.printerProvider
chrome.printerProvider API 公开了打印管理器用于查询由扩展程序控制的打印机、查询其功能以及向这些打印机提交打印作业的事件。 字符串(可选) 打印机的直观易懂的说明。 字符串 唯一打印机 ID。 字符串 打印机的人类可读名称。 为响应 onPrintRequested 事件而返回的错误代码。 "OK" 表示操作已成功完成。 "FAILED" 表示发生了常规故障。 "INVALID_TICKET"
chrome.events
chrome.events 命名空间包含一些常用类型,API 会使用这些类型来调度事件,以便在发生值得注意的事情时通知您。 Event 是一个对象,可让您在发生有趣的事情时收到通知。这里有 使用 chrome.alarms.onAlarm 事件在闹钟经过时接收通知的示例: 如示例所示,您将使用 addListener() 注册接收通知。用于 addListener() 始终是您定义的用于处理事件的函数, 函数取决于您正在处理的事件。查看 alarms.onAlarm
chrome.events
chrome.events 命名空间包含一些常用类型,API 会使用这些类型来调度事件,以便在发生值得注意的事情时通知您。 Event 是一个对象,可让您在发生有趣的事情时收到通知。这里有 使用 chrome.alarms.onAlarm 事件在闹钟经过时接收通知的示例: 如示例所示,您将使用 addListener() 注册接收通知。用于 addListener() 始终是您定义的用于处理事件的函数, 函数取决于您正在处理的事件。查看 alarms.onAlarm
chrome.dom
使用 chrome.dom API 访问适用于扩展程序的特殊 DOM API 获取由指定元素托管的打开的影子根或封闭的影子根。如果该元素未附加影子根,它将返回 null。 HTMLElement 对象 请参阅 https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot
chrome.omnibox
多功能框 API 可让您向 Chrome 浏览器的地址栏(也称为多功能框)注册关键字。 当该用户输入您扩展程序中的关键字后,便开始只与您的 。每次按键操作都会发送到您的扩展程序,并且您可以在响应中提供建议。 建议可以采用多种格式以各种格式进行显示。当用户接受建议后 您的扩展程序会收到通知,并可以采取相应措施。 必须在 清单 中声明以下键才能使用此 API。 您必须在 清单 中添加 "omnibox.keyword" 字段,才能使用多功能框 API。您 还应该指定一个 16 x 16
chrome.sockets.tcp
使用 chrome.sockets.tcp API,通过 TCP 连接通过网络发送和接收数据。此 API 会取代之前在 chrome.socket API 中提供的 TCP 功能。 必须在 清单 中声明以下键才能使用此 API。 number 新创建的套接字的 ID。请注意,通过此 API 创建的套接字 ID 与其他 API(例如已弃用的 [ socket ](../socket/) API)创建的套接字 ID 不兼容。 DNS 解析偏好设置。默认值为 any ,并使用可能返回 IPv4 或
chrome.sockets.tcpServer
借助 chrome.sockets.tcpServer API,您可以创建使用 TCP 连接的服务器应用。此 API 会取代之前在 chrome.socket API 中提供的 TCP 功能。 必须在 清单 中声明以下键才能使用此 API。 number 从底层网络调用返回的结果代码。 number 服务器套接字标识符。 number 客户端套接字标识符,即新建立的连接的套接字标识符。此套接字标识符只能与 chrome.sockets.tcp
chrome.app.window
使用 chrome.app.window API 创建窗口。Windows 有一个带有标题栏和大小控件的可选框架。而不会与任何 Chrome 浏览器窗口关联。如需查看这些选项的演示,请参阅 窗口状态示例 。 窗口 JavaScript“窗口”对象。 字符串 创建窗口时所用的 ID。 边界 窗口内容(不包括窗口装饰)的位置、大小和约束条件。这是 Chrome 36 中的新属性。 边界 窗口的位置、大小和约束条件,包括标题栏和框架等窗口装饰。这是 Chrome 36 中的新属性。 void
日志记录
默认情况下,ChromeDriver 只会将警告/错误记录到 stderr 中。调试时 启用更详细的日志记录会很有帮助。 若要启用详细日志记录功能,只需将 --verbose 传递给 chromedriver 服务器即可。 您也可以传递 --log-path ,使日志改为写入文件 错误。如果您没有直接自行启动 chromedriver 服务器, 需要通过 WebDriver 客户端库传递开关。有些客户端不 但很抱歉 将 --log-path 传递给 Chrome 启动命令时,Chrome
ChromeDriver 使用入门
本页记录了如何开始使用 ChromeDriver 来测试您的网站: 桌面 (Windows/Mac/Linux)。您还可以阅读 Android 使用入门 或 ChromeOS 使用入门 。 ChromeDriver 是 Selenium WebDriver 用于控制 Chrome 的独立可执行文件。此扩展程序由 Chromium 团队在 WebDriver 贡献者的帮助下进行维护。如果您不熟悉 Selenium WebDriver,则应访问 Selenium 网站 。
Chrome 扩展程序
您可以打包 Chrome 扩展程序,也可以将其解包。 要打包已解压的扩展程序,请使用 chrome://extensions 中的“打包”按钮,或 请使用 Chrome: "chrome.exe --pack-extension=C:\path\to\unpacked\extension --pack-extension-key=C:\myext.pem" 。如需解压缩打包的扩展程序,请按以下步骤操作: 提取文件。您可能需要将该文件的文件类型从.crx 重命名为.zip , zip
chrome.browsingData
使用 chrome.browsingData API 从用户的本地个人资料中移除浏览数据。 您必须在 扩展程序清单 中声明 "browsingData" 权限,才能使用此 API。 此 API 最简单的用例是一种基于时间的机制,用于清除用户浏览数据。 您的代码应提供一个时间戳,指明历史日期,在此日期之后 浏览数据。此时间戳的格式设置为自事件发生以来经过的毫秒数 Unix 纪元(可以使用 getTime() 方法从 JavaScript Date 对象中检索)。
chrome.system.memory
chrome.system.memory API。 number 可用容量的量(以字节为单位)。 number 物理内存容量的总容量(以字节为单位)。 获取物理内存信息。 函数(可选) callback 参数如下所示: MemoryInfo Promise&lt; MemoryInfo &gt; 只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
chrome.dns
使用 chrome.dns API 进行 DNS 解析。 如需使用此 API,您必须在 清单 中声明 "dns" 权限。 以下代码会调用 resolve() 来检索 example.com 的 IP 地址。 service-worker.js : 字符串(可选) 表示 IP 地址字面量的字符串。仅当 resultCode 指示成功时才提供。 number 结果代码。零表示成功。 解析给定的主机名或 IP 地址字面量。 字符串 要解析的主机名。 函数(可选) callback 参数如下所示:
Chrome 128 中的新功能
Chrome 128 现已推出!通过使用换行符改进红宝石元素的显示,Promise.try 来更轻松地启动 Promise 链,通过扩展 PointerEvent 接口来唯一地标识多种笔,等等。Adriana Jara 详细介绍了 Chrome 128 中面向开发者的新功能。
WebGPU 的新变化 (Chrome 128)
使用子群组进行实验,弃用线和点的深度偏差设置,隐藏未捕获的错误开发者工具警告(如果 preventDefault),先进行 WGSL 插值采样,然后执行上述任一操作。
- WebGpu
chrome.alarms
使用 chrome.alarms API 安排代码定期运行或在未来的指定时间运行。 如需使用 chrome.alarms API,请在 清单 中声明 "alarms" 权限: 以下示例展示了如何使用和响应闹钟。如需试用此 API, 安装 chrome-extension-samples 中的 chrome-extension-samples 存储库 以下示例会在安装扩展程序时在 Service Worker 中设置警报: service-worker.js : 以下示例根据已响铃闹钟的名称设置
chrome.contextMenus
使用 chrome.contextMenus API 向 Google Chrome 的上下文菜单中添加项。您可以选择从右键菜单中添加的对象类型,例如图片、超链接和页面。 上下文菜单项可以出现在任何文档(或文档中的框架)中,甚至是那些带有 file:// 的菜单项 或 chrome:// 网址。要控制您的内容可以显示在哪些文档中,请指定 documentUrlPatterns 字段。 create() update() 您可以根据需要创建任意数量的上下文菜单项,但如果扩展程序中的多个菜单项 则
chrome.audio
通过提供 chrome.audio API,用户可以获取有关系统连接到的音频设备的信息并控制该设备。此 API 目前只能在适用于 ChromeOS 的自助服务终端模式下使用。 字符串 设备名称。 DeviceType 设备类型。 字符串 简单易懂的名称(例如“USB 麦克风”)。 字符串 音频设备的唯一标识符。 布尔值 如果这是当前活跃设备,则为 true。 number 设备的音量、输出的音量、输入的增益。 字符串(可选) 稳定/持久保留的设备 ID 字符串(如果有)。 StreamType
chrome.commands
您可以使用 Command API 添加可在扩展程序中触发操作的键盘快捷键,例如,用于打开浏览器操作或向扩展程序发送命令的操作。 必须在 清单 中声明以下键才能使用此 API。 Commands API 允许扩展程序开发者定义特定命令,并将它们绑定到默认命令 组合键。扩展程序接受的每个命令都必须声明为 "commands" 对象。 属性键用作命令的名称。命令对象可以采用两个属性。 可选属性,用于声明命令的默认键盘快捷键。如果省略, 命令就会解除绑定此属性可以采用字符串或对象值。 字符串值
chrome.debugger
chrome.debugger API 可用作 Chrome 远程调试协议 的替代传输服务。使用 chrome.debugger 附加到一个或多个标签页,以便对网络交互进行插桩、调试 JavaScript、转变 DOM 和 CSS 等。使用 Debuggee 属性 tabId 可定位具有 sendCommand 的标签页,并通过 tabId 从 onEvent 回调对事件进行路由。 出于安全考虑, chrome.debugger API 不提供对所有 Chrome
chrome.declarativeContent
使用 chrome.declarativeContent API 可根据网页内容执行操作,而无需读取网页内容的权限。 声明式 Content API 可让您根据 或者 CSS 选择器与页面上的某个元素匹配,无需 添加 主机权限 或注入 内容脚本 。 使用 activeTab 权限,以在用户点击 操作。 规则由条件和操作组成。如果满足任一条件,则所有操作 。这些操作包括 setIcon 和 showAction 。 当且仅当所有网页都列出时, PageStateMatcher
chrome.declarativeNetRequest
chrome.declarativeNetRequest API 用于通过指定声明式规则来屏蔽或修改网络请求。这样一来,扩展程序就能够修改网络请求,而不会拦截这类请求并查看其中的内容,从而更好地保护用户隐私。 declarativeNetRequestFeedback host_permissions 除了上述权限之外,某些类型的规则集(具体来说是静态规则集)还要求声明 "declarative_net_request" 清单键,该清单键应该是具有一个名为 "rule_resources"
chrome.browsingData
使用 chrome.browsingData API 从用户的本地个人资料中移除浏览数据。 您必须声明“browsingData”权限,才能使用此 API。 此 API 最简单的用例是一种基于时间的机制,用于清除用户浏览数据。 您的代码应提供一个时间戳,指明历史日期,在此日期之后 浏览数据。此时间戳的格式设置为自事件发生以来经过的毫秒数 Unix 纪元(可通过 getTime 方法从 JavaScript Date 对象中检索)。 例如,要清除用户上周的所有浏览数据,您可以编写如下代码: 如下:
File System Access API:简化对本地文件的访问
借助 File System Access API,开发者可以构建功能强大的 Web 应用,与用户本地设备上的文件进行交互,例如 IDE、照片和视频编辑器、文本编辑器等。用户向 Web 应用授予访问权限后,此 API 可让用户直接读取或保存对用户设备上的文件和文件夹所做的更改。
WebDriver BiDi 可在 Firefox、Chrome 和 Puppeteer 中正式投入使用
Puppeteer 23 引入了对 Firefox 129 及更高版本的稳定支持,根据 WebDriver BiDi 为 Chrome 和 Firefox 自动化功能提供统一的 API。
Android 版 Chrome 中的通行密钥用户体验更新
Android 版 Chrome 现在集成了 Credential Manager,可让第三方密码管理工具在 Android 14 及更高版本上提供通行密钥
现在可在 BrowserStack 上通过 WebDriver BiDi 实现自动化
BrowserStack 引入 WebDriver BiDi 支持:通过事件驱动型自动化增强 Selenium 网格测试。
Chrome 127 中的新功能
Chrome 127 现已推出!借助对 font-size-adjust 的支持,Document Picture-in-Picture API 中传播的用户激活,以及键盘可聚焦滚动容器等众多功能。Adriana Jara 详细介绍了 Chrome 127 中面向开发者的新功能。
Chrome 如何帮助用户安装他们重视的应用
Chrome 的内部用户研究表明,许多用户都非常重视安装 Web 应用。这样做有诸多好处,例如: Chrome 和 Web 开发者可以通过多种方式提供帮助,包括新的机器学习促销功能。本文简要介绍了用户安装应用的方式。 符合 Chrome 的 可安装性条件 的应用会在 Chrome 桌面浏览器的地址栏中自动显示安装图标(在以下屏幕截图中突出显示)。用户可以点击以安装应用。 另一种安装方法是依次点按 更多 图标 保存和分享 安装 $appName 。
Long Animation Frame API 现已发布
Long Animation Frame API (LoAF) 已经从 Chrome 123 开始提供,我们现在还更新了工具和指南,以帮助您充分利用以下新 API。
WebGPU 的新变化 (Chrome 126)
提高了 maxTextureArrayLayers 限制、针对 Vulkan 后端优化了缓冲区上传、缩短了着色器编译时间、提交的命令缓冲区必须是唯一的,以及 Dawn 更新。
- WebGpu
Chrome 126
Chrome 126 将于 2024 年 6 月 11 日推出,届时会进行跨文档视图转换、重新启用 CloseWatcher API,针对 Gamepad API 触发规则混乱,还有诸多其他功能。
Chrome 126 的新变化
Chrome 126 现已推出!凭借 ViewTransitions API 中对跨文档转换的支持,针对 Gamepad API 重新启用了 CloseWatcher API,触发器进行了混乱,还有许多其他功能以及更多其他功能。Adriana Jara 介绍了 Chrome 126 为开发者提供的所有详细信息。
2024 年 I/O 大会 Web AI 总结:为您的下一个 Web 应用打造的新模型、工具和 API
阅读 2024 年 I/O 大会上的 Web AI 总结。了解适用于您的下一个 Web 应用的新模型、工具和 API。
- WebGpu
有助于加快 Web AI 速度的 WebAssembly 和 WebGPU 增强功能(第 2 部分)
第 2 部分(共 2 部分)。了解 WebAssembly 和 WebGPU 增强功能如何提高 Web 上的机器学习性能。
- WebGpu
用于实现更快的 Web AI 的 WebAssembly 和 WebGPU 增强功能(第 1 部分)
第 1 部分(共 2 部分)。了解 WebAssembly 和 WebGPU 增强功能如何提升 Web 上的机器学习性能。
- WebGpu
视图转换有哪些新变化?(2024 年 Google I/O 大会更新)
宣布推出适用于 MPA 的跨文档视图转换、使用活动类型的选择性视图转换,以及使用 view-transition-class 共享动画样式。
Chrome 125
Chrome 125 将于 2024 年 5 月 14 日开始发布,其中包含 CSS Anchor 定位、Compute Pressure API 和新的 Baseline 功能,以及更多其他功能。
Chrome 125 的新变化
Chrome 125 现已推出!利用 CSS Anchor Positioning API、Compute Pressure API、Storage Access API 扩展等等。Adriana Jara 介绍了 Chrome 125 为开发者提供的所有详细信息。
Spotify 如何使用 Picture-in-Picture API 构建 Spotify Miniplayer
了解 Spotify 迷你播放器如何从“画布摄影”转变为通过 Document Picture-in-Picture API 实现的精致体验。
Chrome 124 的新变化
Chrome 124 现已推出!有两个新 API 支持从 JavaScript 使用声明性 shadow DOM。您可以在 Web Socket 中使用流。改进了视图过渡。还有很多其他功能。Pete LePage 介绍了 Chrome 124 中面向开发者的新功能的所有详细信息。
如何通过 PageSpeed Insights 查看 Chrome 用户体验报告数据
PageSpeed Insights (PSI) 是一款供 Web 开发者了解网页性能指标及改进方法的工具。在本指南中,您将了解如何使用 PSI 从 CrUX 中提取数据洞见,并更好地了解用户体验。
Chrome 应用商店开发者信息中心内的版本回滚
本周,我们很高兴地推出一项新功能,让开发者能够将其扩展程序在 Chrome 应用商店中的版本回滚到之前发布的版本。我们的目标是让开发者在发布更新时更加放心,尤其是在过渡到清单 V3 时。 从今天起,您无需提交包含 bug 修复程序的新版扩展程序,并等待其通过审核。不过,您可以通过 更多 菜单或商品的文件包页面启动回滚。 回滚需要提供一个新版本号(扩展程序的旧版本将以此版本号重新发布),以及回滚原因。填写所需信息后,确认回滚。 回滚完成后,系统会通过正常的 Chrome
WebAssembly JavaScript Promise 集成 (JSPI) 进入源试用
JavaScript Promise Integration (JSPI) 是一种 API,可让编译为 WebAssembly 的同步依序代码访问异步 Web API。
Chrome 123 的新变化
Chrome 123 现已推出!借助新的浅色深色函数、Long Animation Frames API、Service Worker Static Routing API 等等。Adriana Jara 介绍了 Chrome 123 为开发者提供的所有详细信息。
通过共享字典提高压缩效率
共享字典压缩对 Web 上的压缩功能进行了巨大提升。了解什么是静态资源和动态资源,以及它们的工作原理,以及它们如何能够比标准压缩进一步减少 Web 上静态和动态资源的加载时间。
Chrome 扩展程序:测试 Service Worker 中止过程
在这篇博文中,eyeo 团队分享了他们对测试扩展 Service Worker 这一问题的经历。特别是如何确保其 Chrome 扩展程序在 Service Worker 被暂停时正常工作。
Chrome 122 的新变化
Chrome 122 现已推出!在新的 Storage Buckets API 中,开发者工具性能面板更新,使用 Async Clipboard API 读取 HTML 的未清理选项,等等。Adriana Jara 介绍了 Chrome 122 为开发者提供的所有详细信息。
通过 Perf-ception 提升性能面板速度 400%
开发者工具中的“性能”面板是一个功能强大的工具,用于诊断、调试和修复 Web 应用的性能问题。这次,我们会带您了解我们如何使用开发者工具中的性能面板来改进性能面板本身的性能,以及我们是如何实现非常显著的改进的。
chrome.runtime
使用 chrome.runtime API 检索服务工件、返回清单的详细信息,以及监听和响应扩展程序生命周期中的事件。您还可以使用此 API 将网址的相对路径转换为完全限定网址。 此 API 的大多数成员 不需要 任何权限。 connectNative() 、 sendNativeMessage() 和 onNativeConnect 需要此权限。 以下示例展示了如何在清单中声明 "nativeMessaging" 权限: manifest.json: Runtime API
隆重推出使用 EditContext API 打造自定义网页编辑体验的新方法
EditContext 是 Chrome 和 Edge 中推出的一款新 API,可帮助开发者在浏览器中构建高级文本编辑功能。不妨在这篇博文中了解详情!
桌面版 Chrome 中 SharedArrayBuffer 的弃用试用已延长至 Chrome 124
在 Chrome 桌面版上,不启用跨域隔离功能的 SharedArrayBuffer 的弃用试用期已延长至 Chrome 124。
Chrome 122 Beta 版
Chrome 122 Beta 版可为您提供迭代器帮助程序、set 方法、Storage Buckets API、读取 Async Clipboard API 中未经过排错的 HTML,等等。
Chrome 121 的新变化
Chrome 121 现已推出!通过 CSS 更新、对 Speculation Rules API 的改进、针对 Element Capture API 的源试用,以及更多精彩功能。Adriana Jara 介绍了 Chrome 121 为开发者提供的所有详细信息。
WebGPU 的新变化 (Chrome 121)
支持 Android 上的 WebGPU、使用 DXC 进行着色器编译、计算和渲染通道中的时间戳查询、着色器模块的默认入口点、支持将 display-p3 作为 GPUExternalTexture 颜色空间、内存堆信息等。
- WebGpu
利用 WebDriver BiDi 的强大功能:借助 Puppeteer 实现 Chrome 和 Firefox 自动化
Puppeteer 现在可与 Firefox 通信!🎉? 但等一下,不是吗?🤔? 让我们深入了解 Puppeteer 中的新协议 WebDriver BiDi,并探索这项激动人心的开发对 Firefox 自动化工作流意味着什么。
Android 版 Google Chrome
如需查看 Android 版 Chrome 中的开发者功能的完整列表,请访问 chromestatus.com 。 通过 Play 商店下载 Chrome 。 当用户在一部设备上登录 Chrome 后,当用户在另一部设备上登录 Chrome 时,便可查看该会话的标签页和浏览记录。整个网页内容(而不仅仅是网址)会在 Chrome 实例之间同步,因此用户无需重新提交凭据即可在需要登录的网站上查看登机牌或文章。
Chrome 120 的新变化
Chrome 120 现已推出!通过利用 CloseWatcher API 在处理关闭请求时提供一致的体验,使用详细信息元素轻松实现手风琴模式,现在提供权限政策违规报告,并且有更多功能。
页面生命周期 API
Page Lifecycle API 将移动操作系统上常见的应用生命周期功能引入 Web 中。现在,浏览器能够安全地冻结和舍弃后台网页,从而节省资源,而且开发者可以安全地处理这些干预措施,而不会影响用户体验。
Async Clipboard API 中未经过排错的 HTML
从 Chrome 120 开始,Async Clipboard API 中新增了一个未排错的选项。请参阅本指南,了解如何使用该 API。
恢复向 Manifest V3 的转换
去年 12 月,我们暂停了计划中的弃用 Manifest V2 的计划,以便解决开发者反馈的问题,并为 迁移问题 提供更好的解决方案。根据这些反馈,我们对 Manifest V3 做出了一些更改,以 填补这些空白 ,包括: 除了填补空白之外,我们还为该平台添加了新功能,例如今年早些时候发布的 Side Panel API 和目前处于 Beta 版阶段的 Reading List API 。我们最近在广告过滤开发者峰会上讨论了其中的许多变化,并 分享 了我们根据反馈做出的更改和改进的更多背景信息。
改进 Manifest V3 中的内容过滤
在过去一年里,我们一直在积极与多款内容屏蔽扩展程序背后的供应商讨论如何改进 MV3 扩展程序平台。在这些讨论(其中许多是在 WebExtensions 社区组 [ WECG ] 中与其他浏览器合作进行的)的基础上,我们能够做出重大改进。 一组过滤规则通常会分组到列表中。例如,更通用的列表可能包含适用于所有用户的规则,而更具体的列表可能会隐藏仅部分用户希望屏蔽的地理位置特定内容。直到最近,我们允许每个扩展程序为用户提供 50 个列表(或“静态规则集”)供其选择,并且同时启用其中的 10
Service Worker Static Route API 源试用
了解 Service Worker 静态路由的第一阶段(现在处于源试用阶段),这是一个新 API,用于以声明方式指定 Service Worker 应如何处理(或不应该)路由。
开发者工具中的新功能 (Chrome 120)
“问题”面板中报告的第三方 Cookie 逐步淘汰问题、适用于 Cookie 的 Privacy Sandbox 分析工具、“应用”面板中的有效内容安全政策、改进的动画调试、增强的忽略列表等。
现在,Chrome 会默认启用 WebAssembly 垃圾回收 (WasmGC)
编程语言分为两类:垃圾回收型编程语言和需要手动内存管理的编程语言。借助 WebAssembly 垃圾回收功能,可以将垃圾回收的语言移植到 WebAssembly。
Chrome 118 的新变化
Chrome 118 现已推出!使用 @scope css 规则在组件内声明特定样式。使用新的媒体功能:Preferreds-reduced-transparency。开发者工具在“Sources”面板中进行了改进,还有很多其他改进。
针对在浏览器中处理文件的 API 改进
支持 FileSystemSyncAccessHandle 的多个读取器和写入器,以及 FileSystemWritableFileStream 的独占写入器。 借助 源专属文件系统 (有时也称为存储分区文件系统),开发者可以访问经过优化以实现最大读写性能的文件。这通过 FileSystemSyncAccessHandle 对象实现。目前,如果尝试为同一文件条目打开多个 FileSystemSyncAccessHandle 对象,会失败并返回 NoModificationAllowedError
Chrome 现在支持在 macOS 上通过 iCloud 钥匙串使用通行密钥
macOS 上的 Chrome 开始支持 iCloud 钥匙串上的通行密钥。这样一来,用户便可以在 iCloud 钥匙串中创建通行密钥,并在 Apple 设备之间同步这些密钥。
Chrome 117 的新变化
Chrome 117 现已推出!我们提供三个可让您轻松添加流畅的进入和退出动画的新 CSS 功能、用于计算更高顺序数据集的数组分组、开发者工具,使本地替换变得更加容易,并且还有更多功能。
推出 scheduler.yield 源试用
“scheduler.yield”是目前在源试用中的调度程序 API 的新增组件,是一种拆分任务的新方法,旨在提供更响应的用户体验。了解这项提议对 Scheduling API 添加的好处,并注册进行源试用,以便我们获取数据洞见和反馈。
使用新的命令编辑器高效编写 Chrome Devtools 协议 (CDP) 命令
为了让您更轻松地输入 Chrome Devtools 协议 (CDP) 命令,开发者工具推出了一个简单易用的新编辑器,让您不必使用 JSON。
开发者工具中的新功能 (Chrome 117)
在“Network”面板中覆盖 XHR/fetch 请求和隐藏扩展程序请求,在“性能”面板中查看提取优先级的变化,体验多项界面改进,查看新颜色和实验性功能,等等。
TWA 的 PostMessage
从 Chrome 115 Trusted Web Activity (TWA) 开始,可以使用 postMessage 发送消息。本文档介绍了在您的应用与 Web 之间进行通信所需的设置。
Chrome 115 的新变化
使用 ScrollTimeline 和 ViewTimeline 可以制作滚动驱动的动画,从而提升用户体验。围栏框架可与其他 Privacy Sandbox API 搭配使用,以嵌入相关内容,同时防止不必要的情境共享。借助 Topics API,浏览器可与第三方分享有关用户兴趣的信息,同时保护隐私,还有更多功能等着您。
开发者工具中的新功能 (Chrome 116)
开发者工具进行了多项改进,可帮助您更快地发现和调试缺少样式的相关问题: Network 面板会持续在 Initiator 列中填充指向引用未能加载的样式表的确切行数的链接。 问题 面板会列出所有样式表加载问题,包括网址损坏、请求失败和 @import 语句放错位置。 Chromium 问题: 1440626 、 1442198 、 1453611 。 在 元素 > 样式 中,使用 缓动编辑器 ,只需点击一下即可调整 transition-timing-function 和
Photoshop 如何处理大于内存大小的文件:
了解 Adobe 如何让用户能够在其标志性 Photoshop 应用的 Web 版本上编辑超大型文件。 (本文还提供视频形式。) 2021 年,Adobe 与 Chrome 工程团队合作, 将 Photoshop 引入到 Web 平台 。该软件创新地使用了 WebAssembly,并提供了 SIMD 、 源私有文件系统 中的高性能存储、适用于画布的 P3 色彩空间 ,以及带有 Lit 的 Web 组件等功能。在本文中,我们将重点介绍 Adobe Photoshop
矢量图像编辑应用 Boxy SVG 如何使用 Local Font Access API 让用户选择他们喜爱的本地字体
Local Font Access API 提供了一种机制来访问用户本地安装的字体数据,包括名称、样式和字体系列等更高级别的详细信息,以及底层字体文件的原始字节。了解 SVG 编辑应用 Boxy SVG 如何使用此 API。 (本文还提供视频形式。) Boxy SVG 是一款矢量图形编辑器。其主要用例是编辑 SVG 文件格式的绘图,以创建插图、徽标、图标和其他平面设计元素。该工具由波兰开发者 Jarosław Foksa 开发,最初于 2013 年 3 月 15 日发布。Jarosław 运营着
游戏编辑器 Construct 3 如何使用 File System Access API 让用户保存游戏
File System Access API 支持读取、写入和文件管理功能。了解 Construct 3 如何使用此 API。 (本文还提供视频形式。) Construct 3 是由兄弟 Thomas 和 Ashley Gullen 开发的游戏编辑器。在游戏编辑器的第三次迭代中,这两个版本完全 “[押注] 浏览器将成为新的操作系统” ,之前已针对 Windows 和 NW.js 进行构建。您可以通过浏览 展示区 或完成 导览
Chrome 114 的新变化
Chrome 114 现已推出!Chrome 114 现已推出!文本换行:平衡以改进文本布局,具有独立分区状态的 Cookie 现已推出,新的 Popover API 让弹出式窗口比以往更容易,而且还有很多其他功能。
开发者工具中的新功能 (Chrome 115)
元素 面板针对 subgrid 显示了新的 subgrid 标记。此功能目前在 Chrome Canary 中处于实验阶段。 如需检查和调试嵌套的网格(即子网格,因此会从其父级沿用轨道的数量和大小),请点击该标记。它会切换一个叠加层,在视口中元素的顶部显示列、行及其编号。 如需查看 元素 面板中所有徽章的列表,请参阅 徽章参考文档 。 Chromium 问题: 1442536 。 在 Elements (元素)> Styles (样式)中,将光标悬停在选择器名称上,即可在提示中查看其
3D 模型编辑器 Blockbench 如何使用 EyeDropper API 让用户随时随地选择颜色
EyeDropper API 提供了一种创建取色器工具的机制,让用户可以从屏幕(包括浏览器窗口之外)中采样颜色。了解 3D 模型编辑器 Blockbench 如何在其代码库中使用此 API。 (本文还提供视频形式。) Blockbench 是一款免费的现代化模型编辑器,适用于具有像素艺术纹理的低多边形模型。如果您曾玩过 Minecraft ,那么很可能见过使用 Blockbench 创建的资源,例如在《洞穴与山崖》更新第 1 部分中添加到 Minecraft 中的山羊。采用 GPL 第 3
图片编辑应用 Photopea 如何使用 File Handling API 允许用户从文件资源管理器打开文件
借助 File Handling API,Web 应用可以将自己注册为应用可以支持的文件格式的文件处理程序。了解图片编辑应用 Photopea 如何使用此 API。 (本文还提供视频形式。) Photopea 是由 Ivan Kutskir 开发的一款免费在线图片编辑器。Ivan 从 2012 年开始开发这款应用,并维护了一个 博客 ,分享他为 Photopea 添加的主要功能。Photopea 支持 PSD (Adobe Photoshop)、XCF (GIMP)、Sketch (Sketch
Storage 存储分区源试用现已推出
存储标准定义了永久性存储空间和配额估算的 API,以及平台存储架构。我们正在实验一种 API,以便在内存压力大时提高永久性存储空间逐出的可预测性。通过从 Chrome 115 到 Chrome 118 的源试用来试用 Storage Buckets API。
2023 年 Android 网页的新变化
更新了将 Web 引入 Android 的工具。增强了隐私保护,在 WebView 中更好地支持大屏设备、自定义标签页中包含部分自定义标签页、PWA 的安装更简单和集成功能、TWA 的 Play 商店结算管理等。
跨 iframe 共享自动填充:初始提案
某些表单在 iframe 中包含字段,会导致浏览器自动填充问题。借助共享自动填充功能,父框架可以指定跨源 iframe 的可信度,以支持为用户提供更好的自动填充体验。
开发者工具中的新功能 (Chrome 114)
默认情况下,开发者工具会启用 Settings (设置)> Experiments (实验)> WebAssembly Debugging: Enable DWARF support (WebAssembly 调试:启用 DWARF 支持)。如需了解详情,请参阅 使用新型工具调试 WebAssembly 。 通过此实验,您可以在 Wasm 应用中暂停执行并调试 C 和 C++ 代码,并获取所有调试信息: 如需测试 Wasm 调试,请安装 C/C++ 开发者工具支持 (DWARF)
Chrome 113 的新变化
Chrome 113 现已推出!WebGPU 现已推出,它可以在网页上实现高性能 3D 图形和数据并行计算,而且开发者工具现在可以覆盖网络响应标头、First Party Set(Privacy Sandbox 的一部分),让组织能够声明相关网站即将全面推出,还有许多其他功能。
扩展 Service Worker 生命周期
扩展 Service Worker 既能响应标准 Service Worker 事件,也能响应扩展命名空间中的事件。之所以将它们一起显示,是因为在使用扩展程序时,一种类型经常会跟随另一种类型。
Chromium Chronicle #33:视图 AnimationBuilder
在 View 中使用基于层的动画可以提高性能并减少 但设置起来比较困难通过 AnimationBuilder 类可以显著降低复杂性,并提高层的可读性, 动画。 假设您需要为以下两个元素之间的连续淡入淡出添加动画 如下图所示。 以下示例展示了如何直接使用图层动画 API 来完成此操作。 下面展示了如何使用 AnimationBuilder 创建相同的效果。 退出作用域后,动画即会开始播放。 您更愿意编写或读取哪些代码?更重要的是, AnimationBuilder
开发者工具中的新功能 (Chrome 113)
现在,您可以在 网络 面板中替换响应标头。以前,您需要访问网络服务器才能对 HTTP 响应标头进行实验。 借助响应标头替换项,您可以在本地对各种标头(包括但不限于)进行修复原型设计: 如需替换标头,请依次前往 Network (网络)> Headers (标头)> Response Headers (响应标头),将光标悬停在标头的值上,然后点击 进行修改。 您还可以添加自定义标头。 如需在一个位置修改所有替换项,请依次前往 来源 > 替换项 ,然后修改.headers
Chrome 112 的新变化
Chrome 112 现已推出!现在,CSS 支持嵌套规则,用于设置初始焦点的算法已更新,用于设置对话框元素的初始焦点,从现在开始会跳过 Service Worker 上的空操作提取处理程序,以加快导航速度,并且还有许多其他功能。
从 Web SQL 到 SQLite Wasm:数据库迁移指南
SQLite Wasm 由原始私有文件系统提供支持,是已废弃的 Web SQL 数据库技术的多用途替代方案。本文将指导您将数据从 Web SQL 迁移到 SQLite Wasm。 弃用并移除 Web SQL 一文宣布了 Web SQL 数据库技术已被弃用。虽然该技术本身可能会被弃用,但该技术所涵盖的用例却不会被弃用,因此,后续文章 浏览器中的 SQLite Wasm,由源私有文件系统提供支持 概述了基于 SQLite 数据库、 编译为 Web Assembly (Wasm) 且由 源私有文件系统
与 Fastly 合作 - 为 FLEDGE 的 k-匿名性服务器部署负责任的 HTTP 中继
我们正在与 Fastly 合作,以便为 FLEDGE 实现 k-匿名性服务器,从而改进 Chrome 的隐私保护措施。由于在此实现中通过 OHTTP 中继来中继数据,Google 服务器不会接收最终用户的 IP 地址。k-匿名性服务器是逐步实现 FLEDGE 的目标。
开发者工具中的新功能 (Chrome 112)
记录器 引入了对自定义重放选项的支持,您可以使用扩展程序将这些选项嵌入到开发者工具中。 试用 示例扩展程序 。选择新的自定义重玩选项以打开自定义重玩界面。 如需根据您的需求自定义 记录器 并将其与您的工具集成,不妨考虑开发自己的扩展程序:探索 chrome.devtools.recorder API 并查看更多 扩展程序示例 。 Chromium 问题: 1400243 。 除了 自定义、CSS、ARIA、文本和 XPath 选择器 之外,您现在还可以使用 穿透选择器
Chrome 111 的新变化
Chrome 111 现已推出!您可以使用 View Transitions API 在单页应用中创建精美的转场效果,并通过支持 CSS 颜色级别 4 让颜色更上一层楼。你还可以在样式面板中探索新工具,充分利用新的颜色功能;还有更多其他功能等你体验。
Project Fugu API 展示中心
Project Fugu API 展示区包含一系列使用 Project Fugu 中 API 的应用。 Google 跨公司 Capabilities 项目(代号为 Project Fugu )的目标是让 Web 应用能够执行平台专用应用可以执行的任何操作。除了 Google 之外,该项目的合作伙伴还包括 Microsoft、Intel、三星等公司。该项目通过将底层操作系统的功能公开给 Web 平台,同时维护用户安全、隐私、信任和 Web 的其他核心原则,从而支持 Photoshop 等出色的
通过 WebHID 与 Stadia 控制器通信
刷写后的 Stadia 控制器的行为类似于标准游戏手柄,这意味着无法使用 Gamepad API 访问其所有按钮。借助 WebHID,您现在可以访问缺少的按钮。 自 Stadia 停用以来,许多人担心控制器最终会成为垃圾填埋场的一堆废弃硬件。幸运的是,Stadia 团队决定改为提供自定义固件,以便您前往 Stadia 蓝牙模式 页面,在控制器上刷写该固件,从而解锁 Stadia 控制器。这样,Stadia 控制器就会显示为标准游戏手柄,您可以通过 USB 线或蓝牙无线连接到它。Stadia
Chrome 110 的新变化
Chrome 110 现已推出!使用新的“画中画”伪类为画中画元素添加自定义样式;使用 launch_handler 设置 Web 应用启动行为;使用 iframe 中的无凭据属性来嵌入未设置跨源嵌入器政策的第三方内容;还有很多其他功能。
针对第三方 iframe 中的 Web Share API 的新要求
为了更好地保护隐私和安全,现在需要明确允许在第三方 iframe 中进行 Web Share API 调用。 本文介绍了 Web Share API 中一项可能破坏兼容性的变更。此更改已在 Firefox 中实施,将在 Chrome 110 版中 实施,并且预计 很快 会在 Safari 中实施。 借助 Web Share API ,您可以分享文本、网址或文件。最简单的分享代码如下所示: 如果分享操作需要在第三方 iframe 中执行, 近期的规范变更 要求您明确允许此操作。为此,请向
更长的扩展 Service Worker 生命周期
现在,只要正在接收事件,Extension Service Worker 就可以保持活动状态。这可以提高扩展 Service Worker 的可靠性,但有一个您应该避免的陷阱。
Android 版 Chrome 中 Web 应用的基本离线页面
从 Chrome 109 开始,当 Android 上已安装的 Web 应用没有自带离线体验时,浏览器会自动生成默认页面,以指明该应用当前处于离线状态。
发现能够胜任的 Web
您的浏览器支持哪些高级 Web 功能?哪些 Web 应用会使用这些功能?如需回答这些问题,请查看浏览器测试网站和浏览器扩展程序。 Project Fugu 是一项跨公司合作项目,旨在缩小 Web 功能方面的差距,让新类应用能够在 Web 上运行。更具体地说,这意味着向浏览器添加了新的 API,应用开发者可以使用这些 API 实现以前无法实现的用例。您选择的浏览器支持哪些 API?哪些 Web 应用会使用这些 API?让我们来一探究竟! Project Fugu API(例如 File
iframe 无凭据:轻松在 COEP 环境中嵌入 iframe
Chrome 110 已实现无凭据 iframe。它让开发者可以使用新的临时上下文在第三方 iframe 中加载文档。反过来,它们将不再受 COEP 嵌入规则的约束。使用 COEP 的开发者现在可以嵌入本身不使用 COEP 的第三方 iframe。
由源私有文件系统提供支持的浏览器中的 SQLite Wasm
使用 SQLite 在 Web 上高效地处理您的所有存储需求。 SQLite 是一款热门的 开源 轻量级嵌入式关系型数据库管理系统。许多开发者都使用它以结构化且易于使用的方式存储数据。由于其体积小且内存要求低,SQLite 通常被用作移动设备、桌面应用和网络浏览器中的数据库引擎。 SQLite 的一个关键特性是它是一个无服务器数据库,这意味着它不需要单独的服务器进程即可运行。相反,数据库存储在用户设备上的单个文件中,因此可以轻松集成到应用中。 有许多基于 Web 汇编 (Wasm) 的非官方
Chrome 109 的新变化
Chrome 109 现已推出。Origin Private File System API 现已可用于 Android 应用,CSS 中新增了一组属性。借助对 MathML 核心的支持,您可以在 HTML 中轻松添加数学符号,此外还有很多其他功能。
Android 版 Chrome 的安全付款确认
Secure Payment Confirmation 利用通行密钥的强大功能在网络上提供防钓鱼式攻击付款确认。从 Chrome 109 开始,您将可以在 Android 版 Chrome 中使用此功能。
Chrome 108 中的新功能
Chrome 108 现已推出。有一些新的国际 API,让您在设置数字格式时拥有更大的控制权。我们已针对新的 Pop Up API 开展了源试用,以便您轻松向用户展示关键内容。我们对 CSS 进行了一些改进。还有许多其他功能。
Payment Handler API 的 CanMakePayment 事件行为更新
Payment Handler API 中的“canmakepayment” Service Worker 事件让商家可以了解用户是否在已安装的付款应用中有银行卡信息。Chrome 正在移除附加到该事件的属性。
Chrome 107 的新变化
Chrome 107 现已推出!Screen Capture API 中添加了一些新属性,可提升屏幕共享体验。您现在可以精确识别网页上的某个资源是否阻塞了渲染。通过源试用中的声明性 PendingBeacon API,您可以通过一种新方式将数据发送到后端服务器。还有许多其他功能。
重大变更:AccessHandles 的同步方法
为了简化在 Emscripten 等上下文中使用 AccessHandle 的过程,我们将 FileSystemSyncAccessHandle 接口的方法设为同步。
Trust Tokens 已重命名为 Private State Tokens
Trust Token API 将更名为 Private State Token API,以更好地描述其在隐私保护和实用性方面的优势。
高级 Web 应用基金 - 更新时间:2022 年 10 月
通过 Advanced Web Apps Fund,我们赞助了 11 个项目,通过 Open Collective 发放了超过 10 万美元的资金,旨在认识到这项工作的重要性,并鼓励更多人在这些项目上投入时间。
Payment Handler API 将需要 CSP connect-src
如果您使用的是 CSP,则 Payment Handler API 用户必须将付款端点添加到“connect-src”指令。
Chrome 106 的新变化
Chrome 106 现已推出。有一些新的国际 API,让您在设置数字格式时拥有更大的控制权。我们已针对新的 Pop Up API 开展了源试用,以便您轻松向用户展示关键内容。我们对 CSS 进行了一些改进。还有许多其他功能。
迁移到 Manifest V3 时的已知问题
最近,我们宣布了对 Manifest V2 弃用时间表的变更。虽然我们仍会坚定地努力推出 Manifest V3,但也深知我们这方面还有很多工作要做。 我们致力于在宣布新的 Manifest V2 弃用时间表之前弥补以下缺口: 问题是根据合作伙伴、bug 报告和开发者的反馈收集的。我们将继续不断努力,以提高扩展程序平台的稳定性和整体性能。 目前没有可视为严重平台差距的待解决问题。 以下问题最近已解决: 问:我们计划支持持久性 Service Worker 吗? 答 :从后台脚本迁移到
匿名 iframe 源试用:在 COEP 环境中轻松嵌入 iframe
使用 COEP 的开发者现在可以嵌入本身不使用 COEP 的第三方 iframe。您可在 Chrome 106 至 108 版 Chrome 中测试匿名 iframe 源试用。
弃用并移除 Web SQL
Web SQL 最初提出于 2009 年 4 月,并于 2010 年 11 月被放弃。我们已逐步从 Chrome 中将其移除,最初是在不安全的环境中,然后自 Chrome 119 起已完全移除。
案例研究:使用开发者工具更好地进行 Angular 调试
通过使用 Angular 作为测试试点,Chrome 开发者工具和 Angular 团队通力协作,为您提供更好的调试体验。其他框架也可以进行类似的更改。
Chrome 105 的新变化
Chrome 105 现已推出。容器查询和 :has() 是响应式天堂中的匹配项。新的 Sanitizer API 可为任意字符串提供强大的处理器,以帮助减少跨站脚本攻击漏洞。我们正在朝着废弃 WebSQL 又迈出一步。还有许多其他功能。
使用 Compression Streams API 在浏览器中压缩和解压缩
编写不需要提供自己的压缩或解压缩库的小型 Web 应用 Compression Streams API 用于使用 gzip 或 deflate(或 deflate-raw)格式压缩和解压缩数据流。 具有内置压缩功能的 JavaScript 应用不需要包含压缩库,这可减小应用的下载大小。稳定版 Chrome 和 Safari 技术预览版现在支持这个实用的 API。此处显示了压缩数据。 若要解压缩,请在解压缩流中用管道传输压缩的流。 Chromium 80 和 Safari Technology
@container 和 :has():Chromium 105 中两种强大的全新自适应 API
"容器查询和 :has() 是响应式天堂中的匹配。幸运的是,Chromium 105 中已经集成了这两项功能。这是一个大版本,包含两项呼声最高的响应式界面功能!"
Chrome 中的 NavigationEvent 变化 105
Navigation API 针对 NavigationEvent 获取了两个新方法:conten() 取代 transitionwhile() 和 scroll() 取代恢复 Scroll()。
Chrome 104 的新变化
Chrome 104 现已推出!使用 getDisplayMedia() 拍摄当前标签页时,区域拍摄会指定剪裁区域。您可以使用数学比较运算符来编写媒体查询语法。共享元素转换会启动源试用。还有许多其他功能。
改版 Chrome 应用商店开发者信息中心内的 Google Analytics(分析)
Google 即将为 Chrome 应用商店开发者信息中心推出经过改进的商品分析体验。新的信息中心一目了然,并且会预先整合最有用的信息。
Chrome 103 的新变化
Chrome 103 现已推出!新增了一个 HTTP 状态代码,它可以帮助浏览器在网页还未开始呈现之前就确定要预加载哪些内容。Local Font Access API 可让 Web 应用枚举和使用用户计算机上安装的字体。有一种更简单的方法可以在异步 API 上实现超时。还有许多其他功能。
Chrome 102 的新变化
Chrome 102 现已推出!已安装的 PWA 可以注册为文件处理程序,以便用户轻松直接从磁盘打开文件。inert 属性可让您将 DOM 的某些部分标记为 inert。Navigation API 可让单页应用更轻松地处理网址的导航和更新。还有许多其他功能!
WebAssembly 迁移指南
考虑到跨浏览器 WebAssembly 支持乃是大势所趋,我们计划今后主要依靠 WebAssembly 构建原生代码,并计划于 2019 年第 4 季度停用对 PNaCl 的支持(Chrome 应用除外)。我们相信, 围绕 WebAssembly 打造的生态系统, 因此更适合新的和现有的高性能 Web 应用,并且 PNaCl 的使用率足够低,足以保证弃用。 从 Chrome 76 开始,开放网络上的 PNaCl 功能已 源试用 , 这是一种机制,供 Web
通过数据流加快多页应用的速度
了解如何使用 Workbox-stream 创建多页应用,这些应用使用来自 Service Worker 缓存的部分标记和来自网络的部分内容来创建几乎可即时渲染的快速体验。
使用 Signed Exchange 优化 LCP
Signed Exchange 是 Web 开发者的一种方法,可以显著提高来自 SXG 引荐来源网址(如 Google 搜索)的网页加载速度。只需通过复选框来启用它们,即可带来好处,但您也可以采取额外的步骤来充分利用它们。
模拟 CSS 媒体功能
模拟 Preferencess-color-scheme、media type、forced-colors、preferreds-trast、preferreds-reduced-motion、color-gamut。
Chrome 100 的新变化
Chrome 100 现已推出,并提供 3 位数的版本号。漫步于记忆中,庆祝 Chrome 首次发布以来的 #100CoolWebMoments。用户代理字符串有一些重要变化。Multi-Screen Window Placement API 可用于枚举已连接到用户计算机的显示屏,并将窗口放置在特定屏幕上。还有许多其他功能!
Chrome 99 的新功能
Chrome 99 现已推出!CSS 级联层可让您更好地控制 CSS,并有助于防止样式特异性冲突。showPicker() 方法可让您以程序化方式为日期、颜色和数据列表等输入元素显示浏览器选择器。Chrome 和 Firefox 100 版即将推出。还有许多其他功能!
Chrome 98 的新变化
Chrome 98 现已发布!如果您已注册自动深色主题源试用,则可以通过一种新的方式按元素级别停用此功能。现在支持 COLRv1,这是 COLRv0 字体格式的演变。还有许多其他功能。
Chrome 98 中的 COLRv1 颜色渐变矢量字体
在 Chrome 98 中,Chrome 和 Fonts 团队添加了对 COLRv1 的支持,COLRv0 是 COLRv0 字体格式的进化版本,旨在通过添加渐变、合成和混合来扩大彩色字体的范围,并改进了针对清晰和紧凑的字体文件重复使用的内部形状重用功能。
Chrome 97 的新功能
Chrome 97 现已推出!新增了一个使用网络传输在客户端和服务器之间发送实时消息的选项。您可以使用功能检测来查看浏览器支持哪些类型的脚本。JavaScript 不断完善,还有更多其他功能。
Chrome 96 的新功能
Chrome 96 现已推出!Web 应用清单中有两个新属性。利用 id 属性,您可以为 PWA 指定唯一 ID,利用 Protocol_handlers 属性可在 PWA 安装时自动将 PWA 注册为协议处理程序。我们推出了一项新的源试用,可让您为下载资源指定提取优先级。还有许多其他功能!
强制将用户代理字符串中的 Chrome 主要版本设为 100
Chrome 版本号很快将从两位数变成 3,这可能会影响解析用户代理 (UA) 字符串的所有代码。Chrome 96 至 99 版本中提供了一项功能标志,通过强制将 UA 字符串中的主要版本号设为 100,为早期测试提供支持。
构建有效的图片组件
图片是 Web 应用的性能瓶颈的常见来源,也是优化的主要关注领域。本文档介绍了 Google 的 Aurora 团队如何在 Next.js 中设计一个功能强大的图片组件,该组件使用对开发者友好的界面进行了大量优化。本博文讨论了该组件的设计方式,以及我们在此过程中获得的经验教训。
Chrome 95 的新变化
Chrome 95 现已推出!将 网址Pattern 嵌入浏览器后,路由变得更加简单;Eye Dropper API 提供用于选择颜色的内置工具;现在提供新的源试用,可以接收缩减的 UA 字符串,以及更多功能。
Chrome 94 的新功能
Chrome 94 现已推出!`` 元素的默认颜色空间现在正式定义为 SRGB,您可以将其更改为 Display P3。可以通过一种新的低级方式访问内置音频和视频编解码器,这对在线游戏、视频编辑器等而言非常重要。WebGPU 开始进行源试用。还有许多其他功能!
Chrome 93 的新功能
Chrome 93 现已推出!现在,您可以使用 import 语句加载 CSS 样式表,就像加载 JavaScript 模块一样。已安装的 PWA 可以注册为网址处理程序,以便用户直接跳转到您的 PWA。我们已根据您的反馈更新了 Multi-Screen Window Placement API,并开始进行第二次源试用。我们正将稳定版的发布周期缩短为四周。还有许多其他功能。
Chromium Chronicle #24:StrongAlias、IdType 和 TokenType
同一类型有时可能表示来自不兼容网域的值,这可能会导致错误。幸运的是,Chromium //base 让您可以轻松引入明确的、独特的类型。
使用 COEP 无凭据加载不含 CORP 标头的跨源资源
从 Chrome 93 开始,“Cross-Origin-Embedder-Policy: credentialless”将进入源试用。利用以下新值,网页可以启用跨域隔离,而无需跨源资源通过发送无凭据请求来使用“CORP: cross-origin”标头进行响应。
Chromium Chronicle #22:了解 Thy (Depot) 工具
Depot 工具是基于 Git 构建的一系列工具,用于简化为 Chromium 代码库和相关项目做贡献的开发者的工作流程。
Manifest V3 中的扩展程序操作
多年来,Chrome 扩展程序一直使用浏览器 API 和 Page Actions API,但 Manifest V3 已用通用的 Actions API 取代这两者。此博文探讨了这些 API 的历史以及 Manifest V3 中的变化。
为您的应用打造高性能存储服务:Storage Foundation API
Storage Foundation API 提出了一种类似于基本文件系统的存储 API,可以通过缓冲区和偏移量直接访问存储的数据。
Chromium Chronicle #21:ChromeOS 端到端界面自动化
Tast 是一个新的界面库,它使用 Chrome a11y(无障碍功能)树来控制 ChromeOS 界面。借助该库,开发者能够针对任何可见界面 Surface 轻松创建端到端测试。
Chrome 91 的新功能
Chrome 91 即将推出!现在,在使用 File System Access API 时,与文件交互的 Web 应用可以提供文件名和目录建议。您还可以读取剪贴板中的文件!如果您的网站有多个网域,并且这些网域共用同一个帐号管理后端,那么 Chrome 便可了解它们是否相同,以便密码管理工具推荐合适的凭据。此外,I/O 大会的所有视频现已上线,还有更多精彩内容。
使用声明式链接捕获功能,选择报告范围内的链接如何打开 PWA
声明式链接捕获是一项针对名为“capture_links”的 Web 应用清单属性的提案,可让开发者以声明的方式确定当浏览器被要求从导航范围之外的上下文导航到应用导航范围内的网址时应执行什么声明。
如何在 Chromium 中设置浏览器 flag
对于我们在 Chromium 中引入的一些新 API,您需要设置浏览器标志才能进行实验。了解如何在各种 Chromium 派生产品(例如 Google Chrome、Microsoft Edge 等)中执行此操作。
PWA 的网址协议处理程序注册
将 PWA 注册为协议处理程序后,当用户在浏览器或平台专用应用中点击具有特定协议方案(例如 mailto、比特币或 Web 音乐)的超链接时,注册的 PWA 将打开并接收该网址。
Manifest V3 的 Web 可访问资源
Manifest V3 的网页可访问资源现已发布!现在,“manifest.json”支持权限定义。开发者可以根据发出请求的网站来源或扩展程序 ID 限制资源。
Chrome 90 的新功能
Chrome 90 现已推出!CSS overflow 属性有一个新值。Feature Policy API 已更名为“权限政策”。此外,还有一种直接在 HTML 中实现和使用 Shadow DOM 的新方法。除此之外,还有许多其他功能。
Chrome 89 的新功能
Chrome 89 现已推出!WebHID、WebNFC 和 Web Serial 已结束源试用,现在提供稳定版。我们正在填补一些开发者用来绕过 PWA 可安装性检查的漏洞。在桌面设备上,“网络共享”和“网络共享目标”推出。还有许多其他功能!
Chromium Chronicle #17:浏览器测试混合
在编写浏览器测试时,您通常需要以编程方式执行用户能够手动执行的设置操作。为了帮助您做到这一点, mixins 是一套工具,用于以可重复使用的方式执行重要的浏览器测试设置。
使用 Digital Goods API 和 Payment Request API 通过 Google Play 结算服务接收付款
借助 Digital Goods API、Payment Request API 和 Trusted Web Activity,在 PWA 中通过 Google Play 结算服务接收付款
Chrome 88 中的新功能
Chrome 88 现已发布!现在,您可以使用 Manifest V3 将扩展程序上传到 Chrome 应用商店。借助宽高比 CSS 属性,您可以轻松地为任何元素设置宽高比。您现已可以在“可信网络活动”中使用 Play 结算服务,还可以享受许多其他功能。让我们一起深入了解,看看 Chrome 88 为开发者提供了哪些新功能!
Android Chrome 88 和桌面版 Chrome 92 中的 SharedArrayBuffer 更新
SharedArrayBuffer 将在 Android Chrome 88 中推出。它仅适用于跨源隔离的网页。从桌面版 Chrome 92 开始,它也将仅适用于跨源隔离的网页。您可以注册源试用,以保留当前行为,直至桌面版 Chrome 113。
从 Chrome 88 开始,系统会对链接的 JS 计时器施加严格的节流限制
当网页隐藏时间超过 5 分钟、网页处于静默状态至少 30 秒、WebRTC 未处于使用状态且计时器链数为 5 或更大时,密集型限制功能就会生效。
Chromium Chronicle #16:在桌面设备上更新 Google Apps
想知道 Chrome 是如何在桌面设备上保持最新状态的吗?或者更新是如何提供给 Chromebook、Chromecast 或 Android 的?
Chromium Chronicle #15:限制目标可见性
在 Chromium 中,经常会发现为某个组件编写的代码在其他地方很有用,但可能有隐藏的限制。为安全起见,请通过限制目标可见性来限制外部对危险功能的访问权限。
Chrome 87 的新功能
Chrome 87 现已推出!现在,您可以在支持平移、倾斜和缩放的摄像头上控制平移、倾斜和缩放,范围请求和 Service Worker 不需要那么多的解决方法,字体访问 API 会开始源试用,等等。让我们一起深入了解,看看 Chrome 87 为开发者提供了哪些新功能!
Puppetaria:以无障碍功能为先的 Puppeteer 脚本
Puppetaria - 以无障碍功能为先的 Puppeteer 脚本,支持基于查询无障碍功能树(而不是依赖于 CSS 选择器)的备用查询处理程序。
需要反馈:专用网络的 CORS (RFC1918)
如果客户端内部网络上的设备和服务器意外泄露到大量网络,可能会使其容易遭到恶意攻击。CORS-RFC1918 是一项提案,可默认在浏览器中屏蔽来自公共网络的请求,并要求内部设备选择启用此类请求。
允许已安装的 Web 应用作为文件处理程序
将应用注册为操作系统的文件处理程序。 现在,Web 应用 能够读取和写入文件 ,接下来的逻辑步骤是让开发者将这些 Web 应用声明为其应用可以创建和处理的文件的文件处理程序。借助 File Handling API,您可以做到这一点。将文本编辑器应用注册为文件处理程序并安装该应用后,您可以在 macOS 上右键点击.txt 文件,然后选择“获取信息”,以指示操作系统应始终默认使用此应用打开.txt 文件。 可能使用此 API 的网站示例包括: File Handling API
Chrome 86 的新功能
Chrome 86 现已推出!文件系统访问 API 现已稳定提供。Web HID 和 Multi-Screen Window Placement API 现已针对源试用推出新的源试用。CSS 中新增了一些内容,以及更多新功能。让我们一起深入了解,看看 Chrome 86 为开发者提供了哪些新功能!
Chrome 85 的新功能
Chrome 85 现已推出!您可以使用 content-visible: auto 来提升渲染性能。现在可以在 CSS 中设置...的 CSS 属性。现在,您可以使用 getInstalledRelatedApps() API 检查您的 Windows 应用或 PWA 是否已安装。应用图标快捷方式同样适用于 Windows(目前是真正的)。我们针对提取上传流式传输功能提供了源试用。等等。让我们一起深入了解,看看 Chrome 85 为开发者提供了哪些新功能!
Chrome 的新默认引荐来源网址政策 - Strict-origin-when-cross-origin
Chrome 的新默认引荐来源网址政策 - Strict-origin-when-cross-origin
使用 Keyboard Lock API 捕获按键
借助 Keyboard Lock API,网站可以捕获通常由底层操作系统预留的键。它适用于提供全屏沉浸式体验的 Web 应用(例如游戏或远程访问应用)。
使用 browser-fs-access 库读取和写入文件和目录
所有现代浏览器都可以读取本地文件和目录;但是,真正的写入权限(即不仅仅是下载文件)仅限于实现 File System Access API 的浏览器。本文介绍一个名为“browser-fs-access”的支持库,该库充当 File System Access API 之上的抽象层,可透明地回退到处理文件的旧方法。
Chrome 84 的新功能
Chrome 84 现已推出!用户可以使用应用图标快捷方式在您的应用中启动常见任务。Web Animations API 增加了对一系列先前不受支持的功能的支持。唤醒锁定和 Content Indexing API 已完成源试用。我们针对闲置检测和 SIMD 提供了新的源试用。还有许多其他功能。让我们一起深入了解,看看 Chrome 84 为开发者提供了哪些新功能!
利用用户代理客户端提示改善用户隐私并提升开发者体验
User-Agent Client Hints 是 Client Hints API 的一项新扩展,可让开发者以注重隐私保护且符合人体工学的方式访问用户浏览器的相关信息。 借助客户端提示,开发者可以主动请求有关用户设备或条件的信息,而无需从 User-Agent (UA) 字符串中解析这些信息。提供此替代路线是最终缩小 User-Agent 字符串粒度的首要步骤。 了解如何更新依赖于解析 User-Agent 字符串的现有功能,以便改用 User-Agent 客户端提示。
如何在 Looker Studio 上构建 CrUX 信息中心
Looker Studio 是一款强大的数据可视化工具,让您可以基于 Chrome 用户体验报告等大数据源构建信息中心。在本指南中,您将了解如何创建自己的自定义 CrUX 信息中心来跟踪源站的用户体验。
Chrome 83 的新功能
Chrome 83 现已推出!添加了对可信类型的支持,这有助于防止跨站脚本攻击。对表单元素进行了重大改造。有一种检测内存泄漏的新方法。原生文件系统 API 开始新的源试用,并添加额外的功能。让我们一起深入了解,看看 Chrome 83 为开发者提供了哪些新功能!
Lighthouse 6.0 的新功能
新增指标、效果评分更新、新审核等。 今天,我们发布了 Lighthouse 6.0! Lighthouse 是一款自动化网站审核工具,可帮助开发者发现改进网站用户体验的机会和诊断问题。您可以在 Chrome DevTools、npm(作为 Node 模块和 CLI)或浏览器扩展程序(在 Chrome 和 Firefox 中)中使用它。它为许多 Google 服务提供支持,包括 PageSpeed Insights 。 Lighthouse 6.0 现已在 npm 和 Chrome Canary
使用 Idle Detection API 检测非活跃用户
Idle Detection API 会在用户处于闲置状态时通知开发者,以指明与键盘、鼠标、屏幕无法互动、激活屏保、锁定屏幕或移动到其他屏幕等。开发者定义的阈值会触发通知。
Chrome 81 的新功能
Chrome 81 现已推出!应用图标标记表明其源试用已结束。增强现实的命中测试现已在浏览器中可用。Web NFC 开始进行源试用。我收到了调整后的 Chrome 发布时间表的最新消息。让我们一起深入了解,看看 Chrome 81 为开发者提供了哪些新功能!
Chromium Chronicle #13:使用 RR 进行时间旅行调试
您是否发现自己在调试程序中反复运行相同的测试,试图弄清楚代码是如何处于错误状态的?我们为您准备了一款工具!RR 会记录执行轨迹,从而轻松退步、反向运行,查看变量值在哪些方面发生变化,或上次对对象调用函数的时间。
向 Chrome 用户体验报告添加通知权限数据
为帮助网站所有者了解通知权限指标,我们将这些数据添加到了 20201 年数据集中的 Chrome 用户体验报告 (CrUX),让网站所有者更好地了解其网站和同类网站的一般用户通知权限响应情况。
Chromium Chronicle #10:使用 Pixel 测试捕获界面回归问题
Chrome 的测试策略在很大程度上依赖于自动化的功能正确性测试和手动测试,但这两种测试都无法可靠地捕获微小的界面回归问题。使用像素测试可以自动测试桌面浏览器界面。
Chrome 80 的新变化
Chrome 80 现已推出,为开发者提供了大量新功能!可支持工作器中的模块、JavaScript 中的可选链接、新的源试用、已完成源试用的功能,等等。让我们一起深入了解,看看 Chrome 80 为开发者提供了哪些新功能!
android-browser-helper,一个用于构建 Trusted Web Activity 的新库。
引入了 android-browser-helper,这是一个用于构建 Trusted Web Activity 的新库。
Chromium Chronicle #9:ClusterFuzz
您可能会发现,系统会要求您修复 ClusterFuzz 发现的高优先级安全 bug。Google 优惠是什么?你们应该严肃对待这些错误吗?您需要什么帮助?
使用 Content Indexing API 将支持离线访问的网页编入索引
PWA 可能会缓存文章和媒体文件,但用户如何知道您的网页在离线状态下也能正常运行?Content Indexing API 可以为您解答这个问题。当索引中填充来自 PWA 以及任何其他已安装 PWA 的内容后,索引便会显示在受支持浏览器的专用区域中。
Chrome 79 的新功能
Chrome 79 现已推出!Android 上安装的渐进式 Web 应用支持可遮盖式图标。您现在可以使用 WebXR Device API 打造沉浸式体验。我们开始针对 Wake Lock API 和 rendersubtree 属性进行源试用。此外,2019 年 Chrome 开发者峰会的所有视频现已可在线观看。让我们一起深入了解,看看 Chrome 79 为开发者提供了哪些新功能!
Chromium Chronicle #8:GWP-ASan:检测野外的 bug
GWP-ASan 是纯堆内存错误检测器,设计为在野外使用。它会检测释放后使用、缓冲区上溢/下溢和双重释放。与 ASan 不同,它不会检测堆栈或全局变量中的错误。
通过 Periodic Background Sync API 获得更丰富的离线体验
定期后台同步可让 Web 应用在后台定期同步数据,从而让 Web 应用的行为更接近 iOS/Android/桌面应用的行为。
使用 Web Share Target API 接收共享数据
在移动设备或桌面设备上,分享操作应该非常简单,只需点击“分享”按钮,选择应用,然后选择分享对象即可。Web Share Target API 可让已安装的 Web 应用向底层操作系统注册,以便接收共享的内容。
Chromium Chronicle #7:预处理来源
手动编译单个 Chromium 源文件有助于开发者尝试编译器优化选项、了解微妙的宏细节,或最大限度地减少编译器错误。本月,我们将探讨如何对源代码进行预处理。
Chrome 78 中的新功能
Chrome 78 现已推出!您现在可以为 CSS 变量提供 "types"。由于现在会对 importScripts() 导入的脚本执行逐字节检查,因此您可以获得更新鲜的 Service Worker。此外,我还了解了两项新的源试用的详细信息,这两项功能提供了原生文件系统和 SMS Receiver 等一些简洁的新功能。此外,Chrome 开发者峰会将于 2019 年 11 月 11 日至 12 日举行。让我们一起深入了解,看看 Chrome 78 为开发者提供了哪些新功能!
默认情况下,较新的 Service Worker
默认情况下,HTTP 缓存将不再执行检查 Service Worker 脚本更新的 HTTP 请求,并且导入的脚本可以触发 Service Worker 更新流程。
Chrome 77 中的新功能
Chrome 77 现已推出!使用 Largest Contentful Paint 来跟踪网站性能有更好的方法。Google 表单会推出一些新功能。原生延迟加载。Chrome 开发者峰会将于 2019 年 11 月 11 日至 12 日举行。等等。让我们一起深入了解,看看 Chrome 77 为开发者提供了哪些新功能!
Chromium Chronicle #5:在沙盒之外进行编码
所有代码都有 bug。Chrome 浏览器进程没有沙盒,这意味着,这些 bug 可能会向恶意代码授予对整个设备的完整访问权限。本集将介绍在不使用沙盒的情况下进行编码的正确做法和错误做法。
通过 ReportingObserver API 了解代码的运行状况
ReportingObserver 可让您了解网站何时使用已弃用的 API 或遇到浏览器干预。这项基本功能最初是在 Chrome 69 中推出的。从 Chrome 84 开始,它可以在 worker 中使用。这非常简单。
网页版联系人选择器
从(几乎)一开始就已成为 iOS/Android 应用的一项功能。联系人选择器 API 是一种按需 API,可让用户从联系人列表中选择一个或多个条目,并与网站共享所选联系人的有限详细信息。用户可以根据需要随时分享自己需要的内容,还可以更轻松地联系亲朋好友以及与他们联系。
Chromium Chronicle #4:使用 WPT 测试您的网络平台功能
Web 平台测试 (WPT) 是测试 Web 公开功能的首选方法,因为它们通过 GitHub 与其他浏览器共享。本月,我们将介绍 WPT 最佳实践。
Chrome 76 中的新功能
Chrome 76 现已推出!它添加了对 preferreds-color-scheme 媒体查询的支持,为网站引入了深色模式。多功能框中的安装按钮,可让用户更轻松地在桌面设备上安装渐进式 Web 应用。用于阻止迷你信息栏在移动设备上显示的方法。提高 WebAPK 的更新频率。等等。让我们一起深入了解,看看 Chrome 76 为开发者提供了哪些新功能!
Chromium Chronicle #3:Gerrit 中的代码覆盖率
测试至关重要,因为它们可以发现 bug 和回归问题、强制执行更好的设计,并使代码更易于维护。本月,我们将探讨如何使用 Gerrit 进行全面测试。
Chrome 75 中的新功能
Chrome 75 现已推出。有一种新方法可以缩短画布元素上的延迟时间。Web 应用现在可以使用系统级共享表单将文件共享给其他已安装的应用。Google I/O 大会的所有演讲视频均在我们的 YouTube 频道上直播。等等。让我们一起深入了解,看看 Chrome 75 为开发者提供了哪些新功能!
Chromium Chronicle #2:应对测试的不稳定之处
不稳定的测试是 Chrome 中的一种常见问题。它们会影响其他开发者的工作效率,并且随着时间的推移会被停用。本月,我们将探讨如何避免测试不稳定问题。
使用 Model-viewer 构建增强现实
今年 2 月份,我们推出了模型查看器 Web 组件,可让您以声明方式向网页添加 3D 模型。现在,我们宣布在 Android 设备上支持 AR,并添加了 ar 属性。
Chrome 74 中的新功能
恰逢 Google I/O 大会,Chrome 74 即将登陆!它增加了对私有类字段的支持;可让您检测用户何时请求了减少动作体验;增加了对 CSS 过渡事件的支持,等等。让我们一起深入了解,看看 Chrome 74 为开发者提供了哪些新功能!
Chromium Chronicle #1:任务调度最佳实践
Chrome 团队自豪地隆重推出 Chromium Chronicle,这是一个专门面向打造浏览器的开发者的每月系列活动。本月,我们将介绍任务安排方面的最佳实践。
Chrome 73 中的新功能
Chrome 73 采用签名 HTTP 交换机制,让创建便携式内容变得更轻松。使用可构造的样式表可以更轻松地动态更改样式。此外,在 Mac 上增加了对渐进式 Web 应用的支持,为所有桌面和移动平台提供对 PWA 的支持,让构建通过 Web 分发的安装式应用变得轻而易举。让我们一起深入了解,看看 Chrome 73 为开发者提供了哪些新功能!
将应用 JavaScript 中的热路径替换为 WebAssembly
WebAssembly 提供的一个主要优势是,在各种浏览器中都能提供可预测的性能。但如何将使用 JavaScript 编写的热路径转换为 WebAssembly?
使用 String.prototype.matchAll() 更好地匹配结果
Chrome 73 引入了 String.prototype.matchAll() 方法。它的行为与 match() 类似,但提供了一种简单的方法来遍历匹配,尤其是在您需要访问捕获组时。
Chrome 72 的新功能
在 Chrome 72 中,通过 JavaScript 创建公共类字段现在更加简洁。您可以查看页面是否已通过新的 User Activation API 激活,列表的本地化是否变得非常简单,等等。让我们一起深入了解,看看 Chrome 72 为开发者提供了哪些新功能!
使用户激活在所有 API 之间保持一致
在版本 72 中,Chrome 推出了 User Activation v2,这使得所有受激活限制的 API 的用户激活服务都可用,从而解决了许多用户激活不一致问题。
构建支持 WebUSB 的设备
构建设备以充分利用 WebUSB API。 本文介绍了如何构建设备以充分利用 WebUSB API 。如需简要了解该 API 本身,请参阅 在 Web 上访问 USB 设备 。 通用串行总线 (USB) 已成为将外围设备连接到桌面设备和移动计算设备的最常见物理接口。除了定义总线的电气特性和与设备通信的通用模型之外,USB
使用 Screen Wake Lock API 不锁定屏幕
为了避免消耗电池电量,大多数设备会在闲置时快速进入休眠状态。尽管大多数情况下这样做都没有问题,但有些应用需要使屏幕保持唤醒状态,以便完成某些工作。Screen Wake Lock API 提供了一种方法,用于在应用需要持续运行时防止设备屏幕变暗或锁定屏幕。
应用图标的标记
App Badging API 可让已安装的 Web 应用设置应用级标记,该标记显示在与应用关联的操作系统专用位置(例如任务栏或主屏幕)。通过标记,您可以轻松地巧妙地通知用户某些新活动可能需要他们注意,或者标记用于指示少量信息,例如未读计数。
Chrome 71 的新功能
Chrome 71 利用新增的 Intl.RelativeTimeFormat() API 简化了相对时间值显示。您可以指定在文本纵向显示时,应在哪一侧显示下划线。使用语音合成 API 现在需要激活用户,然后您的计算机才能开始与您交谈!让我们一起深入了解,看看 Chrome 71 为开发者提供了哪些新功能!
网络音频、自动播放政策和游戏
2017 年 9 月,我们宣布 Chrome 中的自动播放行为政策即将发生变化,音频的处理方式将随之发生变化。此政策变更已于 2018 年 5 月随 Chrome 66 稳定版一同发布。 在收到 Web Audio 开发社区的反馈后,我们推迟了自动播放政策的 Web Audio 部分的发布,以便开发者有更多时间更新其网站。我们还对 Web Audio 政策的实施进行了一些更改,这将减少需要调整代码的网站数量(尤其是 Web 游戏),从而为用户提供更好的体验。 此政策变更现已安排在 2018 年
Chrome 70 中的音频/视频更新
Chrome 70 音频/视频更新概览 - Android 系统默认允许跨编解码器和跨字节流缓冲和播放、采用 MSE 的 MP4 中的 Opus 以及受保护内容播放。
Chrome 70 的新变化
Chrome 70 增加了对 Windows 和 Linux 上的桌面渐进式 Web 应用的支持、对凭据管理 API 的公钥凭据的支持,让您能够为专门的 worker 提供名称,此外还有很多其他功能。让我们一起深入了解,看看 Chrome 70 为开发者提供了哪些新功能!
对 Chrome 71 中的 cache.addAll() 和 importScripts() 进行了调整
cache.addAll() 和 importScripts 以及 Chrome 71 即将进行一些细微变更。
Houdini 的动画 Worklet
借助 Animation Worklet,您可以编写以设备的原生帧速率运行的命令式动画,从而获得额外流畅的流畅性,不受主线程卡顿,使动画更有弹性,并且可链接滚动(而非时间)。
Chrome 69 的新功能
Chrome 问世已经有十年了。自那以后,世界发生了翻天覆地的变化,但为现代 Web 应用打下坚实基础的目标却没有!Chrome 69 支持 CSS 滚动贴靠功能、支持凹口、网络锁定和一些很棒的新 CSS4 功能。让我们一起深入了解,看看 Chrome 69 为开发者提供了哪些新功能!
ReportingObserver:了解代码的运行状况
ReportingObserver 可让开发者深入了解其代码在野外执行的操作。ReportingObserver 会显示弃用和干预等问题的相关信息,这些问题之前仅在开发者工具控制台中提供。
Chrome 68 的新功能
Chrome 68 对 Android 设备上的“添加到主屏幕”行为进行了一些更改,可让您更好地进行控制。通过页面生命周期 API,您可以了解标签页何时被暂停或恢复。借助 Payment Handler API,基于网络的付款应用可以支持付款请求体验。让我们一起深入了解,看看 Chrome 68 为开发者提供了哪些新功能!
“添加到主屏幕”行为变更
从 Android 上的 Chrome 68 开始,“添加到主屏幕”行为将发生变化,以便您更好地控制何时以及如何提示用户。如果您的网站符合“添加到主屏幕”条件,Chrome 将不再自动显示“添加到主屏幕”横幅。而是需要对保存的 beforeinstallprompt 事件调用 Prompt(),以向用户显示“添加到主屏幕”对话框提示。
Chrome 67 的新功能
Chrome 67 将渐进式 Web 应用带到了桌面。添加了对通用传感器 API 的支持,以便更轻松地访问加速度计、陀螺仪等设备传感器。并且添加了对 BigInts 的支持,使处理大整数变得更加轻松。让我们一起深入了解,看看 Chrome 67 为开发者提供了哪些新功能!
使用 WebAuthn 启用增强型身份验证
Chrome 67 Beta 版引入了 Web Authentication (WebAuthn) API,该 API 可让浏览器与基于公钥的凭据进行交互并管理这些凭据。这样一来,您就可以使用可移除的安全密钥和内置的平台身份验证器(例如指纹扫描器)进行增强型身份验证。
Chrome 67 中的弃用和移除功能
概括介绍了 Chrome 67 中弃用和移除的功能,以便您做好规划。在此版本中,弃用了公钥固定功能,移除了针对不安全上下文的 AppCache,并移除了更多前缀。
Chrome 66 的新功能
Chrome 66 通过全新的 CSS 类型化模型对象简化了 CSS 操作,现在,剪贴板访问是异步进行的,画布元素的新呈现上下文以及使用 JavaScript 处理音频的更好方法。让我们一起深入了解,看看 Chrome 66 为开发者提供了哪些新功能!
Chrome 66 中的弃用和移除内容
概括介绍了 Chrome 66 中弃用和移除的功能,以便您做好规划。在此版本中,Service Worker 的安全性得到提升,对 CSS 位置值进行了更改,还做出了其他改进。
Chrome 65 的新功能
Chrome 65 增加了对新的 CSS Paint API 的支持,该 API 可让您以编程方式生成图片。您可以使用 Server Timing API 通过 HTTP 标头提供服务器性能计时信息,新的 CSS display: content 属性可以使方块消失!让我们一起深入了解,看看 Chrome 65 为开发者提供了哪些新功能!
Chrome 65 中的弃用和移除内容
概括介绍了 Chrome 65 中弃用和移除的功能,以便您做好规划。在此版本中,系统会禁止显示有关 Symantec 证书和跨源下载的提醒,并且 document.all 现在处于只读状态。
Chrome 64 的新功能
Chrome 64 增加了对 ResizeObservers 的支持,它会在元素的内容矩形的大小发生变化时通知您。模块现在可以使用 import.metadata 访问主机特定的元数据。弹出式窗口拦截器变得更强大,并且更强大。让我们一起深入了解,看看 Chrome 64 为开发者提供了哪些新功能!
Chrome 64 中的弃用和移除功能
汇总 Chrome 64 中弃用和移除的功能,以便您进行规划。在此版本中,性能 API 发生了变化,移除了对多个影子根的支持,并移除了一个 WebKit API。
Chrome 63 的新功能
Chrome 63 允许您动态导入 JavaScript 模块。我最喜欢的面试编码问题可以用异步迭代器和生成器轻松搞定。您还可以使用 CSS overscroll-behavior 属性替换浏览器的默认溢出滚动行为。
Chrome 63 中的弃用和移除内容
概括介绍了 Chrome 63 中弃用和移除的功能,以便您做好规划。在此版本中,接口属性上新增了一些行为,移除了 webkit 函数,并更改了 RTCRtcpMuxPolicy。
Chrome 62 的新功能
Chrome 62 通过网络质量指示器改进了网络信息 API,现已开始支持 OpenType 可变字体,而且您现在可以使用 Media Capture from DOM element API 来捕获和处理来自 HTMLMediaElements 的媒体流。
Chrome 62 中的媒体更新
通过永久性许可和 Android 上的 Widevine L1 进行离线播放、视频轨道优化、设备旋转时自动全屏显示、支持直播 MS 串流中的可搜索范围、支持 MSE 的 MP4 MP4 格式!
Chrome 61 的新功能
Chrome 61 现在原生支持 JavaScript 模块,统一了模块化 JavaScript 的编写方式。您现在可以使用导航器点共享来触发原生 Android 共享对话框。与此同时,WebUSB API 也正式推出,可让 Web 应用访问用户允许的 USB 设备。除此之外,还有许多其他功能。
Chrome 60 的新功能
在 Chrome 60 中,您现在可以使用 Paint Timings API 测量首次绘制所用的时间和首次内容绘制所用的时间。您可以使用 font-display CSS 属性控制字体的渲染方式。WebAssembly 已经落地,还有许多新功能!
Chrome 59 的新功能
借助 Chrome 59,您可以在没有界面或外围设备的自动化环境中运行 Chrome;macOS 上的通知会直接由原生 macOS 通知系统显示;您现在可以使用图片拍摄 API 拍摄完整分辨率的照片,还有更多精彩功能!
Chrome 58 的新功能
在 Chrome 58 中,渐进式 Web 应用可通过“全屏”显示更具沉浸感。现已支持 IndexedDB 2.0,沙盒化 iframe 拥有更多选项。Pete LePage 了解所有详情以及如何在 Chrome 58 中使用这些新的开发者功能。
Chromium 关于 JavaScript 对话框的政策
同步的应用模态 JavaScript 对话框通常(但遗憾的是)用于危害用户。因此,Chromium 团队强烈建议不要使用 JavaScript 对话框。
Chrome 57 的新功能
在 Chrome 57 中,您现在可以使用“显示”功能:采用网格形式显示基于网格的布局;使用媒体会话 API 自定义锁定屏幕,并使用与正在播放的媒体相关的信息来自定义通知。Pete LePage 介绍了所有详情以及如何在 Chrome 57 中使用这些新的开发者功能!
Chrome 56 的新功能
在 Chrome 56 中,Web 应用现在可以使用 Web Bluetooth API 与附近的蓝牙低功耗设备通信。CSS 位置:sticky; is back - 便于您创建可正常滚动直至固定在视口顶部的元素。默认情况下,系统会为所有用户启用 HTML5。
Chrome 55 的新功能
在 Chrome 55 中,您可以使用 async 和 await 像编写同步代码一样编写基于 Promise 的代码。PointerEvents 提供了一种统一的方式来处理所有输入事件。永久性存储功能已完成源试用。
Chrome 54 的新变化
在 Chrome 54 中,您可以使用自定义元素 v1 创建自己的自定义 HTML 标记,并制作可重复使用的网络组件;使用 BroadcastChannel API 可以更轻松地在同源的打开窗口或标签页之间发送消息;在 Android 上获享更好的媒体体验;现在,作为源试用提供外部提取服务。
Web 推送互操作性方面的优势
在最新版本的 Chrome 中,Web 推送进行了一些更新。GCM 现在支持 Web 推送协议,如果您使用 VAPID,则无需注册 Google Developers 项目,即可获得 FCM 端点。
Chrome(Android 版)音频和视频的 Service Worker 缓存、PlaybackRate 和 Blob 网址
从版本 52 开始,Android Chrome 使用与桌面 Chrome 相同的媒体堆栈,而不是依赖于底层平台实现。这样可以实现 Service Worker 媒体缓存、可变播放速率、Android 上的 blob 网址、API 之间的 MediaStream 传递,以及更简单的跨平台调试。
适用于 WebRTC 的 ECDSA - 更高的安全性、更好的隐私保护和更出色的性能
从版本 52 开始,Chrome 默认使用 ECDSA - 一种用于生成 WebRTC 证书密钥的更高效、更安全的算法。此外,RTCCertificate 现在可以通过 IndexedDB 存储。
利用 Intel Edison 打造支持 Web 的 IoT 设备
如今,物联网已成为万众瞩目的焦点,但如果您能够创造一台通过网络浏览器访问的 IoT 设备,会怎么样?在本文中,我们将了解如何使用实物网、网络蓝牙和 Node.js(在 Intel® Edison Arduino 分组板上运行)实现这一点。
Media Source API - 自动确保媒体片段以附加顺序流畅播放
Media Source API 可让 JavaScript 构建用于播放的媒体流。从 Chrome 50 开始,可以使用 SourceBuffer 序列模式来确保媒体片段按照附加顺序自动在时间轴中重新定位,而不会出现间隙。
开发者工具变暗,支持 @keyframe 编辑和更智能的自动补全功能
了解开发者工具如何通过更智能的控制台自动补全来减少输入操作,如何直接在“样式”窗格中修改 @keyframe 规则,如何玩转 CSS 自定义变量,以及如何加入黑暗面。
ES2015 代理简介
ES2015 代理(在 Chrome 49 及更高版本中)为 JavaScript 提供了一个中间 API,使我们能够捕获或拦截对目标对象执行的所有操作,并修改此目标的运行方式。
CSS 变量 - 为何应关注?
CSS 变量(更确切地说是 CSS 自定义属性)已在 Chrome 49 中推出。它们不仅有助于减少 CSS 中的重复,还有助于实现强大的运行时效果,如主题切换以及可能对未来的 CSS 功能进行扩展/填充。
使用 MediaRecorder 录制音频和视频
MediaRecorder API 可让您从 Web 应用中录制音频和视频。此功能目前可在 Firefox 以及 Android 版和桌面版 Chrome 中使用。
Android 版 Chrome(适用于 Google Cast)
Android 版 Chrome 现在允许移动网站使用 Presentation API 和 Cast Web SDK 向 Google Cast 设备演示内容。
DevTools Digest - 高效的元素修改、Service Worker 调试和 Material Design 阴影
使用 DOM 面板的新上下文菜单来高效地修改节点。通过 Resources 面板直接调试 Service Worker。在颜色选择器中,从所有 Material Design 阴影中进行选择。更轻松地实现黑箱 JS 库。
运行 JavaScript 代码段
代码段是您可以在 Chrome 开发者工具的“Sources”面板中制作和执行的小脚本。您可以从任何页面访问和运行这些代码。当您运行代码段时,它会从当前打开的网页的上下文执行。
MediaStream 废弃
MediaStream API 表示同步的音频或视频流。即将弃用 MediaStream.ended、MediaStream.label 和 MediaStream.stop()。请改用 MediaStream.active、MediaStreamTrack.label 和 MediaStreamTrack.stop()。
音频媒体来源扩展
媒体源扩展 (MSE) 为 HTML5 音频和视频元素提供扩展的缓冲和播放控件。MSE 最初是为支持基于 HTTP (DASH) 的动态自适应流式传输的视频播放器而开发,但现在可用于音频,专门用于无间断播放。
模拟和测试其他浏览器
您的工作并不局限于确保您的网站在 Chrome 和 Android 上顺畅运行。尽管 Device Mode 可以模拟 iPhone 等一系列其他设备,我们仍鼓励您查看其他浏览器模拟解决方案。
网络动画 - Chrome 36 中现已提供 element.animate()
Web Animations 定义了一个支持网络平台上的动画和同步的模型。element.animate() 是第一个登陆 Chrome 的部分。
更兼容、更流畅的触控
您和您的用户希望移动 Web 应用能够响应并流畅滚动至触摸屏幕。开发此类事件应该很简单,但遗憾的是,移动网络浏览器在滚动过程中如何响应触摸事件将作为实现细节记录在 [TouchEvent](https://www.w3.org/TR/touch-events/) 规范中。
使用 Chrome 开发者工具调试异步 JavaScript
使 JavaScript 独具特色的强大功能是它能够通过回调函数异步工作。通过分配异步回调,您可以编写事件驱动型代码,但由于 JavaScript 并非以线性方式执行,因此跟踪 bug 会让人抓狂。 幸运的是,现在在 Chrome 开发者工具中,您可以查看异步 JavaScript 回调的 完整 调用堆栈! 在 DevTools 中启用异步调用堆栈功能后,您将能够深入了解 Web 应用在不同时间点的状态。遍历某些事件监听器、 setInterval 、 setTimeout 、
Chrome 开发者工具 11 月摘要
Chrome 开发者工具更新速度很快,我们想向您介绍我们为部分组件引入的一些新功能和改进。具体而言,我们将介绍一些界面变更、高分辨率 JS 性能分析和新的 Workspaces 功能。 CPU 性能分析 是一项非常实用的功能,可用于了解 JavaScript 的效率。除了传统的配置文件视图之外,我们今年夏天还推出了 火焰图 ,可直观呈现网页 JavaScript 处理随时间的变化。 您可以使用它轻松查看调用堆栈的深度,以及各个函数的处理时间。
Chrome 开发者工具变革 2013
随着 Web 应用的复杂性和功能不断增加,Chrome 开发者工具也不断发展壮大。在 Paul Irish 在 2013 年 Google I/O 大会上发表的演讲 Chrome DevTools Revolutions 2013 的回顾中,您可以了解将彻底改变 Web 应用构建和测试方式的最新功能。 如果您错过了 Paul 的演讲,可以点击上方观看(没关系,我们会等您),也可以直接跳转至精彩集锦: 这些功能已在 Chrome 28 中推出,现已在稳定更新渠道中提供。 借助工作区,您可以将从本地
WebRTC - RTCDataChannel 演示、API 变更... 以及 Chrome 与 Firefox 通信
WebRTC - RTCDataChannel 演示、API 变更... 以及 Chrome 与 Firefox 通信
OAuth2:使用 Google 对用户进行身份验证
有关如何构建通过 Google People API、Chrome Identity API 和 OAuth2 访问用户的 Google 通讯录的扩展程序的分步说明。
OAuth 2.0:向 Google 验证用户身份
有关如何构建通过 Google People API、Chrome Identity API 和 OAuth2 访问用户的 Google 通讯录的扩展程序的分步说明。
DOM 性能大幅提升 - WebKit 的 innerHTML 速度加快了 240%
Chrome 工程师 Kentaro Hara 在 WebKit 中进行了七项代码优化,提高了 Safari (JavaScriptCore) 和 Chrome (V8) 的性能。
JavaScript Source Maps 简介
您是否曾希望在合并和缩减客户端代码后,该代码仍然可读且更重要的是可调试,而不会影响性能?现在,您可以借助 源代码映射 的神奇力量来实现这一点。 源代码映射是一种将合并/缩减文件映射回未构建状态的方法。在构建正式版时,除了缩减和合并 JavaScript 文件之外,您还会生成一个源映射,其中包含原始文件的相关信息。当您查询生成的 JavaScript 中的某行和某列号时,可以在源映射中进行查找,以返回原始位置。开发者工具(目前为 WebKit 每夜 build、Google Chrome 或
SwiftShader 为 Chrome 引入了软件 3D 渲染功能
SwiftShader 是 Chrome 18 中使用的一款 3D 渲染软件,可让您使用 CSS 3D 和 WebGL,甚至可以在已列入拒绝名单的 GPU 上使用。
让 Gmail 处理所有 mailto - 包含 registerProtocolHandler 的链接
有了 navigator.registerProtocolHandler() ,您可以将 Gmail 作为所有 mailto 链接的默认邮件客户端。
Chrome(Android 版)- 助力推广移动网站
Android 版 Chrome 浏览器(测试版)基于 Chromium 开放源代码项目,引入了 Chrome 开发者已经了解并喜爱的许多最新 HTML5 功能。
HTML5 音频和 Web Audio API 是死党
通过 createMediaElementSource(),您可以将 HTML5 与 Web Audio API 的可视化、过滤和处理功能相结合。
评估 Web 应用的速度
快速的 Web 应用才是成功的 Web 应用。作为开发者,您只有同时优化应用的实际性能和用户体验,才能完成工作。这不仅仅是确保用户获得出色体验的正确做法,还有一些非常实用且重要的业务原因需要您进行优化。Amazon 测量发现,每增加 100 毫秒的网站延迟时间,销售额就会下降 1%;Google 测量发现,每增加 0.5 秒的延迟时间,流量就会下降 20%( 参考文献 )。这些数据是真实的,对您的业务和 Web 应用有实际意义。 网页速度非常重要,Google 甚至专门投入了大量精力来
Chrome 开发者工具简介(第一部分)
Google Chrome 是一款功能丰富且强大的网络浏览器,开创了 Web 应用的先河。Google 一直在努力为最终用户提供非常快速、非常稳定且功能丰富的浏览体验。Google 还确保像您这样的开发者能够获得良好的 Chrome 使用体验。捆绑在 Chrome 和 Safari 中的开发者工具可让网站开发者和程序员深入到浏览器及其 Web 应用的内部。 开发者工具是开源 Webkit 项目的一部分。本文中的大多数讨论都适用于 Google Chrome 和
Use the Chrome Web Store Publish API
How to programmatically create, update, and publish items in the Chrome Web Store.
Google Play for Education Addendum to the Google Chrome Web Store Developer Agreement
In connection with the Google Chrome Web Store, Google may make certain Chrome Web Store applications available in Google's Play for Education site. If You or Your organization is interested in participating, please verify that the
Chrome Web Store API Reference
This reference describes the methods and resource representation available for the Chrome Web Store Publish API. Each resource type has one or more data representations and one or more methods. See Using the Chrome Web Store Publish API for a guide
Design Docs and discussions
WebDriver BiDi Backend Design [Microsoft] Async Command Processing for WebDriver in Chromium Browser Tools- and Testing WG, Day 2, TPAC 2019, Fukuoka Browser Tools- and Testing WG, Day 1, TPAC 2019, Fukuoka
chrome.pageCapture
Use the chrome.pageCapture API to save a tab as MHTML. MHTML is a standard format supported by most browsers. It encapsulates in a single file a page and all its resources (CSS files, images..). Note that for security reasons a MHTML file can only be
Accessibility
Digital accessibility, commonly abbreviated a11y, is about designing and building websites and web apps that disabled people can interact with in a meaningful and equivalent way. This course is created for beginner and advanced web developers. You
Chrome's 2024 recap for devs: Re-imagining the web with AI in DevTools, built-in Gemini, and new UI capabilities
Check out Chrome for Developers' 2024 year-end roundup of the latest web features, capabilities, and tools.
chrome.declarativeWebRequest
Note: this API is deprecated. Check out the declarativeNetRequest API instead. Use the chrome.declarativeWebRequest API to intercept, block, or modify requests in-flight. It is significantly faster than the chrome.webRequest API because you can
chrome.offscreen
Use the offscreen API to create and manage offscreen documents. To use the Offscreen API, declare the "offscreen" permission in the extension manifest. For example: Service workers don't have DOM access, and many websites have content security
chrome.downloads
Use the chrome.downloads API to programmatically initiate, monitor, manipulate, and search for downloads. You must declare the "downloads" permission in the extension manifest to use this API. You can find simple examples of using the
chrome.platformKeys
Use the chrome.platformKeys API to access client certificates managed by the platform. If the user or policy grants the permission, an extension can use such a certficate in its custom authentication protocol. E.g. this allows usage of platform
chrome.systemLog
Use the chrome.systemLog API to record Chrome system logs from extensions. string Adds a new log record. MessageOptions The logging options. function optional The callback parameter looks like: Promise<void> Promises are supported in Manifest
chrome.webNavigation
Use the chrome.webNavigation API to receive notifications about the status of navigation requests in-flight. All chrome.webNavigation methods and events require you to declare the "webNavigation" permission in the extension manifest. For example: For
chrome.loginState
Use the chrome.loginState API to read and monitor the login state. "SIGNIN_PROFILE" Specifies that the extension is in the signin profile. "USER_PROFILE" Specifies that the extension is in the user profile. "UNKNOWN" Specifies that the session state
chrome.management
The chrome.management API provides ways to manage installed apps and extensions. You must declare the "management" permission in the extension manifest to use the management API. For example: management.getPermissionWarningsByManifest(),