| // ----------------------------------------------------------------------------- |
| // DOM |
| // ----------------------------------------------------------------------------- |
| [Constructor(), Exposed=(Window,Worker)] |
| interface EventTarget { |
| void addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options); |
| void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options); |
| boolean dispatchEvent(Event event); |
| }; |
| |
| callback interface EventListener { |
| void handleEvent(Event event); |
| }; |
| |
| dictionary EventListenerOptions { |
| boolean capture = false; |
| }; |
| |
| dictionary AddEventListenerOptions : EventListenerOptions { |
| boolean passive = false; |
| boolean once = false; |
| }; |
| |
| // ----------------------------------------------------------------------------- |
| // HTML |
| // ----------------------------------------------------------------------------- |
| [TreatNonCallableAsNull] |
| callback EventHandlerNonNull = any (Event event); |
| typedef EventHandlerNonNull? EventHandler; |
| |
| [TreatNonCallableAsNull] |
| callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long column, optional any error); |
| typedef OnErrorEventHandlerNonNull? OnErrorEventHandler; |
| |
| [Exposed=Worker] |
| interface WorkerGlobalScope : EventTarget { |
| readonly attribute WorkerGlobalScope self; |
| readonly attribute WorkerLocation location; |
| readonly attribute WorkerNavigator navigator; |
| void importScripts(USVString... urls); |
| |
| attribute OnErrorEventHandler onerror; |
| attribute EventHandler onlanguagechange; |
| attribute EventHandler onoffline; |
| attribute EventHandler ononline; |
| attribute EventHandler onrejectionhandled; |
| attribute EventHandler onunhandledrejection; |
| }; |
| |
| [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker] |
| interface DedicatedWorkerGlobalScope : WorkerGlobalScope { |
| [Replaceable] readonly attribute DOMString name; |
| |
| void postMessage(any message, optional sequence<object> transfer = []); |
| |
| void close(); |
| |
| attribute EventHandler onmessage; |
| attribute EventHandler onmessageerror; |
| }; |
| |
| typedef (DOMString or Function) TimerHandler; |
| |
| [NoInterfaceObject, Exposed=(Window,Worker)] |
| interface WindowOrWorkerGlobalScope { |
| [Replaceable] readonly attribute USVString origin; |
| |
| // base64 utility methods |
| DOMString btoa(DOMString data); |
| DOMString atob(DOMString data); |
| |
| // timers |
| long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments); |
| void clearTimeout(optional long handle = 0); |
| long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments); |
| void clearInterval(optional long handle = 0); |
| |
| // ImageBitmap |
| Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options); |
| Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options); |
| }; |
| WorkerGlobalScope implements WindowOrWorkerGlobalScope; |
| |
| [Exposed=Worker] |
| interface WorkerNavigator {}; |
| WorkerNavigator implements NavigatorID; |
| WorkerNavigator implements NavigatorLanguage; |
| WorkerNavigator implements NavigatorOnLine; |
| WorkerNavigator implements NavigatorConcurrentHardware; |
| |
| [NoInterfaceObject, Exposed=(Window,Worker)] |
| interface NavigatorID { |
| readonly attribute DOMString appCodeName; // constant "Mozilla" |
| readonly attribute DOMString appName; // constant "Netscape" |
| readonly attribute DOMString appVersion; |
| readonly attribute DOMString platform; |
| readonly attribute DOMString product; // constant "Gecko" |
| [Exposed=Window] readonly attribute DOMString productSub; |
| readonly attribute DOMString userAgent; |
| [Exposed=Window] readonly attribute DOMString vendor; |
| [Exposed=Window] readonly attribute DOMString vendorSub; // constant "" |
| |
| // also has additional members in a partial interface |
| }; |
| |
| [NoInterfaceObject, Exposed=(Window,Worker)] |
| interface NavigatorLanguage { |
| readonly attribute DOMString language; |
| readonly attribute FrozenArray<DOMString> languages; |
| }; |
| |
| [NoInterfaceObject, Exposed=(Window,Worker)] |
| interface NavigatorOnLine { |
| readonly attribute boolean onLine; |
| }; |
| |
| [NoInterfaceObject, Exposed=(Window,Worker)] |
| interface NavigatorConcurrentHardware { |
| readonly attribute unsigned long long hardwareConcurrency; |
| }; |
| |
| [Exposed=Worker] |
| interface WorkerLocation { |
| stringifier readonly attribute USVString href; |
| readonly attribute USVString origin; |
| readonly attribute USVString protocol; |
| readonly attribute USVString host; |
| readonly attribute USVString hostname; |
| readonly attribute USVString port; |
| readonly attribute USVString pathname; |
| readonly attribute USVString search; |
| readonly attribute USVString hash; |
| }; |