tor-browser

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

test_keep_file_open.worker.js (993B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/. */
      3 
      4 /* import-globals-from /toolkit/components/workerloader/require.js */
      5 importScripts("resource://gre/modules/workers/require.js");
      6 
      7 const PromiseWorker = require("resource://gre/modules/workers/PromiseWorker.js");
      8 
      9 /**
     10 * For keeping a file open in a worker while a test runs.
     11 */
     12 class OpenFileWorker extends PromiseWorker.AbstractWorker {
     13  constructor() {
     14    super();
     15 
     16    this._file = null;
     17  }
     18 
     19  postMessage(message, ...transfers) {
     20    self.postMessage(message, transfers);
     21  }
     22 
     23  dispatch(method, args) {
     24    return this[method](...args);
     25  }
     26 
     27  open(path) {
     28    this._file = IOUtils.openFileForSyncReading(path);
     29  }
     30 
     31  close() {
     32    if (this._file) {
     33      this._file.close();
     34    }
     35  }
     36 }
     37 
     38 const worker = new OpenFileWorker();
     39 
     40 self.addEventListener("message", msg => worker.handleMessage(msg));
     41 self.addEventListener("unhandledrejection", err => {
     42  throw err.reason;
     43 });