tor-browser

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

PersonalityProvider.worker.mjs (1032B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 import { PersonalityProviderWorker } from "resource://newtab/lib/PersonalityProvider/PersonalityProviderWorkerClass.mjs";
      6 
      7 import { PromiseWorker } from "resource://gre/modules/workers/PromiseWorker.mjs";
      8 
      9 const personalityProviderWorker = new PersonalityProviderWorker();
     10 
     11 // This is boiler plate worker stuff that connects it to the main thread PromiseWorker.
     12 const worker = new PromiseWorker.AbstractWorker();
     13 worker.dispatch = function (method, args = []) {
     14  return personalityProviderWorker[method](...args);
     15 };
     16 worker.postMessage = function (message, ...transfers) {
     17  self.postMessage(message, ...transfers);
     18 };
     19 worker.close = function () {
     20  self.close();
     21 };
     22 
     23 self.addEventListener("message", msg => worker.handleMessage(msg));
     24 self.addEventListener("unhandledrejection", function (error) {
     25  throw error.reason;
     26 });