123456789101112131415161718192021222324252627282930313233343536373839 |
- import { IpcMainImpl } from '@electron/internal/browser/ipc-main-impl';
- const { ServiceWorkerMain } = process._linkedBinding('electron_browser_service_worker_main');
- Object.defineProperty(ServiceWorkerMain.prototype, 'ipc', {
- get () {
- const ipc = new IpcMainImpl();
- Object.defineProperty(this, 'ipc', { value: ipc });
- return ipc;
- }
- });
- ServiceWorkerMain.prototype.send = function (channel, ...args) {
- if (typeof channel !== 'string') {
- throw new TypeError('Missing required channel argument');
- }
- try {
- return this._send(false /* internal */, channel, args);
- } catch (e) {
- console.error('Error sending from ServiceWorkerMain: ', e);
- }
- };
- ServiceWorkerMain.prototype.startTask = function () {
- // TODO(samuelmaddock): maybe make timeout configurable in the future
- const hasTimeout = false;
- const { id, ok } = this._startExternalRequest(hasTimeout);
- if (!ok) {
- throw new Error('Unable to start service worker task.');
- }
- return {
- end: () => this._finishExternalRequest(id)
- };
- };
- module.exports = ServiceWorkerMain;
|