forked from mirrors/gecko-dev
Windows start blocking media by default (see the media.block-autoplay-until-in-foreground pref). If the document becomes visible from GetScriptHandlingObject(), we hand-rolled our own UpdateVisibilityState and didn't call MaybeActiveMediaComponents (which unblocks media playback). It couldn't call it there before since given content docshells used start as active, but now that they don't we can do that and fix the bug. Differential Revision: https://phabricator.services.mozilla.com/D41438
29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
add_task(async function test_bug_1572798() {
|
|
let tab = BrowserTestUtils.addTab(window.gBrowser, "about:blank");
|
|
BrowserTestUtils.loadURI(
|
|
tab.linkedBrowser,
|
|
"https://example.com/browser/toolkit/content/tests/browser/file_document_open_audio.html"
|
|
);
|
|
await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
|
|
let windowLoaded = BrowserTestUtils.waitForNewWindow();
|
|
info("- clicking button to spawn a new window -");
|
|
await ContentTask.spawn(tab.linkedBrowser, null, function() {
|
|
content.document.querySelector("button").click();
|
|
});
|
|
info("- waiting for the new window -");
|
|
let newWin = await windowLoaded;
|
|
info("- checking that the new window plays the audio -");
|
|
let documentOpenedBrowser = newWin.gBrowser.selectedBrowser;
|
|
await ContentTask.spawn(documentOpenedBrowser, null, async function() {
|
|
try {
|
|
await content.document.querySelector("audio").play();
|
|
ok(true, "Could play the audio");
|
|
} catch (e) {
|
|
ok(false, "Rejected audio promise" + e);
|
|
}
|
|
});
|
|
|
|
info("- Cleaning up -");
|
|
await BrowserTestUtils.closeWindow(newWin);
|
|
await BrowserTestUtils.removeTab(tab);
|
|
});
|