译者总结

2022-05-18,Mozilla 官方博客发布了关于扩展(WebExtension)MV3 的进展和计划,以及和 Chrome MV3 不同的地方。值得注意的进展:

  • 在 W3C 下成立了一个社区小组来推进跨浏览器 WebExtensions (WECG)
  • background script 可重新启动
  • content scripts 不支持未经允许的跨域请求
  • 兼容 blocking WebRequest 和 declarativeNetRequest
  • Event Pages 方案

博客原文链接:Manifest V3 in Firefox: Recap & Next Steps

如需转载译文,请注明译者:Serendipity96

以下是博客译文:


距离上次讨论 Manifest V3 (Manifest V3 update)已经过去了一年。这期间最重要的变化是在 W3C 下成立了一个社区小组来推进跨浏览器 WebExtensions (WECG)。

在之前的文章中,Firefox 宣布支持 MV3,在 background pages 中使用 Service Workers。(译者注: MV3 前,background 中使用的是 html 和 js )直接使用 Service Workers 会使一部分扩展有问题,所以一直在调整方案。其中在 WECG 中提出的 Event Pages 方案受到了社区的欢迎,并得到了 Safari 浏览器的支持。

我们将启动开发者预览计划来收集 MV3 的反馈。接下来的篇幅会介绍 Firefox MV3 的改进之处,然后谈谈与 Chrome MV3 不同的地方。

为什么使用 MV3?

2015 年我们使用 WebExtensions model 时,就决定要支持跨浏览器。我们坚信,一个扩展能运行在多个浏览器上,对用户来说是最好的服务。到 2017 年底,不仅支持跨浏览器,而且使用了 WebExtensions model。现在许多扩展只需要微小的改动就能用运行在大多数浏览器上,而且到现在为止依然使用的是 WebExtensions model。

2018年,Chrome 发布了 Manifest V3,随后微软采用 Chromium 作为新 Edge 浏览器的内核。这意味着,未来凭借 Chromium 内核浏览器在市场上的占比,对 MV3 的支持将成为浏览器扩展的标准。我们相信,在 WECG 的背景下与其他浏览器供应商合作,是平衡用户和开发者需求、建立健康生态的最佳途径。对 Mozilla 来说,这是一项长期的工作。

为什么 MV3 对改进 WebExtension 很重要?

Manifest V3 是 WebExtensions 的一次技术迭代,这提供了改进 WebExtensions 的机会,支持向后兼容。由于 MV2 架构上的限制,有些问题难以解决,现在可以通过 MV3 来解决这些问题。

扩展架构中一个核心的部分是 background page,从设计上来说它会一直在运行在浏览器上。但由于内存或平台限制(例如在 Android 上),并不能保证一直运行的状态,不可避免 background page 和扩展本身会被终止运行。MV3 采用了新型架构:background script 可重新启动。为了支持这一特性,我们重新设计了现有 API,并引入了新的 API,使扩展能够声明浏览器应该如何运行,而无需 background script 。

扩展的另一个核心是 content scripts,用于与网页交互。我们正阻止不安全的编码行为,并提供更安全的替代方案来提高扩展的安全性。比如:字符串类的 API 已从扩展 API 中删除。此外,为了提升不同 origin 的数据隔离能力,除非目标网站同意跨域(CORS),否则 content scripts 不支持跨域请求。

网站访问的用户控制

扩展程序经常需要访问网站上的用户数据,虽然这能让扩展的功能更强大、满足用户的需求,但这也导致了扩展滥用用户隐私。

从 MV3 开始,我们把来自扩展程序的请求作为可选项,并为用户提供透明可选的控制,让用户更容易地管理扩展程序可以访问的网站数据。

同时,我们鼓励扩展使用非永久访问所有网站的模式,如小范围或暂时授权模式。我们正继续探索如何以最优的方式处理要拦截的网站,保护用户的安全(如隐私和安全扩展)。

Firefox 做了哪些修改?

网络请求(WebRequest)

Chrome MV3 中最有争议的变化之一是禁止使用 blocking WebRequest,Chrome MV3 提供了更灵活的 declarativeNetRequest,这对管理高级隐私和内容屏蔽非常重要。但定义一个范围更小的 API(declarativeNetRequest)替代 blocking WebRequest,会限制一些扩展的能力。

Mozilla MV3 会继续支持 blocking WebRequest。为了最大限度地兼容其他浏览器,也会支持declarativeNetRequest。Mozilla 将继续与内容拦截器、blocking WebRequest API 主要的消费者合作,确定最合适的方案。内容拦截是扩展程序最重要的功能之一,我们致力于确保 Firefox 用户能够使用到最好的隐私工具。

Event Pages

Chrome MV3 引入了 Background Service Worker 作为持久化运行 Background Page 的方案。Mozilla也支持在 Firefox 扩展中使用 Service Workers,这不仅是出于兼容性的考虑,还因为 Service Workers 是一个有生命周期事件驱动的环境,它已经是支持跨浏览器 Web 平台的一部分了。

但我们发现 Service Workers 不支持某些重要的使用场景,特别是 DOM 相关的功能和 API。此外,普通的 Web 开发者并不熟悉 worker 的环境,我们的开发者社区指出,重写扩展对于现有扩展的开发者来说可能有些困难。

Firefox 决定在 MV3 中支持 Event Pages,我们的开发者预览版不包括 Service Workers(我们还在开发,未来的版本将支持 Service Workers)。这将帮助开发者更容易地迁移现有扩展的 background pages 支持 MV3,同时保留 MV2 中所有 DOM 相关的功能。在即将发布的版本中, MV2 会支持 Event Pages,这有利于 MV2 扩展迁移。

