forked from mirrors/gecko-dev
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
31 lines
734 B
JavaScript
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;
|
|
}
|
|
}
|