早在 7 月份,我们就推出了全新的博客系列,供您随时了解扩展程序的开发动态。得益于您的宝贵反馈,以及我们与 WebExtensions Community Group 中其他浏览器供应商的持续合作,我们将继续改进扩展程序 API,并在各浏览器之间实现更高的一致性。
欢迎观看 10 月版!在本博文中,我们将介绍 Chrome 扩展程序团队在过去几个月内做出的一些更改,以及将于今年晚些时候发布的一些新功能。让我们开始吧!
新的扩展程序 API 和功能
在这一部分,我们会分享一些重要的 API 发布,简要回顾其他 API 改进,并分享即将发布的版本。目前,所有发布的内容都在最新的 Beta 版中提供。如需了解详情,请参阅 Chrome 发布时间表。
亮点
已解决的已知问题
扩展程序团队一直在积极解决 Manifest V3 稳定性问题。Chrome 116 推出了许多改进,这些改进帮助我们缩小了 Manifest V2 和 V3 之间的功能差距。在 Chrome 120 中,我们不仅填补了平台的所有优先问题,还修复了已知问题页面上记录的所有严重 bug。目前,所有功能均在 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 扩展程序的新变化。
- 根据网络扩展程序社区论坛中的反馈,我们将启用的静态规则集的上限从 10 个大幅提高到了 50 个。此外,我们还将允许的静态规则集总数从 50 增加到 100。此功能目前在 Canary 版中提供。
- File Handling API:从 ChromeOS 120 开始将面向 ChromeOS 扩展程序提供。借助该 API,扩展程序能够以类似于网络平台文件处理方式打开具有指定 MIME 类型和文件扩展名的文件。
- 将
userVisibleOnly
设置为false
后,扩展程序将能够通过self.registration.pushManager.subscribe()
使用 Web Push API,而无需显示用户可见的通知。这将使推送通知成为 Service Worker (MV3) 中的 WebSocket 更无缝的替代方案,以实现异步客户端-服务器通信。如需了解详情,请参阅 Chromium 错误和 WECG 讨论。
这些功能在 Chrome Beta 版中推出后,请关注扩展程序的新变化页面,我们会及时发布相关公告。
文档升级
我们也一直在改进和完善我们的文档。请继续针对 chromium-group 和报告文档问题提出问题。
亮点
- 我们改进了示例着陆页。您现在可以按 API、权限和类型进行过滤,从而更轻松地找到特定示例。此次增强功能是我们与 Google 编程之夏实习生戴雪洲 (Xuezhou Dai) 的协作成果。请阅读这篇博文,了解他的经历。
- 在 Chrome 应用商店中使用 Google Analytics(分析)账号介绍了如何查看您的 Chrome 应用商店商品详情中的 Google Analytics(分析)4,从而对开发者信息中心提供的数据进行补充。本指南介绍了一些步骤,可帮助您选择启用 Google Analytics(分析)、监控广告效果、跟踪转化情况,以及授权其他帐号访问 Google Analytics(分析)数据。
- 我们发布了关于 Cookie 和网络存储 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 应用商店 🚗?
正如我们在 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 扩展程序的新视频。它涵盖了许多您可能已经熟悉的主题,同时也分享了一些在扩展程序中使用开发者工具的实用技巧。
- 现在,您需要为每个扩展程序提供隐私权政策。以前,每个开发者帐号只能添加一项隐私权政策,但如果您在一个开发者帐号下拥有多个扩展程序,则会非常糟糕。您可以在开发者信息中心内相应产品的“隐私权”标签页中找到这个新界面。这意味着帐号级隐私权政策将不再受支持。
与粉丝建立联系 🙌?
我们一如既往地通过一对一的交流、推出新计划和参加峰会,与扩展程序开发者社区保持着密切的联系。下面介绍了一些亮点:
- Google 开发者专家计划扩展程序已于 8 月推出。我们有十多个来自世界各地、以 Chrome 扩展程序为中心的新 GDE 也为我们提供了宝贵的反馈。这是一个激动人心的计划!
- 我们参加了网络扩展程序社区小组的 TPAC(W3C 年度会议),与来自 Firefox 和 Safari 的代表以及多位社区成员见面。我们在多个主题方面取得了重大进展,包括转向更一致的扩展 API、制定规范,以及在 Web 平台测试的基础上构建新的测试套件。请阅读 WECG 代码库中的完整分钟数。
- 上周,扩展程序团队参加了在阿姆斯特丹举行的广告过滤开发者峰会。他们在峰会周和周五开放办公时间之前举办了一次咖啡聊天会,与你们中的几位见面。
即使您无法参加上述任何活动,也仍然可以通过以下方法继续参与:在 chromium-extensions Google 网上论坛中提问、关注 WECG 上的浏览器合作伙伴讨论以及报告任何文档问题。
再次感谢您加入扩展程序开发者社区!