使用-chrome时,InstallTrigger.install在Firefox 4中不起作用。有什么工作吗?

时间:2011-07-22 14:59:24

标签: firefox-addon xul

我处理在Firefox中以chrome模式运行的应用程序(fx.exe -chrome chrome://app/content/main.xul)。在Firefox 4(3.6及更低版本)之前,当有新版本可用时,我使用InstallTrigger.install升级应用程序。

不幸的是,这在Firefox 4中不再有效。还有其他人遇到过这个问题吗?你是怎么绕过它的?

1 个答案:

答案 0 :(得分:1)

要解决此问题,我们使用AddOnManager API代替InstallTrigger。

有关详细信息,请参阅XUL Dev Add-On Manager

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

AddonManager.getInstallForURL(xpi_address, function(addon) {
    addon.addListener({
        onDownloadStarted: function() {
            alert('Download Started');
        }
      });
      addon.addListener({
        onDownloadProgress: function() {
            var complete_percent = parseInt((100 * (addon.progress/addon.maxProgress)),10);
        }
      });
      addon.addListener({
        onDownloadFailed: function() {
            alert('Upgrade Failed');
        }
      });
      addon.addListener({
        onDownloadEnded: function() {
            alert('Download Successful');
        }
      });
      addon.addListener({
        onInstallStarted: function() {
            alert('Install Started');
        }
      });
      addon.addListener({
        onInstallEnded: function() {
            alert('Install Successful');
        }
      });
      addon.addListener({
        onInstallFailed: function() {
            alert('Install Failed');
        }
      });
      addon.install();
    }, "application/x-xpinstall");