61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
add_setup(async function () {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["extensions.InstallTrigger.enabled", true],
|
|
["extensions.InstallTriggerImpl.enabled", true],
|
|
],
|
|
});
|
|
});
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Test whether an install fails if the url is a local file when requested from
|
|
// web content
|
|
add_task(async function test() {
|
|
var cr = Cc["@mozilla.org/chrome/chrome-registry;1"].getService(
|
|
Ci.nsIChromeRegistry
|
|
);
|
|
|
|
var chromeroot = getChromeRoot(gTestPath);
|
|
var xpipath = chromeroot + "amosigned.xpi";
|
|
try {
|
|
xpipath = cr.convertChromeURL(makeURI(xpipath)).spec;
|
|
} catch (ex) {
|
|
// scenario where we are running from a .jar and already extracted
|
|
}
|
|
|
|
var triggers = encodeURIComponent(
|
|
JSON.stringify({
|
|
"Unsigned XPI": xpipath,
|
|
})
|
|
);
|
|
|
|
// In non-e10s the exception in the content page would trigger a test failure
|
|
if (!gMultiProcessBrowser) {
|
|
expectUncaughtException();
|
|
}
|
|
|
|
let URI = TESTROOT + "installtrigger.html?manualStartInstall" + triggers;
|
|
await BrowserTestUtils.withNewTab(
|
|
{ gBrowser, url: URI },
|
|
async function (browser) {
|
|
await SpecialPowers.spawn(browser, [], async function () {
|
|
let installTriggered = ContentTaskUtils.waitForEvent(
|
|
docShell.chromeEventHandler,
|
|
"InstallTriggered",
|
|
true,
|
|
null,
|
|
true
|
|
);
|
|
content.wrappedJSObject.startInstall();
|
|
await installTriggered;
|
|
let doc = content.document;
|
|
is(
|
|
doc.getElementById("return").textContent,
|
|
"exception",
|
|
"installTrigger should have failed"
|
|
);
|
|
});
|
|
}
|
|
);
|
|
});
|
|
// ----------------------------------------------------------------------------
|