fune/dom/browser-element/BrowserElementChild.js
Emilio Cobos Álvarez 3987c781d0 Bug 1635914 - Move active flag handling explicitly to BrowsingContext. r=nika
And have it mirror in the parent process more automatically.

The docShellIsActive setter in the browser-custom-element side needs to
be there rather than in the usual DidSet() calls because the
AsyncTabSwitcher code relies on getting an exact amount of notifications
as response to that specific setter. Not pretty, but...

BrowserChild no longer sets IsActive() on the docshell itself for OOP
iframes. This fixes bug 1679521. PresShell activeness is used to
throttle rAF as well, which handles OOP iframes nicely as well.

Differential Revision: https://phabricator.services.mozilla.com/D96072
2020-12-11 15:43:19 +00:00

44 lines
1.1 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/. */
/* eslint-env mozilla/frame-script */
/* global api, CopyPasteAssistent */
"use strict";
var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
function debug(msg) {
// dump("BrowserElementChild - " + msg + "\n");
}
var BrowserElementIsReady;
debug(`Might load BE scripts: BEIR: ${BrowserElementIsReady}`);
if (!BrowserElementIsReady) {
debug("Loading BE scripts");
if (!("BrowserElementIsPreloaded" in this)) {
Services.scriptloader.loadSubScript(
"chrome://global/content/BrowserElementChildPreload.js",
this
);
}
function onDestroy() {
removeMessageListener("browser-element-api:destroy", onDestroy);
if (api) {
api.destroy();
}
BrowserElementIsReady = false;
}
addMessageListener("browser-element-api:destroy", onDestroy);
BrowserElementIsReady = true;
} else {
debug("BE already loaded, abort");
}
sendAsyncMessage("browser-element-api:call", { msg_name: "hello" });