1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// This file is loaded into the browser window scope.
/* eslint-env mozilla/browser-window */
// fxr-fullScreen.js is a provisional, stripped-down clone of
// browser\base\content\browser-fullScreenAndPointerLock.js
// that is adapted for Firefox Reality on Desktop.
// The bug to track its removal is
// Bug 1587946 - Rationalize the fork of browser-fullScreenAndPointerLock.js
var FullScreen = {
init() {
// Called when the Firefox window go into fullscreen.
addEventListener("fullscreen", this, true);
if (window.fullScreen) {
this.toggle();
}
},
toggle() {
var enterFS = window.fullScreen;
if (enterFS) {
document.documentElement.setAttribute("inFullscreen", true);
} else {
document.documentElement.removeAttribute("inFullscreen");
}
},
handleEvent(event) {
if (event.type === "fullscreen") {
this.toggle();
}
},
enterDomFullscreen(aBrowser, aActor) {
if (!document.fullscreenElement) {
return;
}
// If it is a remote browser, send a message to ask the content
// to enter fullscreen state. We don't need to do so if it is an
// in-process browser, since all related document should have
// entered fullscreen state at this point.
// This should be done before the active tab check below to ensure
// that the content document handles the pending request. Doing so
// before the check is fine since we also check the activeness of
// the requesting document in content-side handling code.
if (aBrowser.isRemoteBrowser) {
aActor.sendAsyncMessage("DOMFullscreen:Entered", {});
}
document.documentElement.setAttribute("inDOMFullscreen", true);
},
cleanupDomFullscreen(aActor) {
aActor.sendAsyncMessage("DOMFullscreen:CleanUp", {});
document.documentElement.removeAttribute("inDOMFullscreen");
},
};
|