28 lines
676 B
JavaScript
28 lines
676 B
JavaScript
let loadPromises = new WeakMap();
|
|
|
|
export 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;
|
|
}
|
|
}
|