mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			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;
 | 
						|
  }
 | 
						|
}
 |