diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/data/test_trash_directory.worker.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/data/test_trash_directory.worker.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/data/test_trash_directory.worker.js b/toolkit/mozapps/extensions/test/xpcshell/data/test_trash_directory.worker.js new file mode 100644 index 0000000000..8963bd21e4 --- /dev/null +++ b/toolkit/mozapps/extensions/test/xpcshell/data/test_trash_directory.worker.js @@ -0,0 +1,42 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/. */ + +/* eslint-env mozilla/chrome-worker */ + +/* import-globals-from /toolkit/components/workerloader/require.js */ +importScripts("resource://gre/modules/workers/require.js"); + +const PromiseWorker = require("resource://gre/modules/workers/PromiseWorker.js"); + +class OpenFileWorker extends PromiseWorker.AbstractWorker { + constructor() { + super(); + + this._file = null; + } + + postMessage(message, ...transfers) { + self.postMessage(message, transfers); + } + + dispatch(method, args) { + return this[method](...args); + } + + open(path) { + this._file = IOUtils.openFileForSyncReading(path); + } + + close() { + if (this._file) { + this._file.close(); + } + } +} + +const worker = new OpenFileWorker(); + +self.addEventListener("message", msg => worker.handleMessage(msg)); +self.addEventListener("unhandledrejection", err => { + throw err.reason; +}); |