早在 7 月份,我们推出了新的博客系列,旨在让您及时了解扩展程序开发的最新动态。得益于您宝贵的反馈以及我们在 WebExtensions 社区小组中其他浏览器供应商的持续合作,我们将继续增强扩展程序 API,并努力提升各浏览器之间的一致性。
欢迎观看 10 月版!在这篇博文中,我们将介绍 Chrome 扩展程序团队在过去几个月中做出的一些更改,以及将在今年晚些时候推出的一些新功能。立即开始吧!
新的扩展程序 API 和功能
在本部分,我们将分享一些重要的 API 发布,简要回顾了其他 API 改进,并分享即将发布的版本。目前,最新 Beta 版中已提供所有发布的功能。如需了解详情,请参阅 Chromium 发布时间表。
亮点
已解决的已知问题
扩展程序团队一直在积极解决 Manifest V3 稳定性问题。Chrome 116 推出了许多改进,帮助我们在缩小 Manifest V2 和 V3 之间的功能差距方面取得了重大进展。在 Chrome 120 中,我们已经解决了所有优先平台漏洞,并解决了已知问题页面上记录的所有严重错误。目前,所有功能均在 Chrome 120 Canary 版中提供,但对 ChromeOS Lacros 的 fileHandler 支持以及将于本月晚些时候发布的 userScripts API 的支持除外。如需了解详情,请查看更新后的已知问题页面。
提高了 Service Worker 的稳定性
与 Service Worker 相关的稳定性问题已解决。在 Chrome 116 中,我们为显示用户提示的扩展程序 API 添加了强大的 keep-alive,并改进了对 WebSocket 的支持(请参阅在扩展程序中使用 WebSocket 教程)。从 Chrome 118 开始,Service Worker 将在活跃的 Debugger API 会话期间保持活动状态。
如需了解更多详情,请查看我们更新后的 Service Worker 指南。如果您的用户在 Chrome 119 之后的版本中仍然遇到与 Service Worker 相关的稳定性问题,请告知我们。
增强安全性
以前,使用 tabs.update()
、tabs.create
和 windows.create()
转到一些 chrome://
网址会发生错误或导致 Chrome 崩溃。此外,tabs.update()
无法打开 JavaScript 网址。在 Chrome 117 中,我们增加了支持的 chrome://
网址的数量,JavaScript 网址屏蔽功能现在也适用于所有扩展程序 API 方法。
在 Chrome 117 中,如果用户已安装的扩展程序在 Chrome 应用商店中不再提供,用户会在“Chrome 扩展程序”页面上收到主动通知。如果开发者取消发布该扩展程序、该扩展程序因违反政策而遭到移除,或者被认定为包含恶意软件,就可能会发生这种情况。如需深入了解,请参阅为 chrome://extensions 页面启用安全检查功能。
在 Chrome 118 中,除非在扩展程序的详情页面上启用“允许访问文件网址”选项,否则扩展程序将无法使用 chrome.tabs
和 chrome.windows
API 访问 file://
网址。请参阅 WECG 讨论。
更多 API 发布
- Runtime API:从 Chrome 116 开始,您可以使用
runtime.getContexts()
检索与活跃上下文相关的信息。例如,您可以检查是否有有效的屏幕外文档。 - Side Panel API 在 Chrome 116 中,您可以使用
sidepanel.open()
以编程方式打开扩展程序侧边栏,以响应用户手势(例如点击上下文菜单)。 - TabCapture API 添加了以下功能:在 Chrome 116 中从扩展程序 Service Worker 调用
getMediaStreamId()
,并从屏幕外文档的数据流 ID 中获取MediaStream
对象。有关示例,请参阅录音和屏幕截图。 - DeclarativeNetRequest API:在 Chrome 118 中,
isUrlFilterCaseSensitive
属性的默认值已更改为false
。
即将推出...
我们计划在发布 Chrome 120 后解决已知问题页面中遗留的所有问题。此外,我们计划添加以下功能:
- 通过 UserScripts API,用户脚本管理器可以协调将一系列用户脚本注入网页的方式和时机。有关详情,请参阅 WECG 提案。
- 借助 ReadingList API,开发者可以创建、读取、更新和删除位于侧边栏的“阅读列表”面板中的元数据。请观看 Chrome 扩展程序的新变化,了解相关公告。
- 根据 Web Extensions 社区小组中的反馈,我们将已启用的静态规则集的限制从 10 个大幅提高到了 50 个。此外,我们还将允许的静态规则集的总数从 50 增加到了 100。此功能目前在 Canary 版中提供。
- File Handling API:适用于 ChromeOS 120 及更高版本的 ChromeOS 扩展程序。借助该 API,扩展程序可以采用与网络平台文件处理类似的方式打开具有指定 MIME 类型和文件扩展名的文件。
- 通过将
userVisibleOnly
设置为false
,扩展程序将能够通过self.registration.pushManager.subscribe()
使用网页 Push API,而不向用户显示可见通知。这将使推送通知成为 Service Worker (MV3) 中用于异步客户端-服务器通信的 WebSocket 的更无缝替代方案。如需了解详情,请参阅 Chromium 错误和 WECG 讨论。
敬请关注扩展程序的新变化页面,及时了解 Chrome Beta 版中推出这些功能的公告。
文档升级
我们也在不断改进和完善我们的文档。请继续在 chromium-group 中提问并报告文档问题。
亮点
- 我们改进了“示例”着陆页。您现在可以按 API、权限和类型进行过滤,从而更轻松地找到特定示例。这一增强功能是我们我们 Google 编程之夏实习生 Xuezhou Dai 通力协作完成的。请阅读这篇博文,了解他的经历。
- 将 Google Analytics(分析)帐号与 Chrome 应用商店搭配使用介绍了如何查看 Chrome 应用商店商品详情的 Google Analytics(分析)4,以对开发者信息中心提供的数据进行补充。本指南介绍了启用 Google Analytics(分析)、监控广告效果、跟踪转化情况以及授予其他账号访问 Google Analytics(分析)数据的步骤。
- 我们发布了关于 Cookie 和 Web Storage API 在 Chrome 扩展程序中的工作原理的新指南。其中包含您作为扩展程序开发者需要了解的有关 Privacy Sandbox 的所有信息。
- 我们发布了新文章,介绍如何在扩展程序项目中集成测试:对 Chrome 扩展程序进行单元测试和扩展程序端到端测试介绍了一些常用框架的一般指南和最佳做法。如需实际教程,请参阅使用 Puppeteer 测试 Chrome 扩展程序。
更多动态
- 我们重新编写了 Declarative Net Request API 指南,以便更清晰地了解如何实现声明式规则集。
- 我们添加了有关将远程托管代码迁移到 Manifest V3 的更多指南。此外,为了最大限度地降低在发布过程中遇到问题的风险,我们提供了分阶段发布 Manifest V3 扩展程序的策略。
- 了解如何连接到扩展程序的 Service Worker 中的 WebSocket。
- 我们扩展了获取帮助指南的内容,针对如何提交 bug、跟踪现有问题、请求新功能等提供了更详细的说明。
即将推出...
- User Scripts API 参考和教程。
- Firebase 教程和示例。
- ReadingList API 参考文档。
重新设计 Chrome 应用商店 👏?
![Chrome 应用商店首页的屏幕截图。](https://developer.chrome.google.cn/static/blog/extension-news-october-2023/image/screenshot-the-chrome-we-4aa4284c1daed.png?authuser=9&hl=lv)
本月早些时候,正如我们在 Google I/O 大会上所透露的那样,我们宣布推出经过改进的 Chrome 应用商店的早期预览版。欢迎亲自去看看!https://chromewebstore.google.com/。一些值得注意的更改包括:
- 将类别列表从包含 11 个类别的列表增加到了包含 3 个类别组中 17 个的新列表。
- 改进了搜索中的自动补全功能。
- 屏幕截图现在的显示质量显著提高。您可以上传 1280x800 屏幕截图(如果您尚未上传)。
- 对“支持”标签页中的问题的回复现在会以换行符显示。
- 现在,在回复用户评价和支持问题时,您的回复名称旁边会显示一个“开发者”徽章。
- 您可以通过在商店商品网址末尾添加“/reviews”,例如
https://chromewebstore.google.com/detail/_EXTENSION_ID_/reviews
,向用户提供指向评价页面的直接链接。
感谢大家迄今为止在 chromium-google 群组上做出的贡献。欢迎随时参与讨论,或使用提供反馈菜单项将您的反馈直接发送给 CWS 团队:
![在 Chrome 应用商店页面中提供反馈](https://developer.chrome.google.cn/static/blog/extension-news-october-2023/image/give-feedback-the-chrome-b02d47e756274.png?authuser=9&hl=lv)
此外,您也可以提交自我提名表单,让自己的作品入选“编辑精选”合集。此外,开发者信息中心也即将推出各种改进,敬请关注!
💡? 您知道吗?
- 我们有一个关于调试 Chrome 扩展程序的新视频。其中涵盖了您可能已熟悉的许多主题,同时也分享了在扩展程序中使用开发者工具的一些技巧。
- 现在,您必须为每个扩展程序提供隐私权政策。以前,每个开发者账号只能添加一项隐私权政策,但是如果一个开发者账号下有多个扩展程序,就会很尴尬。在开发者信息中心内,您可以在产品的“隐私”标签页中找到这个新界面。这意味着,帐号级隐私权政策已不再受支持。
隐私权政策框的屏幕截图
正在联系 🙌?
我们一如既往地通过 1 对 1 与扩展程序开发者社区联系,推出新计划和参加峰会。以下是几个亮点:
- Google 开发者专家计划扩展程序已于 8 月推出。我们来自全球各地的十多个以 Chrome 扩展程序为中心的新 GDE,都向我们提供了宝贵的反馈。这对该计划来说是一个非常激动人心的时刻!
- 作为 Web Extensions 社区群组的一部分,我们参加了 TPAC(W3C 年度会议),并与 Firefox 和 Safari 代表以及社区的几位成员进行了交流。我们在几个主题上取得了重大进展,包括朝着更一致的扩展程序 API 迈进、制定规范,以及在 Web 平台测试的基础上构建新的测试套件。请阅读 WECG 代码库中的完整分钟数。
- 上周,扩展程序团队参加了在阿姆斯特丹举行的广告过滤开发者峰会。在峰会周前和周五的“咨询交流时间”活动之前,他们通过咖啡会见了几位。
扩展程序团队参加广告过滤开发者峰会
即使您无法参加这些活动,也可以继续参与,方法是在 chromium-extensions Google 网上论坛中提问,关注 WECG 上的浏览器合作伙伴讨论,并报告所有文档问题。
再次感谢您加入扩展程序开发者社区!