我正在尝试将现有的 firefox 插件代码移植到新的多进程架构中。在我现有的代码中,我可以addon install event
使用以下代码启动一个新选项卡:
function install(data, aReason) {
if (aReason == ADDON_INSTALL) {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var mainWindow = wm.getMostRecentWindow("navigator:browser");
mainWindow.gBrowser.addTab('http://www.mywebsite.org/install-success-page.html');
}
if (aReason == ADDON_UPGRADE) {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var mainWindow = wm.getMostRecentWindow("navigator:browser");
mainWindow.gBrowser.addTab('http://www.mywebsite.org/update-success-page.html');
}
}
在对 bootstrap.js 进行更改以使其multiprocess firefox
兼容(使用其他扩展程序代码的帮助)后,插件会按预期加载和运行,但上述代码无法加载新选项卡,并且控制台中不会显示错误!!!