Skip to content

Firefox WebExtensions

fang5566 edited this page Aug 30, 2017 · 29 revisions

在 uBO/webext 稳定版发布之前本文会时常更新。

暂定计划表 7 月 19 日 8 月 10 日 8 月 22 日 9 月 19 日 11 月 14 日
Firefox 正式版 Firefox 54 Firefox 55 Firefox 57
AMO 开发通道 混合型
uBO/webext
uBO/webext
AMO 稳定通道 混合型
uBO/webext
uBO/webext
阻碍性问题 1367494
非阻碍性问题 1313401
  • uBO/legacy:兼容 Firefox 24 到 Firefox 56
  • uBO/webext-hybrid:兼容 Firefox 54 到 Firefox 56
    • 用于从 uBO/legacy 迁移数据到 uBO/webext
  • uBO/webext:兼容 Firefox 54 和更高版本

首次安装

uBO/webext-hybrid 版本首次执行时你可能会明显感到延迟[1],这是由于 uBO/webext-hybrid 会从旧版导入所有存储数据到 webext 版。但它只会在 uBO/webext-hybrid 首次执行时发生,此后这个导入步骤将会被跳过。

如果你随后卸载了 uBO/webext-hybrid,那么 Firefox 也会移除扩展的 webext 存储数据,一旦你再次安装 uBO/webext-hybrid 版本,导入也将再次发生。

注意 uBO/webext-hybrid 在 about:addons 里仍会被标记为“旧式”,因为 uBO/webext-hybrid 是一个真正的内嵌式 WebExtension 扩展。一旦首次安装时旧式存储数据被 thin legacy wrapper 导入,uBO/webext-hybrid 运行起来就完全和纯 webext 版本一样,尽管它仍标记为“旧式”。

旧式存储数据会被 uBO/webext-hybrid 原封不动保留,所以如果你短期之内不想使用 webext-hybrid 版,你都还是可以回到 uBO/legacy(旧版稳定版)。

[1] 由于我的 CPU 较主流 CPU 更老旧,所以在默认设置和列表的情况下会有几秒钟延迟。你开启的规则列表越多,延迟也更久。

Firefox for Android

根据文档说明,只有到了 Firefox 55 (beta) 版本你才可以打开 uBO 的弹出面板。

然而似乎还有一个影响 Firefox for Android 55 下 webext 扩展安装的问题出现,浏览器会认为扩展是损坏的 -- 这不是只在 uBO/webext 版本安装时出现。因此现阶段Firefox 的 Android 版本最好还是停留在 uBO/旧版上。 更新: 该问题已修复: https://bugzilla.mozilla.org/show_bug.cgi?id=1367494。

与 uBO/legacy 的区别

  • script:contains 过滤规则会失效
    • uBO 自带的规则列表早就停止依靠这种规则语法解决所报告的过滤问题。
  • 修饰规则不再使用浏览器的用户样式 已在 f32868766340e2fb8ec689f4b5683a413de847b6 中修复
  • uBO/webext 访问后台网络请求的能力受到限制,相比之下 uBO/legacy 可以完全访问所有后台网络请求。例如,你无法看到(和屏蔽)其他扩展建立的网络请求。相关的 bug 说明参见:"Support moz-extension: urls in MatchPattern".

暂定时间表

如上所述,当前版本的 uBO/webext-hybrid 是一个 真正 的内嵌式 WebExtension 扩展。而完全 webext 版本的 uBO,也就是 uBO/webext 目前可在 Releases 版块下载到,或者在 AMO 的开发通道下载到。

uBO/webext 的稳定版必须要在 Firefox 57 正式版发布时提供给所有用户。

然而,在 uBO/webext 发布到 AMO 的稳定通道之前,我必须先发布 uBO/webext-hybrid 版本,它是无缝过渡到 uBO/webext 的必要步骤。

下面是未来几个 Firefox 正式版的发布日期,来自于 RapidRelease/Calendar:

  • Firefox 55:8 月 8 日
  • Firefox 56:9 月 26 日
  • Firefox 57:11 月 14 日

下面是我的扩展发布计划:

  • 8 月 8 日 + 2 周
    • uBO/webext-hybrid 版本发布到 AMO 的稳定通道
    • uBO/webext 发布到 AMO 的开发通道
  • uBO/webext-hybrid 发布 + 4 周 = 9 月 19 日
    • uBO/webext 发布到 AMO 的稳定通道
    • 如果 uBO/webext-hybrid 比预计更快被大多数用户使用的话,发布可能被会提前。

uBO/legacy 版本的未来

对于所有基于 Firefox 53 及以下版本的 Firefox 及其衍生浏览器,开发通道的 uBO 将无法使用,想继续使用 uBO 开发版本的用户都必须手动安装这里提供的 xpi 版本,或安装 AMO 提供的 uBO 稳定版。

就在写作本文时,我还没有计划停止开发 uBO/legacy 版本。但做一番假设,如果继续维护旧版变得不轻松的话,或许未来某个时候计划会有所改变。

我不希望使用旧版本 Firefox 的用户测试并汇报 uBO 的问题,因为我没有时间对所有老版本 Firefox 的用户进行测试。

其他

Issue #2795 集合了当前一系列 bugzilla.mozilla.org 上只影响 uBO/webext 版本的问题。

记得备份你的 uBO 设置,如果从 uBO/legacy 转换到 uBO/webext 失败了,你还可以从备份的文件还原所有设置(参见 控制面板的 设置 版块里的备份/还原功能)。

Clone this wiki locally