52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
"use strict";
|
|
|
|
function setup_test_preference(enableScript) {
|
|
return SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["media.autoplay.default", 1],
|
|
["media.autoplay.blocking_policy", 0],
|
|
["media.autoplay.allow-extension-background-pages", enableScript],
|
|
],
|
|
});
|
|
}
|
|
|
|
async function testAutoplayInBackgroundScript(enableScript) {
|
|
info(`- setup test preference, enableScript=${enableScript} -`);
|
|
await setup_test_preference(enableScript);
|
|
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
background() {
|
|
browser.test.log("- create audio in background page -");
|
|
let audio = new Audio();
|
|
audio.src =
|
|
"https://example.com/browser/browser/components/extensions/test/browser/silence.ogg";
|
|
audio.play().then(
|
|
function () {
|
|
browser.test.log("play succeed!");
|
|
browser.test.sendMessage("play-succeed");
|
|
},
|
|
function () {
|
|
browser.test.log("play promise was rejected!");
|
|
browser.test.sendMessage("play-failed");
|
|
}
|
|
);
|
|
},
|
|
});
|
|
|
|
await extension.startup();
|
|
|
|
if (enableScript) {
|
|
await extension.awaitMessage("play-succeed");
|
|
ok(true, "play promise was resolved!");
|
|
} else {
|
|
await extension.awaitMessage("play-failed");
|
|
ok(true, "play promise was rejected!");
|
|
}
|
|
|
|
await extension.unload();
|
|
}
|
|
|
|
add_task(async function testMain() {
|
|
await testAutoplayInBackgroundScript(true /* enable autoplay */);
|
|
await testAutoplayInBackgroundScript(false /* enable autoplay */);
|
|
});
|