* Corrections to serviceworker object

This commit is contained in:
Michaël Van Canneyt 2022-05-18 21:16:44 +02:00
parent bf54462d1f
commit f41b417f2a
4 changed files with 33 additions and 9 deletions

View File

@ -162,9 +162,9 @@ end;
function TServiceWorkerApplication.EnableNavigationPreload: jsvalue;
begin
Result:=nil;
if jsvalue(serviceWorker.registration.navigationPreload) then
if jsvalue(self_.registration.navigationPreload) then
// Enable navigation preloads!
await(serviceWorker.registration.navigationPreload.enable());
await(self_.registration.navigationPreload.enable());
end;
procedure TServiceWorkerApplication.DeleteCache(key: string);
@ -189,9 +189,9 @@ end;
procedure TServiceWorkerApplication.DoRun;
begin
ServiceWorker.addEventListener('activate', @Activate);
ServiceWorker.addEventListener('install', @Install);
ServiceWorker.addEventListener('fetch', @Fetch);
self_.addEventListener('activate', @Activate);
self_.addEventListener('install', @Install);
self_.addEventListener('fetch', @Fetch);
end;
procedure TServiceWorkerApplication.Activate(Event: TJSExtendableEvent);

View File

@ -3414,7 +3414,7 @@ var
window : TJSWindow; external name 'window';
console : TJSConsole; external name 'window.console';
caches : TJSCacheStorage; external name 'caches';
serviceWorker : TJSServiceWorker; external name 'self';
serviceWorker : TJSServiceWorker; external name 'window.navigator.serviceWorker';
Function HasServiceWorker : Boolean;

View File

@ -956,7 +956,7 @@ type
{ TWindowOrWorkerGlobalScope }
TWindowOrWorkerGlobalScope = Class external name 'Object' (TJSObject)
TWindowOrWorkerGlobalScope = Class external name 'Object' (TJSEventTarget)
Private
FCrypto: TJSCrypto; external name 'crypto';
FisSecureContext : boolean; external name 'isSecureContext';

View File

@ -70,12 +70,36 @@ Type
Property Self_ : TJSWorkerGlobalScope Read FSelf;
end;
TJSClientsMatchAllOptions = class external name 'Object'
includeUncontrolled : Boolean;
type_ : string; external name 'type';
end;
TJSClients = class external name 'Clients' (TJSObject)
function claim : TJSPromise;
function get(ID : String) : TJSPromise;
function matchAll : TJSPromise;
function matchAll(Options : TJSClientsMatchAllOptions) : TJSPromise;
function matchAll(Options : TJSObject) : TJSPromise;
function openWindow(url : string) : TJSPromise;
end;
{ TJSServiceworkerGlobalScope }
TJSServiceworkerGlobalScope = class external name 'ServiceWorkerGlobalScope' (TJSWorkerGlobalScope)
private
FClients: TJSClients; external name 'clients';
FRegistration: TJSServiceWorkerRegistration; external name 'registration';
Public
property registration : TJSServiceWorkerRegistration Read FRegistration;
property clients : TJSClients Read FClients;
end;
Var
Self_ : TJSWorkerGlobalScope; external name 'self';
Self_ : TJSServiceWorkerGlobalScope; external name 'self';
location : TJSWorkerLocation;
console : TJSConsole;
navigator : TJSWorkerNavigator;
serviceWorker : TJSServiceWorker;
caches : TJSCacheStorage;
function fetch(resource: String; init: TJSObject): TJSPromise; overload; external name 'fetch';