forked from mirrors/gecko-dev
As the things we do in those tests are not really "block" autoplay, which is not to allow autoplay starts, what we do is actually delaying them until tab goes to foreground or user clicking `play tab` icon on the tab. In order to distinguish them from the real blocking-autoplay, and reflect what we really do in those tests, rename all of them with prefix "browser_delay_autoplay_*". Differential Revision: https://phabricator.services.mozilla.com/D44921 --HG-- rename : toolkit/content/tests/browser/browser_block_autoplay_media.js => toolkit/content/tests/browser/browser_delay_autoplay_media.js rename : toolkit/content/tests/browser/browser_block_autoplay_media_pausedAfterPlay.js => toolkit/content/tests/browser/browser_delay_autoplay_media_pausedAfterPlay.js rename : toolkit/content/tests/browser/browser_block_multipleMedia.js => toolkit/content/tests/browser/browser_delay_autoplay_multipleMedia.js rename : toolkit/content/tests/browser/browser_block_notInTreeAudio.js => toolkit/content/tests/browser/browser_delay_autoplay_notInTreeAudio.js rename : toolkit/content/tests/browser/browser_block_autoplay_playAfterTabVisible.js => toolkit/content/tests/browser/browser_delay_autoplay_playAfterTabVisible.js rename : toolkit/content/tests/browser/browser_block_playMediaInMuteTab.js => toolkit/content/tests/browser/browser_delay_autoplay_playMediaInMuteTab.js rename : toolkit/content/tests/browser/browser_block_plugIn.js => toolkit/content/tests/browser/browser_delay_autoplay_plugIn.js rename : toolkit/content/tests/browser/browser_block_silentAudioTrack_media.js => toolkit/content/tests/browser/browser_delay_autoplay_silentAudioTrack_media.js rename : toolkit/content/tests/browser/browser_block_webAudio.js => toolkit/content/tests/browser/browser_delay_autoplay_webAudio.js extra : moz-landing-system : lando
40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
const PAGE =
|
|
"https://example.com/browser/toolkit/content/tests/browser/file_webAudio.html";
|
|
|
|
// The tab closing code leaves an uncaught rejection. This test has been
|
|
// whitelisted until the issue is fixed.
|
|
if (!gMultiProcessBrowser) {
|
|
ChromeUtils.import("resource://testing-common/PromiseTestUtils.jsm", this);
|
|
PromiseTestUtils.expectUncaughtRejection(/is no longer, usable/);
|
|
}
|
|
|
|
add_task(async function setup_test_preference() {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["media.useAudioChannelService.testing", true],
|
|
["media.block-autoplay-until-in-foreground", true],
|
|
],
|
|
});
|
|
});
|
|
|
|
add_task(async function block_web_audio() {
|
|
info("- open new background tab -");
|
|
let tab = BrowserTestUtils.addTab(window.gBrowser, "about:blank");
|
|
BrowserTestUtils.loadURI(tab.linkedBrowser, PAGE);
|
|
await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
|
|
|
|
info("- tab should be blocked -");
|
|
await waitForTabBlockEvent(tab, true);
|
|
|
|
info("- switch tab -");
|
|
await BrowserTestUtils.switchTab(window.gBrowser, tab);
|
|
|
|
info("- tab should be resumed -");
|
|
await waitForTabBlockEvent(tab, false);
|
|
|
|
info("- tab should be audible -");
|
|
await waitForTabPlayingEvent(tab, true);
|
|
|
|
info("- remove tab -");
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|