我处理在Firefox中以chrome模式运行的应用程序(fx.exe -chrome chrome://app/content/main.xul)。在Firefox 4(3.6及更低版本)之前,当有新版本可用时,我使用InstallTrigger.install升级应用程序。
不幸的是,这在Firefox 4中不再有效。还有其他人遇到过这个问题吗?你是怎么绕过它的?
答案 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");