Skip to content

Firefox WebExtensions

fang5566 edited this page May 23, 2021 · 29 revisions

uBO/webext 的稳定版早在 2017 年 9 月初就在 AMO 上发布了,兼容 Firefox 52 及更高版本。对于 Firefox 52,uBO/webext 部分功能可能会被禁用。

使用 uBO/webext 的用户请仔细阅读

uBO/webext 在 Firefox 57 及更高版本,并开启多进程功能时表现最佳。

有许多用户报告说使用时遇到部分网站无法正常显示,或图片无法正常加载等问题。我发现其中有许多问题是由于在 uBO/webext 以外还使用了一些旧式扩展。例如,在 GreaseMonkey 里开启了 Reek's AAK 脚本导致 图片无法载入。

如果遇到这类问题,你得禁用所有旧式扩展看看问题是否解决。如果问题解决,你再逐一启用来查找是哪个扩展引起的。

部分旧式扩展会导致浏览器禁用多进程模式,显然多进程被关闭后会产生许多页面载入失败问题。

更新 (2018-06-30):如果你在 Waterfox 遇到上述问题,下个 Waterfox 正式版 (56.2.2-56.3?) 很可能会修复。

所有扩展都在逐步过渡到 WebExtensions,现在正是你开始弃用旧式扩展的好时机,毕竟再过几周 Firefox 57 发布时就将停止支持旧式扩展。不妨看看你的旧式扩展里是否有对应的 beta webext 版本,例如这里就有AMO 上的 beta webext 版本的 Greasemonkey

还有一些特定的 webext 扩展会导致 Firefox 无法正确载入页面:

另一个选择是安装 uBO 1.13.8 并取消它的自动更新功能。

你是否有遇到每次重启浏览器后 uBO 的缓存都被清空的情况?不妨看看这篇帖子 http://forums.mozillazine.org/viewtopic.php?f=9&t=3034189 是否有帮助。

2018 年 6 月 30 日更新:如果你仍遇到每次重启浏览器后规则列表显示为过期的问题,请看一下这里 Mozilla bug 944918 - indexedDB broken - UnknownError - Error opening Database。总的来说是你的 IndexedDB 数据可能在(各方面)损坏了。唯一的解决办法是从数据库文件夹里删除它。还有一个特别的“损坏”情况可能出现在你浏览数据库文件夹时,你的文件管理器把一些隐藏的文件放在该目录下(例如 Dolphin in KDE.directory 文件放在这里),这时删除这些无用的文件就可以解决问题。

Firefox for Android

Firefox for Android 56: 你可以使用 “uBlock Origin” 的菜单项来访问弹出面板,但无法通过 about:addons 访问控制面板。该问题已在 Android 57 得到修复。目前版本的临时解决办法是通过 uBO 的弹出面板来打开控制面板。一旦你打开了控制面板,你可以创建一个书签方便以后直接访问它。

Firefox for Android 55: 根据文档说明,只有 Firefox 55 (beta) 版本才允许你直接打开 uBO 的弹出面板。

与 uBO/legacy 的区别

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

uBO/legacy 版本的未来

对于所有基于 Firefox 52 及以下版本的 Firefox 及其衍生浏览器,来自 https://addons.mozilla.org/ 的 uBO 将无法使用,想继续使用 uBO 开发版本的用户都必须从仓库手动安装这个 xpi 版本

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

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

如果你还是想使用 uBO/legacy 版本,这里有一个志愿者创建了一个扩展,允许 uBO/webext 实现自动更新:https://github.com/JustOff/ublock0-updater

其他

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

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


[1]:2018 月 6 月 30 日的更新和针对“数据库损坏”的解决办法要感谢 grahamperrin 提供的消息

Clone this wiki locally