译者总结

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. 当有键盘时如何在开始编辑时使UITextField向上移动?
  3. Django model进阶
  4. ActiveReports中如何在后台导出运行时绑定数据源报表
  5. 控制src_【聚焦】仙知机器人基于SRC的激光SLAM自动叉车,满足各类场景需求
  6. [Linux] 权限与指令间的关系
  7. VueRouter源码分析
  8. 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...
  9. 【重难点】【JUC 05】线程池核心设计与实现、线程池使用了什么设计模式、要你设计的话,如何实现一个线程池
  10. 纯css控制-表格表头固定,内容多时滚动内容
  11. agax分页查询必知知识,分页必须参数详解
  12. 计算机图形学完整笔记(五):二维图形变换
  13. 39份AICon全球人工智能与机器学习技术大会 · 北京站2021(PPT汇总)
  14. java lambda排序
  15. 【无人机系统】四轴飞行器及其UAV飞控系统 - 桂林电子科技大学信息科技学院 电子工程系(四 五 )
  16. vs括号对齐和vs设置背景图片
  17. 微信小程序——如何实现账号的注册、登录?
  18. JAVA经典算法40题(供面试所用)
  19. iPhone--什么是解锁
  20. java人工智能之神经网络中的层数怎么确定

热门文章

  1. php实现撩妹,50个撩妹金句,充满套路又不失幽默
  2. java 口袋算法_口袋算法,pocket algorithm,音标,读音,翻译,英文例句,英语词典
  3. 008年杀毒软件排行榜以及排行对比图
  4. c语言数组求欧几里得距离,计算scipy-csr矩阵中的欧氏距离
  5. webug 4.0 第九关 反射型xss
  6. 关于CSDN获取博客内容接口的x-ca-signature签名算法研究
  7. ca加密是什么情况_让我们进行加密:为什么要创建一个免费,自动化和开放的CA?...
  8. 基于PyQt5、metpy和matplotlib的探空资料可视化界面
  9. 电竞英雄联盟数据API接口 - 【比赛列表】API调用示例代码
  10. 不同股票的账面市值比(2012-2020年)