mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
var {AddonManager} = Cu.import("resource://gre/modules/AddonManager.jsm", {});
|
|
var {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
|
|
|
|
const ADDON_URL = "http://example.com/browser/toolkit/components/addoncompat/tests/browser/addon.xpi";
|
|
const COMPAT_ADDON_URL = "http://example.com/browser/toolkit/components/addoncompat/tests/browser/compat-addon.xpi";
|
|
|
|
// Install a test add-on that will exercise e10s shims.
|
|
// url: Location of the add-on.
|
|
function addAddon(url)
|
|
{
|
|
info("Installing add-on: " + url);
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
AddonManager.getInstallForURL(url, installer => {
|
|
installer.install();
|
|
let listener = {
|
|
onInstallEnded: function(addon, addonInstall) {
|
|
installer.removeListener(listener);
|
|
|
|
// Wait for add-on's startup scripts to execute. See bug 997408
|
|
executeSoon(function() {
|
|
resolve(addonInstall);
|
|
});
|
|
}
|
|
};
|
|
installer.addListener(listener);
|
|
}, "application/x-xpinstall");
|
|
});
|
|
}
|
|
|
|
// Uninstall a test add-on.
|
|
// addon: The addon reference returned from addAddon.
|
|
function removeAddon(addon)
|
|
{
|
|
info("Removing addon.");
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
let listener = {
|
|
onUninstalled: function(uninstalledAddon) {
|
|
if (uninstalledAddon != addon) {
|
|
return;
|
|
}
|
|
AddonManager.removeAddonListener(listener);
|
|
resolve();
|
|
}
|
|
};
|
|
AddonManager.addAddonListener(listener);
|
|
addon.uninstall();
|
|
});
|
|
}
|
|
|
|
add_task(function* test_addon_shims() {
|
|
yield new Promise(resolve => {
|
|
SpecialPowers.pushPrefEnv({set: [["dom.ipc.shims.enabledWarnings", true]]},
|
|
resolve);
|
|
});
|
|
|
|
let addon = yield addAddon(ADDON_URL);
|
|
yield window.runAddonShimTests({ok: ok, is: is, info: info});
|
|
yield removeAddon(addon);
|
|
|
|
if (Services.appinfo.browserTabsRemoteAutostart) {
|
|
addon = yield addAddon(COMPAT_ADDON_URL);
|
|
yield window.runAddonTests({ok: ok, is: is, info: info});
|
|
yield removeAddon(addon);
|
|
}
|
|
});
|