fune/docshell/test/unit/AllowJavascriptParent.jsm
Kris Maglione ae436f55ec Bug 1646560: Part 2 - Move allowJavascript and friends from DocShell to BrowsingContext and WindowContext. r=jdescottes,nika,geckoview-reviewers,devtools-backward-compat-reviewers,agi
This is slightly complicated by the fact that the editor code wants to be able
to set this from the content process, so we really need separate
BrowsingContext and WindowContext flags, the latter of which can be set by the
owning process.

Differential Revision: https://phabricator.services.mozilla.com/D114899
2021-06-15 04:40:11 +00:00

31 lines
734 B
JavaScript

"use strict";
var EXPORTED_SYMBOLS = ["AllowJavascriptParent"];
let loadPromises = new WeakMap();
class AllowJavascriptParent extends JSWindowActorParent {
async receiveMessage(msg) {
switch (msg.name) {
case "LoadFired":
let bc = this.browsingContext;
let deferred = loadPromises.get(bc);
if (deferred) {
loadPromises.delete(bc);
deferred.resolve(this);
}
break;
}
}
static promiseLoad(bc) {
let deferred = loadPromises.get(bc);
if (!deferred) {
deferred = {};
deferred.promise = new Promise(resolve => {
deferred.resolve = resolve;
});
loadPromises.set(bc, deferred);
}
return deferred.promise;
}
}