Firefox 已开始测试第三版 Chrome 清单

Mozilla 宣布已开始测试 Firefox 对 Chrome 清单第三版的实现,该清单定义了使用 WebExtensions API 编写的附加组件可用的功能和资源。 要在 Firefox 101 beta 中测试清单的第三个版本,您应该在 about:config 页面中将“extensions.manifestV3.enabled”参数设置为 true,将“xpinstall.signatures.required”参数设置为 false。 要安装附加组件,您可以使用 about:debugging 界面。 第三个版本的清单计划在今年年底默认启用。

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

Chrome 目前正在努力转向清单版本 2023,对版本 XNUMX 的支持将于 XNUMX 年 XNUMX 月停止。 由于清单的第三个版本受到了攻击,并且将破坏许多内容阻止和安全附加组件,因此 Mozilla 决定放弃确保与 Firefox 中的清单完全兼容的做法,并以不同的方式实施一些更改。

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

在 Firefox 中提出的第三版清单的实现中,添加了用于内容过滤的新声明式 API,但与 Chrome 不同的是,它们并没有停止支持 webRequest API 的旧阻塞操作模式。 Firefox 中新清单实施的其他功能包括:

  • 清单定义了使用 Service Workers 选项替换后台页面,该选项作为后台进程(Background Service Workers)运行。 为了确保兼容性,Firefox 将实现这一要求,但还将额外提供一种新的事件页面机制,该机制对于 Web 开发人员来说更为熟悉,不需要对附加组件进行完全返工,并消除了与使用 Service Workers 相关的限制。 事件页面将允许现有的后台页面添加符合清单第三版的要求,同时保持对使用 DOM 所需的所有功能的访问。 在 Firefox 中可供测试的清单实现中,目前仅支持事件页面,并且承诺稍后会添加对基于 Service Workers 的解决方案的支持。 Apple 支持该提案并在 Safari 技术预览版 136 中实现了事件页面。
  • 新的细化权限请求模型 - 该附加组件将无法一次为所有页面激活(“all_urls”权限已被删除),但只能在活动选项卡的上下文中工作,即用户需要确认该附加组件适用于每个站点。 在 Firefox 中,所有访问站点数据的请求都将被视为可选,并且授予访问权限的最终决定将由用户做出,用户将能够有选择地决定哪个加载项授予对其特定站点上的数据的访问权限。
  • 处理跨源请求的变化 - 根据新的清单,内容处理脚本将受到与嵌入这些脚本的主页相同的权限限制(例如,如果该页面无权访问location API,那么脚本附加组件也不会收到此访问权限)。 此更改已在 Firefox 中完全实现。
  • 基于 Promise 的 API。 Firefox 已经支持此 API 并将其移动到清单第三版的“chrome.*”命名空间。
  • 禁止执行从外部服务器下载的代码(我们讨论的是加载项加载并执行外部代码的情况)。 Firefox 已经使用了外部代码阻止,并且 Mozilla 开发人员在清单的第三个版本中添加了额外的代码下载跟踪技术。 对于内容处理脚本,提供了单独的内容访问限制策略(CSP,内容安全策略)。

来源: opennet.ru

添加评论