tor-browser

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

dynamic-import-worker.js (1034B)


      1 // This script is meant to be imported by a module worker. It receives a
      2 // message from the worker and responds with the list of imported modules.
      3 const sourcePromise = new Promise(resolve => {
      4  if ('DedicatedWorkerGlobalScope' in self &&
      5      self instanceof DedicatedWorkerGlobalScope) {
      6    self.onmessage = e => {
      7      resolve(e.target);
      8    };
      9  } else if (
     10      'SharedWorkerGlobalScope' in self &&
     11      self instanceof SharedWorkerGlobalScope) {
     12    self.onconnect = e => {
     13      resolve(e.ports[0]);
     14    };
     15  } else if (
     16      'ServiceWorkerGlobalScope' in self &&
     17      self instanceof ServiceWorkerGlobalScope) {
     18    self.onmessage = e => {
     19      resolve(e.source);
     20    };
     21  }
     22 });
     23 
     24 const importedModulesPromise =
     25  import('./export-on-load-script.js')
     26    .then(module => module.importedModules)
     27    .catch(error => `Failed to do dynamic import: ${error}`);
     28 
     29 Promise.all([sourcePromise, importedModulesPromise]).then(results => {
     30  const [source, importedModules] = results;
     31  source.postMessage(importedModules);
     32 });