Index: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-idls.js |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-idls.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-idls.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9d0b4f18efeb74aef75073cb4b8d91cc139e3a57 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/interfaces-idls.js |
@@ -0,0 +1,130 @@ |
+var idls = {}; |
+idls.untested = ` |
+[Exposed=Worker] |
+interface WorkerGlobalScope {}; |
+ |
+[TreatNonObjectAsNull] |
+callback EventHandlerNonNull = any (Event event); |
+typedef EventHandlerNonNull? EventHandler; |
+ |
+[NoInterfaceObject, Exposed=(Window,Worker)] |
+interface AbstractWorker { |
+ attribute EventHandler onerror; |
+}; |
+`; |
+idls.tested = ` |
+[Global=(Worker,ServiceWorker), Exposed=ServiceWorker] |
+interface ServiceWorkerGlobalScope : WorkerGlobalScope { |
+ [SameObject] readonly attribute Clients clients; |
+ [SameObject] readonly attribute ServiceWorkerRegistration registration; |
+ |
+ [NewObject] Promise<void> skipWaiting(); |
+ |
+ attribute EventHandler oninstall; |
+ attribute EventHandler onactivate; |
+ attribute EventHandler onfetch; |
+ attribute EventHandler onforeignfetch; |
+ |
+ // event |
+ attribute EventHandler onmessage; // event.source of the message events is Client object |
+ attribute EventHandler onmessageerror; |
+}; |
+ |
+[Exposed=ServiceWorker] |
+interface Client { |
+ readonly attribute USVString url; |
+ readonly attribute DOMString id; |
+ readonly attribute ClientType type; |
+ readonly attribute boolean reserved; |
+ void postMessage(any message, optional sequence<object> transfer = []); |
+}; |
+ |
+[Exposed=ServiceWorker] |
+interface WindowClient : Client { |
+ readonly attribute VisibilityState visibilityState; |
+ readonly attribute boolean focused; |
+ [SameObject] readonly attribute FrozenArray<USVString> ancestorOrigins; |
+ [NewObject] Promise<WindowClient> focus(); |
+ [NewObject] Promise<WindowClient> navigate(USVString url); |
+}; |
+ |
+[Exposed=ServiceWorker] |
+interface Clients { |
+ // The objects returned will be new instances every time |
+ [NewObject] Promise<any> get(DOMString id); |
+ [NewObject] Promise<sequence<Client>> matchAll(optional ClientQueryOptions options); |
+ [NewObject] Promise<WindowClient?> openWindow(USVString url); |
+ [NewObject] Promise<void> claim(); |
+}; |
+ |
+[SecureContext, Exposed=(Window,Worker)] |
+interface ServiceWorker : EventTarget { |
+ readonly attribute USVString scriptURL; |
+ readonly attribute ServiceWorkerState state; |
+ void postMessage(any message, optional sequence<object> transfer = []); |
+ |
+ // event |
+ attribute EventHandler onstatechange; |
+}; |
+ServiceWorker implements AbstractWorker; |
+ |
+enum ServiceWorkerState { |
+ "installing", |
+ "installed", |
+ "activating", |
+ "activated", |
+ "redundant" |
+}; |
+ |
+[SecureContext, Exposed=(Window,Worker)] |
+interface ServiceWorkerRegistration : EventTarget { |
+ readonly attribute ServiceWorker? installing; |
+ readonly attribute ServiceWorker? waiting; |
+ readonly attribute ServiceWorker? active; |
+ [SameObject] readonly attribute NavigationPreloadManager navigationPreload; |
+ |
+ readonly attribute USVString scope; |
+ readonly attribute ServiceWorkerUpdateViaCache updateViaCache; |
+ |
+ [NewObject] Promise<void> update(); |
+ [NewObject] Promise<boolean> unregister(); |
+ |
+ // event |
+ attribute EventHandler onupdatefound; |
+}; |
+ |
+[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); |
+}; |
+ |
+[SecureContext, Exposed=(Window,Worker)] |
+interface NavigationPreloadManager { |
+ Promise<void> enable(); |
+ Promise<void> disable(); |
+ Promise<void> setHeaderValue(ByteString value); |
+ Promise<NavigationPreloadState> getState(); |
+}; |
+ |
+[SecureContext, Exposed=(Window,Worker)] |
+interface Cache { |
+ [NewObject] Promise<any> match(RequestInfo request, optional CacheQueryOptions options); |
+ [NewObject] Promise<sequence<Response>> matchAll(optional RequestInfo request, optional CacheQueryOptions options); |
+ [NewObject] Promise<void> add(RequestInfo request); |
+ [NewObject] Promise<void> addAll(sequence<RequestInfo> requests); |
+ [NewObject] Promise<void> put(RequestInfo request, Response response); |
+ [NewObject] Promise<boolean> delete(RequestInfo request, optional CacheQueryOptions options); |
+ [NewObject] Promise<sequence<Request>> keys(optional RequestInfo request, optional CacheQueryOptions options); |
+}; |
+ |
+[SecureContext, Exposed=(Window,Worker)] |
+interface CacheStorage { |
+ [NewObject] Promise<any> match(RequestInfo request, optional CacheQueryOptions options); |
+ [NewObject] Promise<boolean> has(DOMString cacheName); |
+ [NewObject] Promise<Cache> open(DOMString cacheName); |
+ [NewObject] Promise<boolean> delete(DOMString cacheName); |
+ [NewObject] Promise<sequence<DOMString>> keys(); |
+}; |
+`; |