forked from mirrors/gecko-dev
Differential Revision: https://phabricator.services.mozilla.com/D4563 --HG-- extra : source : 390737876a61c5da48a1957d284d3c315fbd541a extra : intermediate-source : f0b190c1cfb5d2df482f1051bbc0ff98de71235b
47 lines
1.6 KiB
JavaScript
47 lines
1.6 KiB
JavaScript
const VIDEO_PAGE = "https://example.com/browser/toolkit/content/tests/browser/file_video.html";
|
|
|
|
function setup_test_preference(enableUserGesture) {
|
|
let state = enableUserGesture ? "enable" : "disable";
|
|
info(`- set pref : ${state} user gesture -`);
|
|
return SpecialPowers.pushPrefEnv({"set": [
|
|
["media.autoplay.default", SpecialPowers.Ci.nsIAutoplay.BLOCKED],
|
|
["media.autoplay.enabled.user-gestures-needed", enableUserGesture],
|
|
]});
|
|
}
|
|
|
|
async function allow_play_for_played_video() {
|
|
info("- open new tab -");
|
|
let tab = await BrowserTestUtils.openNewForegroundTab(window.gBrowser,
|
|
"about:blank");
|
|
BrowserTestUtils.loadURI(tab.linkedBrowser, VIDEO_PAGE);
|
|
await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
|
|
|
|
info("- simulate user-click to start video -");
|
|
await BrowserTestUtils.synthesizeMouseAtCenter("#v", {button: 0},
|
|
tab.linkedBrowser);
|
|
|
|
async function play_video_again() {
|
|
let video = content.document.getElementById("v");
|
|
ok(!video.paused, "video is playing");
|
|
|
|
info("- call video play() again -");
|
|
try {
|
|
await video.play();
|
|
ok(true, "success to resolve play promise");
|
|
} catch (e) {
|
|
ok(false, "promise should not be rejected");
|
|
}
|
|
}
|
|
await ContentTask.spawn(tab.linkedBrowser, null, play_video_again);
|
|
|
|
info("- remove tab -");
|
|
BrowserTestUtils.removeTab(tab);
|
|
}
|
|
|
|
add_task(async function start_test() {
|
|
await setup_test_preference(true);
|
|
await allow_play_for_played_video();
|
|
|
|
await setup_test_preference(false);
|
|
await allow_play_for_played_video();
|
|
});
|