зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1420608. P2 - fix the test timeout. r=alwu
See comment 50 for the cause. Since file_silentAudioTrack.html calls play() to start playback immediately, it is possible that 'mozentervideosuspend' has been fired before check_video_decoding_state() has a chance to register event handlers. We call load() and play() to start playback from the beginning so we won't miss any events. MozReview-Commit-ID: 9sKygfIxEtS --HG-- extra : rebase_source : 32b087b808995f771b6fba901f9922af79169af0 extra : intermediate-source : 3fdd51bfa62909066db4813eee4baf0f3caefbdf extra : source : ad64cd308ce5bb8378d884bf3342c3d8133f144a
This commit is contained in:
Родитель
9d9ec003d1
Коммит
c09933eecf
|
@ -1,11 +1,22 @@
|
|||
const PAGE = "https://example.com/browser/toolkit/content/tests/browser/file_silentAudioTrack.html";
|
||||
|
||||
async function check_video_decoding_state(isSuspended) {
|
||||
async function check_video_decoding_state(args) {
|
||||
let video = content.document.getElementById("autoplay");
|
||||
if (!video) {
|
||||
ok(false, "Can't get the video element!");
|
||||
}
|
||||
|
||||
let isSuspended = args.suspend;
|
||||
let reload = args.reload;
|
||||
|
||||
if (reload) {
|
||||
// It is too late to register event handlers when playback is half
|
||||
// way done. Let's start playback from the beginning so we won't
|
||||
// miss any events.
|
||||
video.load();
|
||||
video.play();
|
||||
}
|
||||
|
||||
let state = isSuspended ? "suspended" : "resumed";
|
||||
let event = isSuspended ? "mozentervideosuspend" : "mozexitvideosuspend";
|
||||
return new Promise(resolve => {
|
||||
|
@ -46,13 +57,16 @@ function check_should_not_send_unselected_tab_hover_msg(browser) {
|
|||
});
|
||||
}
|
||||
|
||||
function get_video_decoding_suspend_promise(browser) {
|
||||
return ContentTask.spawn(browser, true /* suspend */,
|
||||
function get_video_decoding_suspend_promise(browser, reload) {
|
||||
let suspend = true;
|
||||
return ContentTask.spawn(browser, { suspend, reload },
|
||||
check_video_decoding_state);
|
||||
}
|
||||
|
||||
function get_video_decoding_resume_promise(browser) {
|
||||
return ContentTask.spawn(browser, false /* resume */,
|
||||
let suspend = false;
|
||||
let reload = false;
|
||||
return ContentTask.spawn(browser, { suspend, reload },
|
||||
check_video_decoding_state);
|
||||
}
|
||||
|
||||
|
@ -97,7 +111,7 @@ add_task(async function resume_and_suspend_background_video_decoding() {
|
|||
await BrowserTestUtils.browserLoaded(browser);
|
||||
|
||||
info("- should suspend background video decoding -");
|
||||
await get_video_decoding_suspend_promise(browser);
|
||||
await get_video_decoding_suspend_promise(browser, true);
|
||||
await check_should_send_unselected_tab_hover_msg(browser);
|
||||
|
||||
info("- when cursor is hovering over the tab, resuming the video decoding -");
|
||||
|
|
Загрузка…
Ссылка в новой задаче