2011-12-19 12 views
1

であれば、Firefoxが再起動した後、私はFirefoxを終了し、アプリケーションをイベントない拡張機能を再度有効にすることができ拡張子が無効

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

は私が私が私のアドオンを再度有効にすることができていますこれにより

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) { 
    } 

      } 

を交換しただけで試してみると、setAddonEnableListener()メソッドです。

関連する問題