mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-14 02:46:22 +02:00
This is mostly the fun boilerplate. Actually creating the Job queue to do the heavy lifting is next. (cherry picked from commit c77d9a2732b9325079bca713e4c97d75a0f6a54d)
31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
#import <DOM/EventTarget.idl>
|
|
#import <DOM/EventHandler.idl>
|
|
#import <HTML/ServiceWorkerRegistration.idl>
|
|
#import <HTML/Worker.idl>
|
|
|
|
// https://w3c.github.io/ServiceWorker/#serviceworkercontainer-interface
|
|
[SecureContext, Exposed=(Window,Worker)]
|
|
interface ServiceWorkerContainer : EventTarget {
|
|
[FIXME] readonly attribute ServiceWorker? controller;
|
|
[FIXME] readonly attribute Promise<ServiceWorkerRegistration> ready;
|
|
|
|
// FIXME: [NewObject] Promise<ServiceWorkerRegistration> register((TrustedScriptURL or USVString) scriptURL, optional RegistrationOptions options = {});
|
|
[NewObject, ImplementedAs=register_] Promise<ServiceWorkerRegistration> register(USVString scriptURL, optional RegistrationOptions options = {});
|
|
|
|
[FIXME, NewObject] Promise<(ServiceWorkerRegistration or undefined)> getRegistration(optional USVString clientURL = "");
|
|
[FIXME, NewObject] Promise<FrozenArray<ServiceWorkerRegistration>> getRegistrations();
|
|
|
|
[FIXME] undefined startMessages();
|
|
|
|
// events
|
|
attribute EventHandler oncontrollerchange;
|
|
attribute EventHandler onmessage; // event.source of message events is ServiceWorker object
|
|
attribute EventHandler onmessageerror;
|
|
};
|
|
|
|
dictionary RegistrationOptions {
|
|
USVString scope;
|
|
WorkerType type = "classic";
|
|
ServiceWorkerUpdateViaCache updateViaCache = "imports";
|
|
};
|