tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

AllowJavascriptParent.sys.mjs (686B)


      1 let loadPromises = new WeakMap();
      2 
      3 export class AllowJavascriptParent extends JSWindowActorParent {
      4  async receiveMessage(msg) {
      5    switch (msg.name) {
      6      case "LoadFired": {
      7        let bc = this.browsingContext;
      8        let deferred = loadPromises.get(bc);
      9        if (deferred) {
     10          loadPromises.delete(bc);
     11          deferred.resolve(this);
     12        }
     13        break;
     14      }
     15    }
     16  }
     17 
     18  static promiseLoad(bc) {
     19    let deferred = loadPromises.get(bc);
     20    if (!deferred) {
     21      deferred = {};
     22      deferred.promise = new Promise(resolve => {
     23        deferred.resolve = resolve;
     24      });
     25      loadPromises.set(bc, deferred);
     26    }
     27    return deferred.promise;
     28  }
     29 }