Firefox 下一步计划

在启动 Manifest V3 开发者预览计划时,希望广大开发者能来测试 MV3 的实现,帮我们找出 bug 或不兼容之处,预计在 2022 年底前推出 MV3 支持版。随着这项工作接近完成,我们将公布更多关于时间节点和迁移的细节。

有关 Manifest V3 开发者预览版的更多信息,请查看迁移指南。如果您对 Manifest V3 有任何疑问或反馈,我们很乐意在 Firefox Add-ons Discourse 听到您的意见。

【最新】Firefox Manifest V3:进展及下一步计划相关推荐

  1. kali linux升级火狐,Kali安装最新firefox卸载旧的firefox

    Kali安装最新firefox卸载旧的firefox 解压bz2后缀的压缩包(都安装了图形界面吧,解个压应该没问题吧) 先切换root账号su 删除旧的火狐文件夹rm -rf /usr/lib/fir ...

  2. 最新ONE兔V3.0版/婚恋/交友/社交APP三端源码

    正文: 最新ONE兔v3.0版/婚恋/交友/社交APP/原生手机客户端源码,原生手端,非uniapp,搭建难度不低.纯源码,全开源,需编译后方可使用,有喜欢这一类的可以拿去研究了. 本系统包括:网站p ...

  3. CHROME扩展开发之·迁移到 Manifest V3

    迁移到 Manifest V3 让你朝着正确的方向前进. 发表于 2020 年 11 月 9 日,星期一 •更新于2021 年 8 月 13 日,星期五 目录 功能概要 更新 manifest.jso ...

  4. Chrome浏览器扩展插件指南:从MV2迁移到Manifest V3

    Chrome Web Store于2021年1月已经开始接受Manifest V3扩展的提交.如果你还在使用MV2版本,那么一定要在官方弃用之前,尽快更新到MV3版本. Chrome浏览器从88版本开 ...

  5. linux6.5能安装的firefox,CentOS 6.5 更新到最新firefox的方法

    更新firefox 方法 1. 先把原来的firefox卸载掉 yum earse firefox 2. 安装 # 浏览器(Firefox) 下载最新firefox # http://releases ...

  6. Chrome Manifest V3

    背景 需要迁移到Chrome Manifest V3,好像有很多破坏性更新需要一一调整. 一般来说,通知权限只有在https下才能开启,如果想要在http环境下开启,则需要按照这个步骤进行. 步骤 点 ...

  7. 六年级计算机应用计划,最新小学六年级信息技术教师工作计划

    信息技术是一门讲究操作性和实践性的课程,所以要注重培养孩子的动手操作实践能力.下面小编给大家分享三篇关于 最新小学六年级信息技术教师工作计划的范文,希望大家喜欢,欢迎阅读参考. 最新小学六年级信息技术 ...

  8. 甲减、甲状腺相关疾病最新研究、治疗进展(2021年下半年)

    先天性甲状腺激素功能低下症(甲减),是由甲状腺激素分泌不足导致的内分泌紊乱.世界范围内新生儿发病率高达1:1,400-1:2,800.临床上,20%-60%甲减患者表现出贫血或免疫缺陷等症状,但分子机 ...

  9. 学习使用Free RTOS ,移植最新的STM32 v3.5固件库

    最近拿到了一块万利的EK-STM32F的学习板,打算先用它来熟悉下STM32的编程环境,不过在这过程中和一个同事聊的时候觉得如果只调用STM32的库写程序,可能在芯片资源的利用上面可能就会差一点,在这 ...

最新文章

  1. 业余时间用哪里,哪里就有发展的可能
  2. c++中构造函数 、析构函数的作用域详解
  3. python怎么添加列_如何将列添加到DataFrame列?添加新列详细解释————
  4. 如何搭建一个node 工程
  5. ubuntu安装LDAP
  6. HH SaaS电商系统的入库功能模块设计
  7. Exchange Server 2013多域名证书申请
  8. mips语言实现 f(n) = f(n-1) + 2*f(n-2) + 3*f(n-3)
  9. PHP MySQL Functions (PDO_MYSQL)
  10. 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形
  11. VisualSVN Server提交整个工程项目
  12. 老毛子最想固件,支持打印机了
  13. MPEG4标准中的Advanced Simple Profile(ASP)完整的说明-01-02章
  14. ECharts 简明教程,用js输出图表
  15. 110kV终端变电站电气部分设计
  16. 考研专业课——845自动控制原理(一)
  17. 自动玩Chrome小恐龙游戏
  18. OSChina 周三乱弹 ——程序员是将咖啡转变成代码的工具
  19. PCB多层板为什么都是偶数层
  20. position的8种定位方式

热门文章

  1. 沙扬娜拉--靠!今天怎么了,成了诗人?!
  2. docker第二节点无法启动报错xtrabackup_checkpoints missing. xtrabackup/SST failed on DONOR. Check DONOR log解决方案
  3. 基于STM32蓝牙控制的app智能台灯设计
  4. 世界末日来了别怕!五种新技术抱紧你
  5. Sweet Butter 香甜的黄油
  6. 关爱青少年作品,灯塔
  7. 条码软件如何自定义条码二维码的样式
  8. cp 命令 复制文件及目录
  9. 思杰虚拟服务器退出管理主机,详解Citrix思杰XenServer虚拟化(7)
  10. 5本经典著作描绘学习路线图带你飞过C++