Mypal68/browser/base/content/test/fullscreen/head.js
2025-04-19 19:10:44 +03:00

32 lines
1.0 KiB
JavaScript

const { ContentTaskUtils } = ChromeUtils.import(
"resource://testing-common/ContentTaskUtils.jsm"
);
const { ContentTask } = ChromeUtils.import(
"resource://testing-common/ContentTask.jsm"
);
function waitForFullScreenState(browser, state) {
let eventName = state
? "MozDOMFullscreen:Entered"
: "MozDOMFullscreen:Exited";
return BrowserTestUtils.waitForEvent(browser.ownerGlobal, eventName);
}
/**
* Spawns content task in browser to enter / leave fullscreen
* @param browser - Browser to use for JS fullscreen requests
* @param {Boolean} fullscreenState - true to enter fullscreen, false to leave
* @returns {Promise} - Resolves once fullscreen change is applied
*/
function changeFullscreen(browser, fullScreenState) {
let fullScreenChange = waitForFullScreenState(browser, fullScreenState);
ContentTask.spawn(browser, fullScreenState, state => {
if (state) {
content.document.body.requestFullscreen();
} else {
content.document.exitFullscreen();
}
});
return fullScreenChange;
}