拡張機能が無効の場合、Firefoxが再起動した後で拡張機能を再度有効にすることはできません

私はfirefox quit-applicationイベントをlistenする次のコードを持っています

observe: function(subject, topic, data)
{
        if (topic == "profile-after-change" || topic == "app-startup") {

            var os = Components.classes["@mozilla.org/observer-service;1"]
                                         .getService(Components.interfaces.nsIObserverService);
           //add observer for https response tracking
            os.addObserver(this, "http-on-modify-request", false);
            os.addObserver(this, "http-on-examine-response", false);
            os.addObserver(this, "http-on-examine-cached-response", false);
            os.addObserver(this, "quit-application", false);


        }

      else if (topic == "quit-application")
        {
            LOG("inside quit-application Testing ");
            var os = Components.classes["@mozilla.org/observer-service;1"]
                                         .getService(Components.interfaces.nsIObserverService);
            os.removeObserver(this, "quit-application");


            var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
                    .getService(Components.interfaces.nsIXULAppInfo);
            var tempappVersion = appInfo.version;
            var appVersion = tempappVersion.split("."); 

            if(appVersion[0] >= 4)
            {
                setAddonEnableListener();

            }   
        return;


        }
}

function setAddonEnableListener()
{
    try {

    LOG("inside setAddonEnableListener method ");
    Components.utils.import("resource://gre/modules/AddonManager.jsm");
    AddonManager.getAddonByID("[email protected]", function(addon)
    {
    if (addon.userDisabled)
        addon.userDisabled = false;
    });

    } catch (ex) {
    }
}

このコードは、Firefoxの再起動後に無効になったアドオンを再び有効にすることになっていますが、これはまったく動作していません。エラーコンソールがログをクリアしているので、Firefoxを終了した後でコードをデバッグできません。終了アプリケーションが起動されるか、アドオンを有効にするために私の "setAddonEnableListener"に問題があります。

私が間違っていることを何か提案してください。

1

1 答え

私は問題がsetAddonEnableListener()メソッドであることを発見しました。

if (topic == "quit-application")
        {
            LOG("inside quit-application Testing ");
            var os = Components.classes["@mozilla.org/observer-service;1"]
                                         .getService(Components.interfaces.nsIObserverService);
            os.removeObserver(this, "quit-application");


            var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
                    .getService(Components.interfaces.nsIXULAppInfo);
            var tempappVersion = appInfo.version;
            var appVersion = tempappVersion.split("."); 

            if(appVersion[0] >= 4)
            {
                 Components.utils.import("resource://gre/modules/AddonManager.jsm");
    AddonManager.getAddonByID("[email protected]", function(addon)
    {
    if (addon.userDisabled)
        addon.userDisabled = false;
    });

    } catch (ex) {
    }

            }   

これで私はアドオンを再び有効にすることができます。

1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript