请经常查看此页面,了解 Chrome 扩展程序、扩展程序文档、相关政策或其他方面的变更。您还可以在 Extensions Google 群组 上发布其他通知。Chrome 时间表中列出了稳定版和 Beta 版发布日期。
Chrome 128:声明式网络请求中的响应标头匹配
从 Chrome 128 开始,我们将在声明式 Net Request API 中添加对响应标头匹配的支持。这是一个常见的请求,尤其是为了匹配 Content-Type 标头,我们与 WebExtensions 社区群组一起设计了适合的 API。
我们更新了 API 参考文档,添加了新的 responseHeaders
和 excludedResponseHeaders
字段。您可以使用这些函数检查给定标头是否存在以及值。
在本次更新中,我们在文档中新增了规则评估部分,其中说明了规则的匹配方式。尤其是对于标头匹配,规则只能在收到响应标头后运行,因此规则的应用的阶段要比其他规则晚。这意味着请求确实在被阻止或重定向之前到达服务器。
视频:什么是内容脚本?
了解 Chrome 扩展程序中的内容脚本,包括如何注册 CSS 和 JavaScript 以便在特定网页上运行。观看完整视频。
重要政策更新
Chrome 应用商店团队已发布对开发者计划政策页面的一系列更新,这些更新旨在鼓励开发优质产品、防范欺骗性行为并确保征得用户同意。Chrome 应用商店政策管理者 Rebecca Soares 在 Chrome 扩展程序:重要政策更新这篇博文中总结了所有更新。
博文:Chrome 扩展程序正在发生哪些变化,2024 年 7 月
在过去三个月里,我们发布了多项重大更新和新功能,包括开始逐步淘汰 Manifest V2。请观看 Chrome 扩展程序 7 月版的最新动态,快速了解相关情况!
视频:什么是远程托管代码?
Chrome 扩展程序团队的 Patrick 介绍了 Chrome 扩展程序中的远程托管代码 (RHC) 的概念。了解不再允许使用 RHC 的原因、如何检测 RHC,以及需要更新扩展程序时的应对措施。观看完整视频。
Chrome 127:新增 action.openPopup API
从 Chrome 127 开始,action.openPopup
API 适用于所有扩展程序。以前,它仅在 Canary 版中提供
或者是政策安装的扩展程序
视频:信任和安全团队访谈
Chrome 扩展程序开发团队与 Trust & &安全团队负责领导 Chrome 应用商店中的审核工作,并向您提问。观看完整视频。
博文:Manifest V2 逐步弃用
自 6 月 3 日起,Chrome Beta 版、开发者版和 Canary 版中的部分应用如果仍然安装 Manifest V2 扩展程序,部分用户在访问扩展程序管理页面 chrome://extensions 时会看到警告横幅,通知他们已安装的部分(Manifest V2)扩展程序很快将不再受支持。如需了解详情,请参阅官方公告
侧边栏界面更新
我们最近对侧边栏界面进行了一些更改,包括添加了图钉图标 并移除全局侧边栏图标。如需了解详情,请参阅 PSA,并查看我们更新后的文档和示例。
博文:2024 年 Google I/O 大会上的 Chrome 扩展程序
另一场 Google I/O 大会即将拉开帷幕,我们已经介绍了所有激动人心的扩展程序更新!前往 YouTube 观看完整视频,并阅读我们的博文,了解部分亮点。
跳过审核以检查符合条件的声明式网络请求变更
现在,如果您使用 Chrome 应用商店,那么对于符合条件的更改, 声明式网络请求 API详细了解资格要求以及启用方式 (请参阅 Chrome 应用商店文档)。
Chrome Web Store API 中提供了 deployPercentage
我们最近更新了 Chrome Web Store API 文档,在其中添加了有关 deployPercentage
的信息,以便您分配部分发布部署的一定比例。了解 deployPercentage
。
Chrome 126:扩展程序中的源试用
Chrome 126 引入了新的 manifest.json 字段 - trial_tokens
,可让您针对所有扩展程序途径选择启用源试用和弃用试用。如需了解详情,请参阅指南。
博文:Chrome 扩展程序的新变化 - 2024 年 4 月
我们发布了新一期的 Chrome 扩展程序发生了什么。这篇博文讨论了扩展程序团队过去几个月的工作情况。其中包括:Chrome 应用商店中的版本回滚、更出色的 Firebase Auth 支持以及更多 API 发布和更新。
Chrome 应用商店开发者信息中心内的版本回滚
将您的扩展程序回滚到 Chrome 应用商店中之前发布的版本,无需额外的审核!如需了解详情,请参阅这篇博文和文档。
Chrome 124:高级 documentScan API
高级 documentScan
API
现可在 ChromeOS 上发现和检索图片
文件扫描器。
Chrome 124:Service Worker 中的 WebGPU 支持
从 Chrome 124 开始,Service Worker 支持 WebGPU。对于 请参阅 WebGPU 扩展程序示例。
Chrome 123:Events API 支持按 CIDR 地址块进行过滤
Events API 现在支持过滤
由无类别域间路由 (CIDR) 地址块管理。CIDR 块是
共享网络前缀和相同位数的 IP 地址。以前,
开发者需要过滤配置过滤器所需的多个 IP 地址
为阻止范围内的每个地址创建一条规则现在,当扩展程序调用
addListener()
,传入规则意味着系统只会调用事件处理脚本
当网址的主机部分是 IP 地址且包含在任一 CIDR 中时
。
Chrome 应用商店:扩展程序名称长度要求更新
Chrome 应用商店现在普遍规定每个网站不支持 75 个字符的字符数,
扩展程序的 "name"
字段,
manifest.json.以前,英语的长度上限为 45 个字符,
对其他语言区域的 "name"
字段没有限制。
这最初的目的是考虑到文化和语言差异, 可能无法捕获相同数量的字符。很抱歉, 少数开发者滥用此功能,在商店中发布垃圾内容。作为 因此,我们推出了一个新的通用限制,即把字符数增加到 75 个。 目前商店中的几乎所有附加信息都受这一限制,因此, 因此,你需要针对此次变更采取措施。如果您尝试上传 名称超过上限的附加信息,那么上传将会被 被商店屏蔽
博文:eyeo 测试 Service Worker 中止的历程
在 eyeo 的 Extension Engine 团队撰写的这篇帖子中,我们探讨了 测试扩展程序 Service Worker 的问题。在 Manifest V2 中,扩展程序 位于后台页面,并且在整个扩展程序生命周期中处于唤醒状态。 根据设计,Manifest V3 会使用 Service Worker 和 Service Worker 通过在不需要时关停来节省资源。这表示 某些测试挑战。这篇帖子 解释了 Eyeo 如何应对这些挑战。
Chrome 123:闹钟现在会在设备处于休眠状态时运行
使用 chrome.alarms
API 设置的闹钟
在设备进入休眠状态时不再延迟。当设备唤醒时,
无论错过了多少次闹钟,闹钟都会触发一次。例如,假设
将闹钟设置为每小时响铃一次,并且开启的设备从以下时间开始休眠
凌晨 12:55 至凌晨 2:05,则只有凌晨 2:00 的闹钟会触发 onAlarm
事件。
它会在凌晨 2:00 左右触发,并且在设备被唤醒后立即触发
如果它处于睡眠状态。
经过此次变更,Chrome 将与 Web Extensions 社区小组商定的行为保持一致。
博文:通过扩展程序消息端口对 bfcache 行为做出的更改
往返缓存 (bfcache) 是一种浏览器
该优化功能可实现即时向后和向前导航。距离开始还有
在 Chrome 123 中,当具有开放扩展程序端口的网页存储在 bfcache 中时,
消息通道关闭,这意味着系统不会向该网页发送任何消息。
因此,扩展程序脚本应监听生命周期事件,例如
onDisconnect
,并在从 BFCache 恢复页面时设置新连接。
如需了解详情和示例代码,请参阅 通过扩展程序消息端口更改 BFCache 行为。
Chrome 122:异步扩展程序 API 的 Promise 支持
我们已完成对所有异步扩展 API 的 Promise 支持
方法。这样做是为了通过改善
处理异步操作一些方法(例如,
desktopCapture.chooseDesktopMedia()
)仍仅支持回调
因为其当前 surface 与 promise 不兼容。后退
兼容性,但仍支持回调。如果您发现某个 Promise 失败了,
请提交错误。
关于实时通信的新指南
我们刚刚发布了有关扩展程序中实时选项的指南。实时更新提供了从服务器直接到扩展程序安装的即时通信路径。此外,我们还提供了有关如何使用 chrome.gcm 和 Web Push 的新指南。
新指南和示例:测试 Service Worker 终止
我们刚刚发布了有关如何使用 Puppeteer 测试 Service Worker 终止情况的指南。随附的示例在 Puppeteer 和 Selenium 中演示了这一点。
更新后的原生消息传递示例
我们刚刚发布了更新后的示例 。借助此 API,您的扩展程序可以启动 与另一个应用相关联感谢 GitHub 贡献者 Shubham-Rasal 了解这方面的工作。
Chrome 121:标签页上新增了 lastAccessed 属性
tabs.Tab
对象中添加了一个名为 lastAccessed
的新属性。此属性指示标签页的上次激活时间。返回值以毫秒为单位,从 Epoch 起算。
Chrome 121:不支持的“background”密钥现在会发出警告
在从 Manifest V2 更改为 Manifest V3 时,"background"
清单键的子项也发生了变化,以适应将后台脚本替换为扩展程序 Service Worker 的要求。以前,如果将 Manifest V2 键 "scripts"
、"page"
或 "persistent"
添加到 Manifest V3 扩展程序的 "background"
键,系统会抛出错误。现在,如果存在这些键,就会触发警告。
这样做的目的是,根据社区小组中的提案,在多个浏览器的扩展程序中使用一个清单文件。
Chrome 120:闹钟最小粒度降至 30 秒
从 Chrome 120 开始,Manifest V3 扩展程序可以使用 chrome.alarms
API,有 30 秒的延迟或 30 秒的延迟(而不是要求 60 秒或更长时间的值)。
博文:继续向 Manifest V3 过渡
Manifest V2 支持时间表已更新。如需了解详情,请参阅我们的 2023 年 11 月博文。
博文:改进 Manifest V3 中的内容过滤支持
在我们的新博文中了解我们如何改进 declarativeNetRequest API。
博文:Chrome 120 for Extensions 的新变化
Chrome 120 Beta 版已于近期发布。如需简要了解与扩展程序开发者相关的重要更新,请阅读我们的新博文:Chrome 120 for Extensions 的新变化。此版本也标志着一个重大里程碑,从重要平台差距列表中移除了最后两项内容(userScript,ChromeOS 上的文件处理程序)。
PSA:开发者信息中心内隐私权政策网址的处理方式有所变化
开发者信息中心内的隐私权政策现已在产品一级添加。这样,您就可以为每种内容提供不同的隐私权政策。了解详情 PSA 的变更。
视频:与 Matt Frisbie 的对话
我们刚刚在 Chrome for Developers YouTube 频道上发布了一个新视频,这个视频与 Google 开发者专家兼作者 Matt Frisbie 进行了交流。观看 此处。
关于测试扩展程序的新指南
我们刚刚发布了有关如何为扩展程序编写自动化测试的新指南,包括如何编写单元测试及两者 通用指南和 教程。
博文:Chrome 扩展程序的新变化 - 2023 年 10 月
我们刚刚发布了第二版 Chrome Extensions 中发生了哪些变化。这篇博文讨论了扩展程序团队在过去几个月里的工作,包括解决 Service Worker 稳定性问题,以及在弥补 MV3 平台的所有差距方面取得良好进展。我们还分享了即将推出的令人兴奋的 API 版本,例如 Reading List API 和 User Scripts API。
提高了声明式 Net Request API 中的静态规则集限制
遵循网页扩展程序中的反馈 Community Group,我们正大幅将已启用的静态规则集的数量限制从 10 提高至 50。 此外,我们会将允许的静态规则集的总数从 50 增加到 100。这是 目前在 Canary 版中提供
改进了有关远程托管代码的指导
Manifest V3 的一项要求是,扩展程序不得再使用远程托管的代码。尽管本指南从一开始就是迁移指南的一部分,但我们认为有必要改进有关此问题的指南。该页现在提供了更多信息,介绍了 Manifest V3 仍可能实现的功能,并提供有关升级策略的详细信息。
排查 Chrome 应用商店违规行为一文中另有一节内容。新增部分介绍了包含远程托管代码的扩展程序遭拒的常见原因。
Chrome 118:isUrlFilterCaseSensitive 现在默认为 false
从 Chrome 118 开始,isUrlFilterCaseSensitive
属性(位于 chrome.declarativeNetRequest 中)
API 已更改为默认的 false
。如果您希望保留旧行为,可以在以下位置明确将 isUrlFilterCaseSensitive
设置为 true
:
声明您的 declarativeNetRequest 规则。
下文介绍了“网络扩展”中的讨论 社区小组。Firefox 和 Safari 也已经实施了类似的更改。
关于 Cookie 和 Web Storage API 的文档
我们发布了有关 Chrome 扩展程序中 Cookie 和 Web Storage API 如何工作的新指南。 其中包含有关 Cookie 和存储分区划分变化的详细信息,详见 Privacy Sandbox,一个用于弃用第三方 Cookie 的持续性项目 。
扩展程序示例现在可供搜索
我们最近创建了一个页面,可让您搜索 Chrome 扩展程序示例。搜索页面具有多个选项。您可以使用搜索框搜索示例标题中的文字。您可以通过权限或扩展程序 API 限制搜索。借助额外的过滤条件,您可以将搜索范围限制为 API 或功能(用例)示例。
这个新的示例页面由 Google 编程之夏的参与者 Xuezhou Dai 构建,后者也贡献了几个新示例。您可以阅读他们在我们博客上的博文,了解他们去年夏天的经历。
和之前一样,GitHub 上仍然提供了我们的代码示例,供您克隆或创建分支。
Chrome 118:对打开文件 (scheme 网址) 的更改
从 Chrome 118 开始,扩展程序需要使用“允许访问文件网址”设置,从 chrome://extensions
页面启用的设置,以使用标签页或 Windows API 打开 file:// 架构网址。您可以通过调用 chrome.extension.isAllowedFileSchemeAccess()
以编程方式检查此访问权限。Firefox 已经对文件网址进行了限制,而 Safari 也支持这项更改。有关详情,请参阅 Google 群组中有关扩展程序的帖子。
Chrome 117:针对扩展程序 API 导航扩展网址保护
以前,通过 tabs.update()
、tabs.create()
和 windows.create()
的扩展程序 API 调用触发导航时,系统会针对部分 chrome:// 网址触发错误。此外,禁止使用 JavaScript 网址调用 tabs.update()
。在 117 版中,针对 JavaScript 网址的这些保护措施已扩展到 tabs.create()
方法,并且许多其他 chrome:// 网址已添加到禁止网址列表中,这些网址适用于上述所有方法。
改进了 declarativeNetRequest API 的指南
chrome.declarativeNetRequest
API 通过指定声明式规则来屏蔽或修改网络请求。这样一来,扩展程序便可以在不拦截请求和查看其内容的情况下修改网络请求,从而为用户提供更多隐私。使用起来也很困难。有鉴于此,我们重新编写了该指南,以更清晰地展示如何实施声明式规则集。请访问上方链接,阅读新部分。
在 Chrome 应用商店中使用您的 Google Analytics 账号
Chrome 应用商店提供了与 Google Analytics 的集成,这样一来,除了开发者信息中心内提供的视图外,您还可以查看 Chrome 应用商店商品详情的分析数据。有关详情,请参阅在 Chrome 应用商店中使用 Google Analytics 账号。
Chrome 115:默认情况下,开发者工具会跳过内容脚本
注入的内容脚本现在默认位于开发者工具忽略列表中。这不会影响断点,但意味着在调试过程中将跳过内容脚本,并忽略来自这些脚本的异常。当内容脚本在来源标签页中打开时,如果已启用横幅功能,您会看到一个横幅来提醒您,并提供一个选项,以便您从忽略列表中移除您的内容脚本。如需关闭此行为,请打开开发者工具,依次前往设置和忽略列表。如需了解详情,请参阅 DevTools 的新变化。
Chrome 116 Beta 版:我们无法满足您的更多需求
Chrome 116 是一个包含扩展程序的重要版本。您现在可以以编程方式打开侧边栏。我们提供了一种新方法,可让您了解是否有处于活动状态的屏幕外文档。Service Worker 获得了多项改进。116 版中有足够多的改进,因此我们撰写了博文进行介绍。自 7 月 19 日起,Chrome 116 处于 Beta 版阶段。
博文:Chrome 扩展程序发生了哪些变化
我们刚刚发布了概览,介绍了今年附加信息方面的变化和改进。这篇博文讨论了今年的重大新功能,包括 Side Panel API、Service Worker 增强功能和屏幕外文档。您还将了解我们本季度的工作内容。该文章列出了更多相关内容,并提供了指向这些内容的链接。
新指南和示例:了解如何在 Chrome 扩展程序中使用 Google Analytics 4
我们发布了新的 Google Analytics 和地理定位指南和示例:
- 更新后的 Google Analytics 指南,其中介绍了如何在 Chrome 扩展程序中使用 Google Analytics 4。此外,我们还向 GitHub 示例代码库中添加了一个有效的 Google Analytics 4 示例。请查看
google-analytics.js
,获取与 Google Analytics 相关的相关代码。 - 新增了地理定位指南和三个示例,演示了如何在 Service Worker、内容脚本、弹出式窗口和侧边栏中访问地理定位。
Chrome 115:在 chrome.offscreen.createDocument() 中指定多个原因
现在,您可以在调用 chrome.offscreen.createDocument()
时指定多个 reason
枚举。当屏幕外文档要用于多种不同用途时,可使用此方法。浏览器会根据所提供的原因确定屏幕外文档的有效期。
新工具:扩展程序更新测试工具
我们刚刚发布了扩展程序更新测试工具,这是一款本地扩展程序更新服务器,可用于在本地开发期间测试 Chrome 扩展程序的更新,包括权限授予。该工具会显示用户的更新流程,包括在用户授予任何新请求的权限之前让扩展程序保持停用状态。此工具特别适合用于模拟在将扩展程序从 Manifest V2 更新为 Manifest V3 时所请求的权限更改。
Chrome 114:新的 Side Panel API
我们推出了新的 Side Panel API,这个配套界面可让用户在浏览的内容旁边使用各种工具。如需了解详情,请访问 Side Panel API 参考文档。此外,我们还向 GitHub 示例代码库中添加了许多侧边栏示例。此外,我们还在全新博文利用新的 Side Panel API 设计卓越的用户体验中分享有关侧边栏的更多信息。此外,我们还查看了我们的质量指南政策和最佳实践,以针对制作优质侧边栏扩展程序提供了进一步指导。
您的反馈对于开发此 API 至关重要;请在 chromium-groups 中分享您的看法和功能请求。我们会继续增强 Side Panel API,敬请关注最新更新。
新示例:扩展程序中的 WASM
我们提供了两个新示例,演示了如何在扩展程序中使用 WASM:
- 在 Manifest V3 中使用 WASM 介绍了添加 WASM 模块的常规方法。
- 在 Manifest V3 中使用 WASM 作为模块介绍了如何在模块中使用 WASM。
特别感谢 GitHub 贡献者 @daidr 提供这些示例。
更新后的 Manifest V3 迁移指南
我们更新了 Manifest V3 迁移指南的已知问题部分,更新了有关扩展程序平台问题的列表。我们打算在公布新的 Manifest V2 弃用时间表之前解决相关问题。
使用 Manifest V3 录制音频和视频
我们刚刚发布了一篇名为音频录制和屏幕截图的新文章,其中介绍了如何在 Manifest V3 中使用标签页、窗口或屏幕录制音频或视频。本文介绍了涉及 chrome.tabCapture
API 和 getDisplayMedia()
函数的多种记录方法。
Chrome 114:增加 storage.local 配额
我们已将 storage.local
资源的配额增加到大约 10 MB。这是在 Web Extensions 社区小组中达成的。这使 storage.local
与 Chrome 112 中已更改的 storage.session
保持一致。
新的扩展程序 Service Worker 教程和帮助
Service Worker 是 Chrome 扩展程序中不可或缺的组成部分。我们刚刚发布了教程,其中介绍了注册、调试和与 Service Worker 交互的基础知识。我们还新增了更详细地解释重要概念的新 Service Worker 指南。我们将在未来几个月内扩展此部分内容。
针对应用商店违规行为的更多问题排查提示
为帮助发布 Chrome 应用商店,我们在两个方面添加了新的指南。最基本的功能指南着眼于为用户提供优势并丰富他们的浏览体验。有关联属营销广告的指南,应让用户了解扩展程序会将联属营销链接或代码用于变现,并要求用户执行相关操作后才能添加相应内容,从而赋予他们一定的控制权。
关于扩展程序清单转换器的新说明
我们重写了 Extension Manifest Converter 的 README 文件,以便您更轻松地在运行该工具后查看需要执行的操作。该转换器有助于将基于 Manifest V2 构建的扩展程序迁移到 Manifest V3。新的 README 文件使用与迁移指南核对清单中的字词非常接近的字词来描述该工具的用途。虽然转换器并不是所有事情,但它确实可以消除许多不需要人工判断的任务。
Chrome 113:出现屏幕外文档的新原因
我们向 Offscreen Documents API 中添加了两个新的原因类型。使用 LOCAL_STORAGE
访问网络平台的 localStorage API。创建 Web Worker 时使用 WORKER
。
Google Analytics 4 现已在开发者信息中心内
Chrome 应用商店开发者信息中心现在支持 Google Analytics 4 (GA4)。我们简化了 Google Analytics 的设置过程,并针对群组发布者进行访问权限管理变得更加简单明了。如果您之前曾使用 Google Universal Analytics 跟踪商品详情活动,则需要在 2023 年 7 月 1 日之前采取行动,以确保继续接收商品详情的相关数据。如需了解详情,请参阅 Google 群组上关于 Chromium 扩展程序的帖子。
File Handling API 现已登陆 ChromeOS
在 Canary 版中,File Handler API 可用于在 ChromeOS 中针对版本 112 和 113 进行实验。它允许 ChromeOS 上的扩展程序打开具有指定 MIME 类型和文件扩展名的文件。如需实现文件处理,请向 manifest.json
添加一组规则。此功能与渐进式 Web 应用的工作方式相同。有关详情,请参阅本网站其他位置的文章。
如需启用文件处理功能,请执行以下操作:
- 从 Android 112 开始,使用
--enable-features=ExtensionWebFileHandlers
标志启动 Chrome(从 112 开始) - 从 Android 113 开始,将
os://flags/#extension-web-file-handlers
粘贴到 Chrome 的多功能框中并选择“已启用”下拉菜单。
我们希望在 6 月下旬在 Chrome 115 中推出此功能。请关注此处的最新动态。
新示例:动态声明和程序化注入
我们为 chrome.scripting
API 构建了一个新示例。该示例演示了动态声明(即在运行时注册内容脚本)以及程序化注入(即脚本在已打开的标签页中执行)。
新示例:声明式网络请求用例
我们提供了三个新示例来演示 声明式 Net Request API。每个示例都演示了单个用例的实现。第一个部分展示了如何屏蔽 Cookie。其余两个演示了屏蔽和重定向网址的过程。
Chrome 112:增加 storage.session 配额
从 Chrome 112 开始,storage.session
资源的配额已增加到大约 10 MB。这是 Web Extensions 社区群组 (https://github.com/w3c/webextensions/issues/350) 中的一项协议
Chrome 109:屏幕外文档
Manifest V3 扩展程序现在提供屏幕外文档。它们通过支持 DOM 相关功能和 API 来帮助从后台页面过渡到扩展程序 Service Worker。如需了解详情,请参阅这篇博文。
Chrome 110:此扩展程序是否已启用
chrome.action.isEnabled()
方法以编程方式检查是否已为特定标签页启用扩展程序。这样,您就无需保持标签页的启用状态。这一新方法接受标签页 ID 和对回调的引用,并返回一个布尔值。它有一项限制:使用 chrome.declarativeContent
创建的标签页始终返回 false。
(chrome.action
命名空间最近添加了用于控制扩展程序标志外观的新方法。如需了解详情,请参阅设置标志颜色。)
Chrome 110:Service Worker 空闲超时时间变更
以前,Extension Service Worker 经常会在五分钟时关闭。我们已更改此行为,使其更接近网络上的 Service Worker 生命周期。扩展 Service Worker 将在不活动状态 30 秒后或单个 Activity 的处理时间超过 5 分钟时关闭。如需了解详情,请参阅更长的扩展 Service Worker 生命周期。
博文:暂停 Manifest V2 逐步淘汰
Manifest V2 弃用时间表正在审核中,原定于 2023 年初进行的实验将推迟。如需了解详情,请参阅 chromium-extensions Google 群组中的更新。
Chrome 110:设置标志颜色
chrome.action
命名空间有两个新方法,可让您更好地控制外观扩展标志。setBadgeTextColor()
和 getBadgeTextColor()
方法允许扩展程序更改和查询其工具栏图标的标记文本颜色。当与 setBadgeBackgroundColor
和 getBadgeBackgroundColor
结合使用时,这些新方法可以强制实现设计和品牌一致性。
博文:有关过渡到 Manifest V3 的更多详情
我们阐明了 Manifest V2 弃用时间表。Manifest V2 支持时间表也已更新,以反映此信息。
文档更新:迁移到 Manifest V3 时的已知问题
我们整理了一份目前正在开发的主要功能和待解决的错误列表。此页面的目标是帮助开发者更好地了解平台的当前状态,以及他们可以针对哪些功能做好准备,以便做好准备。
Chrome 应用商店:“大型宣传图块”已移除图片上传
Chrome 应用商店移除了“大型宣传图块”从开发者信息中心内的“商品详情”标签页上传界面。此变更不会影响最终用户体验,因为消费者界面中未使用这些图片。如需了解详情,请参阅这篇 chromium-extensions 帖子。
Chrome 106:允许 file:// 网址中的网页访问可供网络访问的资源
根据 crbug.com/1219825#c11 的资料,沙盒化 iframe 和动态导入等不透明源也应该能够访问网络可访问资源。
Chrome 106:修复了允许某些异步 API 函数使用错误的最终参数的错误
以前,Manifest V3 调用异步 API 可能会提供无效的最终参数,并且 Chrome 不会出现错误。修复此问题后,Chrome 现在可以正确出现错误并报告没有匹配的签名。我们建议开发者在 Canary 版中检查其扩展程序是否存在任何错误,以防他们不小心为 API 调用使用了不正确的签名,而该签名会导致此 bug 修复中断。
博文:Chrome 应用商店分析功能改进
Chrome 应用商店为 Chrome 应用商店开发者信息中心推出了经过改进的商品分析体验。新版信息中心更一目了然,并整合了最实用的信息。如需了解详情,请阅读这篇博文。
Chrome 105:Identity API 的承诺
Identity API 中的函数
支持基于 promise 的调用。这使得
identity.getAuthToken()
,其中
设置为基于 promise 的调用的异步返回将具有“令牌”和“grantedScopes”作为参数
(这与回调版本作为
回调)。
Chrome 104:Manifest V3 的新网站图标 API
Manifest V3 扩展程序现在可以使用新的网址格式 chrome-extension://<id>/_favicon/
访问网站图标,其中 chrome://favicons
API。如需了解详情,请参阅 Favicon API 文档。
文档更新:开发者交易者/非交易者信息披露
添加了交易者/非交易者开发者身份信息, 告知开发者准确自行声明其交易者/非交易者身份。
Chrome 103:Manifest V3 中的 Wasm 需要使用 wasm-unsafe-eval
默认情况下,Chrome 不再授予扩展程序script-src: wasm-unsafe-eval
。使用
WebAssembly 现在必须明确将此指令和值添加到 extension_pages
的
content_security_policy
声明。
Chrome 103:对 MV3 快捷方式的更改会立即生效
在 chrome://extensions/shortcuts
上更改 Manifest V3 扩展程序的键盘快捷键时:
更新会立即应用以前,您必须先重新加载该扩展程序
更改将生效。
Chrome 102:主环境中的动态内容脚本
动态注册的内容脚本现在可以指定
world。请参阅
scripting.registerContentScripts()
了解详情。
Chrome 102:新增了清单字段“optional_host_permissions”
Manifest V3 扩展程序现在可以在 manifest.json 中指定 optional_host_permissions
键。这个
允许 Manifest V3 扩展程序为主机声明可选的匹配模式,就像 Manifest V2 一样
扩展程序可以使用 optional_permissions
键。
Chrome 102:injectImmediately 属性 inscripting.executeScript()
chrome.scripting.executeScript()
现在接受 injectImmediately
上可选的
injection
参数。如果存在并设为 true,脚本将在
而不是等待 document_idle
。请注意,这并不能保证脚本
在页面加载之前注入,因为进行 API 调用时页面会继续加载。
Chrome 102:Manifest V3 支持多功能框 API
现在,您可以在基于 Service Worker 的 Service Worker 中使用 Omnibox API 。以前,此 API 的部分方法会由于内部 对 DOM 功能的依赖。
Chrome 102:Manifest V3 CSP 中允许使用 wasm-unsafe-eval
Manifest V3 扩展程序现在可以在其 content_security_policy
中包含 wasm-unsafe-eval
声明。此更改允许 Manifest V3 扩展程序使用 WebAssembly。
Chrome 102:新的 storage.session API
Manifest V3 扩展程序现在可以在内存存储空间 storage.session 中使用。
文档更新:Chrome 应用商店内容发现
Chrome 应用商店中的发现版块可让您大致了解用户查找内容的方式 以及我们的编辑如何选择要推介的商品。
Chrome 101:改进了 declarativeNetRequest 网域条件
declarativeNetRequest 规则条件
进行了更新,以便扩展程序能够根据请求的“请求”更好地定位请求和
“发起者”网域。相关的条件属性包括 initiatorDomains
、
excludedInitiatorDomains
、requestDomains
和excludedRequestDomains
。另请参阅此内容
chromium-extensions 线程。
Chrome 100:解决了新创建的标签页上的 servering.executeScript() 问题
修复了对新创建的标签页调用 scripting.executeScript()
的长期问题,或
则窗口可能会失败。
Chrome 100:原生消息传递端口使 Service Worker 保持活跃状态
在扩展程序的 chrome.runtime.connectNative()
中使用 chrome.runtime.connectNative()
连接到原生消息传递主机
只要端口处于打开状态,Service Worker 就应保持其活动状态。
Chrome 100:omnibox.setDefaultSuggestion() 支持 promise 和回调
通过
omnibox.setDefaultSuggestion()
方法现在会返回 promise 或接受回调,以允许开发者确定
已正确设置此建议。
Chrome 100:扩展程序 Service Worker 支持 i18n.getMessage()
chrome.i18n.getMessage()
API 现已发布
支持扩展 Service Worker 上下文。
Chrome 99:Canary 版中的 match_origin_as_fallback
内容脚本现在可以指定要注入到match_origin_as_fallback
与匹配帧相关,包括包含 about:
、data:
、blob:
和 filesystem:
的帧
网址。请参阅内容脚本
文档。
Chrome 99:对“文件:Canary 方案”的扩展 Service Worker 支持
基于 Service Worker 的 Manifest V2 和 Manifest V3 扩展程序现在可以使用 Fetch API 请求
file:
架构网址。访问 file:
架构网址仍需要用户启用“允许访问”
到文件网址的针对 chrome://extensions
页面中的扩展程序。
Chrome 99:承诺在 Canary 中支持消息传递 API
已添加到 Promise 支持
tabs.sendMessage
、
runtime.sendMessage
和
runtime.sendNativeMessage
,价格为
专为 Manifest V3 构建的扩展程序。
文档更新:Chrome 应用商店审核文档
添加了新的参考页面,其中提供了 Chrome 概览 应用商店审核流程,并说明了开发者计划政策的违规处置方式。
Chrome 98:scripting.executeScript() 和 scripting.insertCSS() 接受多个文件
Scripting API 的 executeScript()
和 insertCSS()
方法现在接受
多个文件。以前,这些方法需要具有单个文件条目的数组。
Google 文档更新:有关审核违规问题问题排查的更新
排查 Chrome 应用商店违规行为页面 进行了更新,针对被拒常见原因为开发者提供了更详细的指导。
Chrome 96:将 promise 支持扩展到新增 27 个 API
此版本包含的 promise 更新明显多于之前的任何版本。更新内容包括 通用扩展程序 API 和 ChromeOS 专用扩展程序 API。如需了解详情,请展开即可下部分。
Extensions API
现在,很多 API 在 Manifest V3 中均支持 promise。
chrome.browsingData
chrome.commands
chrome.contentSettings
chrome.debugger
chrome.downloads
chrome.enterprise.hardwarePlatform
chrome.fontSettings
chrome.history
chrome.instanceID
chrome.permissions
chrome.processes
chrome.search
chrome.sessions
chrome.topSites
此外,使用 ChromeSetting
的 API
也支持 promise。以下 API 会受到此变更的影响。
ChromeOS API
chrome.certificateProvider
chrome.documentScan
chrome.enterprise.deviceAttributes
chrome.enterprise.networkingAttributes
chrome.fileBrowserHandler
chrome.fileSystemProvider
chrome.loginState
chrome.printingMetrics
chrome.wallpaper
Chrome 96:动态内容脚本
chrome.scripting
API 现在支持
正在注册、
正在更新、
取消注册和获取内容脚本的列表
。以前,内容脚本只能在扩展程序的
manifest.json 或在运行时以编程方式注入的
chrome.scripting.executeScript()
。
文档更新:Manifest V2 支持时间表
我们在这篇博文中公布了 Manifest V2 到 V3 的过渡时间表,并且 发布了更详细的时间轴页面。
Chrome 96:declarativeNetRequestWithHostAccess 权限
新的 declarativeNetRequestWithHostAccess
权限允许扩展程序使用
chrome.declarativeNetRequest
API(适用于
哪些扩展程序具有主机权限。这还会启用使用
webRequest
、webRequestBlocking
和网站特定的主机权限,以迁移到
不使用 chrome.declarativeNetRequest
API
需要用户批准新权限。
Chrome 95:将脚本直接注入网页
chrome.scripting
API 的
executeScript()
方法现在可以
将脚本直接注入网页的主域。以前,扩展程序只能直接注入
进入扩展程序的孤立世界如需详细了解隔离世界,请参阅相关文档
内容脚本。
Chrome 95:承诺支持 Storage API
chrome.storage
的 Manifest V3 版本中的方法
API 现在会返回 promise。
政策更新:强制执行两步验证
2021 年 6 月 29 日发布的政策更新博文已更新 来更正两步验证部署时间表。
Chrome 94:声明式网络请求静态规则集更改
chrome.declarativeNetRequest
现在支持
指定最多 50 个静态规则集
(MAX_NUMBER_OF_STATIC_RULESETS)
最多可启用 10 个规则集
(MAX_NUMBER_OF_ENABLED_STATIC_RULESETS)
。
Chrome 93:跨域隔离支持
Manifest V2 和 Manifest V3 扩展程序现在都可以选择启用跨源隔离。此功能可限制哪些跨源
资源可以加载扩展程序的页面,并支持使用低级别网络平台功能,例如
SharedArrayBuffer
。从 Chrome 95 开始,必须选择启用这项功能。
政策更新:开发者计划政策已更新
Chrome 应用商店的开发者计划政策已更新 并阐明了有关欺骗性安装策略、垃圾内容和重复内容的政策。 此更新还新增了关于在 Chrome 网页版上发布两步验证的要求 商店。如需了解详情,请阅读这篇博文。
博文:Manifest V3 中的扩展程序操作
Chrome 扩展程序多年来一直使用 chrome.browserAction
和 chrome.pageActions
API,但使用清单
V3 将这两者都替换成了通用的 chrome.actions
API。这个
一文介绍了这些 API 的历史,以及 Manifest V3 中的变化。阅读博文。
博文:chrome.scripting 简介
chrome.scripting
API 是专注于 Manifest V3 API 的全新 Manifest V3 API
也就是脚本在这篇博文中,我们将深入探讨这一变化的动机
介绍它的新功能阅读博文。
Chrome 92:模块 Service Worker 支持
Chrome 现在支持在 Service Worker 中使用 JavaScript 模块。要指定模块,请在 清单:
"background": {
"service_worker": "script.js",
"type": "module"
}
这会将 worker 脚本作为 ES 模块加载,这样您就可以在import
worker 脚本导入其他模块。
Chrome 91:chrome.action.getUserSettings()
新的
chrome.action.getUserSettings()
方法允许扩展程序确定用户是否已将扩展程序固定到主工具栏。
Chrome 90:chrome.scripting.removeCSS()
全新的chrome.scripting.removeCSS()
方法允许扩展程序移除之前通过
chrome.scripting.insertCSS()
。它
取代了 chrome.tabs.removeCSS()
。
Chrome 90:从 scripting.executeScript() 返回 promise
现在需支付 chrome.scripting.executeScript()
支持返回 promise。如果脚本执行的结果值为 promise,则 Chrome
将等待 promise 得到解决并返回其结果值。
Chrome 90:chrome.scripting.executeScript() 结果包含 frameId
从 返回的结果
chrome.scripting.executeScript()
现在包含 frameId。
frameId
属性指示结果来自哪个帧,让扩展程序可以轻松
在多个帧中注入时,将结果与各个帧相关联。
Chrome 89:用于管理标签页分组的新 API
新版 chrome.tabGroups
API 和
chrome.tabs
可让扩展程序读取和操控标签页分组。
需要 Manifest V3。
Chrome 89:为网络可访问资源提供自定义权限
“可通过网页访问的资源”中的定义 Manifest V3 已更改,以便扩展程序根据请求者的来源限制资源访问权限 或扩展程序 ID。
博文:Extension Manifest Converter
Chrome 扩展程序团队已经开放了“Extension Manifest Converter”的源代码,这是一个 Python 工具, 自动执行将扩展程序转换为 Manifest V3 的某些机械操作。请参阅 公告博文并从 GitHub 获取。
Chrome 88:Manifest V3 正式版
Manifest V3 是对扩展程序平台的重要更新;请参阅 Manifest V3 概览,了解新增功能和更改后的功能的摘要。扩展程序 目前可能继续使用 Manifest V2,但将在不久的将来逐步停用。我们强烈 建议您为所有新扩展程序使用 Manifest V3,并开始迁移现有扩展程序 Manifest V3。