1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 * The origin of this IDL file is
7 * https://html.spec.whatwg.org/multipage/workers.html
9 * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and Opera
11 * You are granted a license to use, reproduce and create derivative works of
15 [Exposed=(Window,DedicatedWorker,SharedWorker)]
16 interface Worker : EventTarget {
18 constructor(USVString scriptURL, optional WorkerOptions options = {});
20 undefined terminate();
23 undefined postMessage(any message, sequence<object> transfer);
25 undefined postMessage(any message, optional StructuredSerializeOptions aOptions = {});
27 attribute EventHandler onmessage;
28 attribute EventHandler onmessageerror;
31 Worker includes AbstractWorker;
33 dictionary WorkerOptions {
34 [Pref="dom.workers.modules.enabled"]
35 WorkerType type = "classic";
36 [Pref="dom.workers.modules.enabled"]
37 RequestCredentials credentials = "same-origin"; // credentials is only used if type is "module"
41 enum WorkerType { "classic", "module" };
43 [Func="mozilla::dom::ChromeWorker::WorkerAvailable",
44 Exposed=(Window,DedicatedWorker,SharedWorker)]
45 interface ChromeWorker : Worker {
47 constructor(USVString scriptURL, optional WorkerOptions options = {});