File's structured serialization should serialize lastModified attribute
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / interfaces / dedicated-workers.idl
1 // -----------------------------------------------------------------------------
2 // DOM
3 // -----------------------------------------------------------------------------
4 [Constructor(), Exposed=(Window,Worker)]
5 interface EventTarget {
6   void addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options);
7   void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options);
8   boolean dispatchEvent(Event event);
9 };
10
11 callback interface EventListener {
12   void handleEvent(Event event);
13 };
14
15 dictionary EventListenerOptions {
16   boolean capture = false;
17 };
18
19 dictionary AddEventListenerOptions : EventListenerOptions {
20   boolean passive = false;
21   boolean once = false;
22 };
23
24 // -----------------------------------------------------------------------------
25 // HTML
26 // -----------------------------------------------------------------------------
27 [TreatNonCallableAsNull]
28 callback EventHandlerNonNull = any (Event event);
29 typedef EventHandlerNonNull? EventHandler;
30
31 [TreatNonCallableAsNull]
32 callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long column, optional any error);
33 typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
34
35 [Exposed=Worker]
36 interface WorkerGlobalScope : EventTarget {
37   readonly attribute WorkerGlobalScope self;
38   readonly attribute WorkerLocation location;
39   readonly attribute WorkerNavigator navigator;
40   void importScripts(USVString... urls);
41
42   attribute OnErrorEventHandler onerror;
43   attribute EventHandler onlanguagechange;
44   attribute EventHandler onoffline;
45   attribute EventHandler ononline;
46   attribute EventHandler onrejectionhandled;
47   attribute EventHandler onunhandledrejection;
48 };
49
50 [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
51 interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
52   [Replaceable] readonly attribute DOMString name;
53
54   void postMessage(any message, optional sequence<object> transfer = []);
55
56   void close();
57
58   attribute EventHandler onmessage;
59   attribute EventHandler onmessageerror;
60 };
61
62 typedef (DOMString or Function) TimerHandler;
63
64 [NoInterfaceObject, Exposed=(Window,Worker)]
65 interface WindowOrWorkerGlobalScope {
66   [Replaceable] readonly attribute USVString origin;
67
68   // base64 utility methods
69   DOMString btoa(DOMString data);
70   DOMString atob(DOMString data);
71
72   // timers
73   long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
74   void clearTimeout(optional long handle = 0);
75   long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments);
76   void clearInterval(optional long handle = 0);
77
78   // ImageBitmap
79   Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options);
80   Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
81 };
82 WorkerGlobalScope implements WindowOrWorkerGlobalScope;
83
84 [Exposed=Worker]
85 interface WorkerNavigator {};
86 WorkerNavigator implements NavigatorID;
87 WorkerNavigator implements NavigatorLanguage;
88 WorkerNavigator implements NavigatorOnLine;
89 WorkerNavigator implements NavigatorConcurrentHardware;
90
91 [NoInterfaceObject, Exposed=(Window,Worker)]
92 interface NavigatorID {
93   readonly attribute DOMString appCodeName; // constant "Mozilla"
94   readonly attribute DOMString appName; // constant "Netscape"
95   readonly attribute DOMString appVersion;
96   readonly attribute DOMString platform;
97   readonly attribute DOMString product; // constant "Gecko"
98   [Exposed=Window] readonly attribute DOMString productSub;
99   readonly attribute DOMString userAgent;
100   [Exposed=Window] readonly attribute DOMString vendor;
101   [Exposed=Window] readonly attribute DOMString vendorSub; // constant ""
102
103   // also has additional members in a partial interface
104 };
105
106 [NoInterfaceObject, Exposed=(Window,Worker)]
107 interface NavigatorLanguage {
108   readonly attribute DOMString language;
109   readonly attribute FrozenArray<DOMString> languages;
110 };
111
112 [NoInterfaceObject, Exposed=(Window,Worker)]
113 interface NavigatorOnLine {
114   readonly attribute boolean onLine;
115 };
116
117 [NoInterfaceObject, Exposed=(Window,Worker)]
118 interface NavigatorConcurrentHardware {
119   readonly attribute unsigned long long hardwareConcurrency;
120 };
121
122 [Exposed=Worker]
123 interface WorkerLocation {
124   stringifier readonly attribute USVString href;
125   readonly attribute USVString origin;
126   readonly attribute USVString protocol;
127   readonly attribute USVString host;
128   readonly attribute USVString hostname;
129   readonly attribute USVString port;
130   readonly attribute USVString pathname;
131   readonly attribute USVString search;
132   readonly attribute USVString hash;
133 };