Firefox 擴展“未通過針對是否適用於Firefox的驗證,現已禁用。”問題的解決


也是最近幾周的事情,Firefox 擴展大批量出現無法使用的情況,給用戶的感覺是莫名其妙:

像我這種還停留在 firefox 55 的老用戶,也是莫名驚詫!原先使用的  adblock 以及 Adblock u 都無法使用了,廣告鋪面而來,那空氣,糟透了。

據說原因是  firefox 的證書過期了,導致一部分擴展跟着倒霉。

還好,官方的反應還是快:

同樣,也給出了解決辦法——升級到 firefox 66.0.4。

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

 

如果願意升級的話,看到這里就算完了吧。

如果你是通用版,且不願意升級。那么還有兩個臨時解決方案。

其一、啟用插件調試模式臨時使用插件:

以 AdblockU 和 腳本之家為例:

在地址欄鍵入“about:debugging”

啟用啟動附加組件調試:

C:\Users\<Username>\AppData\Roaming\Mozilla\Firefox\Profiles\<example text>.default\extensions

文件夾中找到被禁用的 擴展,這里是 adblockultimate:

點擊確定,然后就 OK了。

讓我們看下啟用后的狀態:

不過這種方法 僅僅在 瀏覽器瀏覽時生效,一旦重啟瀏覽器,就又需要重新啟用了。

其二,還有一個時間稍微長點的辦法(此方法啟動可以直接啟用所有證書問題無法使用的擴展),據作者說24小時需要重新做一次,為什么是24 小時,我也不太明白,可能是 firefox 更新的計划任務嗎?

按下組合鍵:

ctrl-shift-J

調用 firefox 控制台:

根據你的版本選擇臨時啟用的代碼:

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 66.0.4 及以上吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM