gecko-dev/browser/actors/BrowserTabParent.jsm
Neil Deakin c3bcfee4c1 Bug 1580506, fix incorrect pointerlock message names, r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D45577

MANUAL PUSH: re-push with eslint bustage fix

--HG--
extra : rebase_source : 88e90063f4ae11170c7151f21deabe6675971323
extra : amend_source : 5895721851fe48ce4f57f6f33838b5b1885fee3b
extra : source : f779d14e3ab8bb8b31a29601e9391775babbc2da
2019-09-12 12:08:41 +00:00

57 lines
2.0 KiB
JavaScript

/* 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/. */
"use strict";
var EXPORTED_SYMBOLS = ["BrowserTabParent"];
class BrowserTabParent extends JSWindowActorParent {
receiveMessage(message) {
let browser = this.manager.browsingContext.embedderElement;
if (!browser) {
return; // Can happen sometimes if browser is being destroyed
}
let gBrowser = browser.ownerGlobal.gBrowser;
if (!gBrowser) {
// Note: gBrowser might be null because this message might be received
// from the extension process. There's still an embedderElement involved,
// but it's the one coming from dummy.xul.
// This should probably be fixed by adding support to specifying "group: 'browsers"
// in the registerWindowActor options/. See bug 1557118.
return;
}
if (!gBrowser.tabpanels || !gBrowser.tabpanels.contains(browser)) {
// Note: This is ignoring browser elements related to extension pages that are not loaded
// as a browser tab (like sidebars, devtools panels and options pages embedded into
// about:addons, browserAction and pageAction popup panels.
// (Ideally we could call gBrowser.getTabForBrowser, but it returns undefined early in
// the tab browser creation and we would ignore browsers related to newly created tabs).
return;
}
switch (message.name) {
case "Browser:WindowCreated": {
gBrowser.announceWindowCreated(browser, message.data.userContextId);
break;
}
case "Browser:FirstPaint": {
browser.ownerGlobal.gBrowserInit._firstBrowserPaintDeferred.resolve();
break;
}
case "PointerLock:Entered": {
browser.ownerGlobal.PointerLock.entered(message.data.originNoSuffix);
break;
}
case "PointerLock:Exited":
browser.ownerGlobal.PointerLock.exited();
break;
}
}
}