Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决

也是最近几周的事情,Firefox 扩展大批量出现无法使用的情况,给用户的感觉是莫名其妙:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第1张图片
大量扩展突然无法使用

像我这种还停留在 firefox 55 的老用户,也是莫名惊诧!原先使用的  adblock 以及 Adblock u 都无法使用了,广告铺面而来,那空气,糟透了。

据说原因是  firefox 的证书过期了,导致一部分扩展跟着倒霉。

还好,官方的反应还是快:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第2张图片
大量扩展无法使用都因为证书的问题


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第3张图片
官方的解释

同样,也给出了解决办法——升级到 firefox 66.0.4。

或者,不想升级的,使用特殊版本可以设置:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第4张图片
注意是【特殊版本】非通用版

如果愿意升级的话,看到这里就算完了吧。

如果你是通用版,且不愿意升级。那么还有两个临时解决方案。

其一、启用插件调试模式临时使用插件:

以 AdblockU 和 脚本之家为例:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第5张图片
AdblockU 被干掉了的情况

在地址栏键入“about:debugging”


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第6张图片
地址栏进入插件调试模式

启用启动附加组件调试:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第7张图片
启动组件调试

C:\Users\\AppData\Roaming\Mozilla\Firefox\Profiles\.default\extensions

文件夹中找到被禁用的 扩展,这里是 adblockultimate:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第8张图片
找到并载入 adblockultimate 扩展

点击确定,然后就 OK了。


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第9张图片
插件已启用

让我们看下启用后的状态:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第10张图片
启用成功

不过这种方法 仅仅在 浏览器浏览时生效,一旦重启浏览器,就又需要重新启用了。

其二,还有一个时间稍微长点的办法(此方法启动可以直接启用所有证书问题无法使用的扩展),据作者说24小时需要重新做一次,为什么是24 小时,我也不太明白,可能是 firefox 更新的计划任务吗?

按下组合键:

ctrl-shift-J

调用 firefox 控制台:


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第11张图片
打开控制台

根据你的版本选择临时启用的代码:

v56 版本及其下,比如我的是 ff 55:

async function set_addons_as_signed() {

      Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm");

      Components.utils.import("resource://gre/modules/AddonManager.jsm");

      let XPIDatabase = this.XPIInternal.XPIDatabase;


      let addons = await XPIDatabase.getAddonList(a => true);


      for (let addon of addons) {

          // The add-on might have vanished, we'll catch that on the next startup

          if (!addon._sourceBundle.exists())

              continue;


          if( addon.signedState != AddonManager.SIGNEDSTATE_UNKNOWN )

              continue;


          addon.signedState = AddonManager.SIGNEDSTATE_NOT_REQUIRED;

          AddonManagerPrivate.callAddonListeners("onPropertyChanged",

                                                  addon.wrapper,

                                                  ["signedState"]);


          await XPIProvider.updateAddonDisabledState(addon);


      }

      XPIDatabase.saveChanges();

  }


  set_addons_as_signed();


v57 版本及以上:

// Re-enable *all* extensions

    async function set_addons_as_signed() {

        Components.utils.import("resource://gre/modules/addons/XPIDatabase.jsm");

        Components.utils.import("resource://gre/modules/AddonManager.jsm");

        let addons = await XPIDatabase.getAddonList(a => true);

        for (let addon of addons) {

            // The add-on might have vanished, we'll catch that on the next startup

            if (!addon._sourceBundle.exists())

                continue;

            if( addon.signedState != AddonManager.SIGNEDSTATE_UNKNOWN )

                continue;

            addon.signedState = AddonManager.SIGNEDSTATE_NOT_REQUIRED;

            AddonManagerPrivate.callAddonListeners("onPropertyChanged",

                                                    addon.wrapper,

                                                    ["signedState"]);

            await XPIDatabase.updateAddonDisabledState(addon);

        }

        XPIDatabase.saveChanges();

    }

    set_addons_as_signed();

Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第12张图片
粘贴代码


回车后 后运行


Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决_第13张图片
运行结果


插件回来了


需要注意的是后面两种办法都只适合临时启用扩展,如果想一劳永逸,那还是直接升级到 firefox 66.0.4 及以上吧!

你可能感兴趣的:(Firefox 扩展“未通过针对是否适用于Firefox的验证,现已禁用。”问题的解决)