Mozilla 将开始接受基于 Chrome 宣言第三版的附加组件

21 月 109 日,AMO 目录 (addons.mozilla.org) 将开始使用 Chrome 清单第 17 版接受附加组件并对其进行数字签名。 这些附加组件可以在 Firefox 的夜间版本中进行测试。 在稳定版本中,Firefox 2023 将于 2023 年 XNUMX 月 XNUMX 日启用对清单版本 XNUMX 的支持。 在可预见的将来,将维持对第二版宣言的支持,但到 XNUMX 年底,在评估向第三版宣言转移补充内容的动态后,可能会取消对第二版宣言的支持会被考虑。

Chrome 清单定义了使用 WebExtensions API 编写的扩展程序可用的功能和资源。 从版本 57 开始,Firefox 完全转而使用 WebExtensions API 来开发附加组件,并停止支持 XUL 技术。 向 WebExtensions 的过渡使得 Chrome、Opera、Safari 和 Edge 平台统一插件开发成为可能,简化了不同浏览器之间插件的移植,并可以充分利用 WebExtensions 的多进程模式。操作(WebExtensions 附加组件可以在单独的进程中执行,与浏览器的其余部分隔离)。 为了统一与其他浏览器的附加组件的开发,Firefox 提供了与第二版 Chrome 清单的几乎完全兼容。

Chrome 目前正在努力转向清单版本 2024,对版本 XNUMX 的支持将于 XNUMX 年 XNUMX 月停止。 新版本中所做更改的主要目标是使创建安全且高性能的附加组件变得更加容易,并使创建不安全且缓慢的附加组件变得更加困难。 由于清单的第三个版本受到了攻击,并且将破坏许多内容阻止和安全附加组件,因此 Mozilla 决定不再与 Firefox 中的清单完全兼容,并以不同的方式实施一些更改。

对第三版宣言的主要不满与将 webRequest API 转换为只读模式有关,这使得连接您自己的处理程序成为可能,这些处理程序可以完全访问网络请求并可以动态修改流量。 该 API 用于 uBlock Origin 和许多其他附加组件中,以阻止不当内容并提供安全性。 第三个版本的清单提供了一个功能有限的 declarativeNetRequest API,而不是 webRequest API,该 API 提供对内置过滤引擎的访问,该引擎独立处理阻止规则,不允许使用自己的过滤算法,并且不允许使用内置过滤引擎。允许根据条件设置相互重叠的复杂规则。

在 Firefox 中实施新清单的功能包括:

  • 添加了新的声明式内容过滤 API,但与 Chrome 不同的是,对 webRequest API 的旧阻止模式的支持并未停止。
  • 清单定义了使用 Service Workers 选项替换后台页面,该选项作为后台进程(Background Service Workers)运行。 为了确保未来的兼容性,Firefox 将支持 Service Workers,但目前它们被新的 Event Pages 机制所取代,该机制对于 Web 开发人员来说更为熟悉,不需要对附加组件进行彻底的返工,并且消除了与使用 Service Worker。 事件页面将允许现有的后台页面添加符合清单第三版的要求,同时保持对使用 DOM 所需的所有功能的访问。
  • 新的细化权限请求模型 - 该附加组件将无法一次为所有页面激活(“all_urls”权限已被删除),但只能在活动选项卡的上下文中工作,即用户需要确认该附加组件适用于每个站点。 在 Firefox 中,所有访问站点数据的请求都将被视为可选,并且授予访问权限的最终决定将由用户做出,用户将能够有选择地决定哪个加载项授予对其特定站点上的数据的访问权限。

    为了管理权限,界面中添加了一个新的“统一扩展”按钮,该按钮已经可以在 Firefox 的夜间版本中进行测试。 该按钮提供了一种直接控制每个附加组件可以访问哪些站点的方法 - 用户可以授予和撤销附加组件对任何站点的访问权限。 权限管理仅适用于基于第三版本清单的加载项;对于基于第二版本清单的加载项,不执行对站点的精细访问控制。

    Mozilla 将开始接受基于 Chrome 宣言第三版的附加组件
  • 处理跨源请求的变化 - 根据新的清单,内容处理脚本将受到与嵌入这些脚本的主页相同的权限限制(例如,如果该页面无权访问location API,那么脚本附加组件也不会收到此访问权限)。 此更改已在 Firefox 中完全实现。
  • 基于 Promise 的 API。 Firefox 支持此 API,并且对于清单的第三个版本,会将其移至“chrome.*”命名空间。
  • 禁止执行从外部服务器下载的代码(我们讨论的是加载项加载并执行外部代码的情况)。 Firefox 使用外部代码阻止,Mozilla 开发人员在清单的第三个版本中添加了额外的代码下载跟踪技术。 对于内容处理脚本,提供了单独的内容访问限制策略(CSP,内容安全策略)。

来源: opennet.ru

添加评论