serviceworker.pas 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. {$IFNDEF FPC_DOTTEDUNITS}
  2. unit serviceworker;
  3. {$ENDIF}
  4. {$mode ObjFPC}
  5. {$modeswitch externalclass}
  6. interface
  7. uses
  8. {$IFDEF FPC_DOTTEDUNITS}
  9. JSApi.JS, BrowserApi.WebOrWorker, BrowserApi.WorkerBase;
  10. {$ELSE}
  11. js, weborworker, webworkerbase;
  12. {$Endif}
  13. Type
  14. {$IFDEF FPC_DOTTEDUNITS}
  15. TJSWorkerNavigator = BrowserApi.WorkerBase.TJSWorkerNavigator;
  16. TJSWorkerLocation = BrowserApi.WorkerBase.TJSWorkerLocation;
  17. TJSWorkerGlobalScope = BrowserApi.WorkerBase.TJSWorkerGlobalScope;
  18. {$ELSE}
  19. TJSWorkerNavigator = webworkerbase.TJSWorkerNavigator;
  20. TJSWorkerLocation = webworkerbase.TJSWorkerLocation;
  21. TJSWorkerGlobalScope = webworkerbase.TJSWorkerGlobalScope;
  22. {$ENDIF}
  23. { TJSServiceworkerGlobalScope }
  24. TJSClientsMatchAllOptions = class external name 'Object'
  25. includeUncontrolled : Boolean;
  26. type_ : string; external name 'type';
  27. end;
  28. TJSClients = class external name 'Clients' (TJSObject)
  29. function claim : TJSPromise;
  30. function get(ID : String) : TJSPromise;
  31. function matchAll : TJSPromise;
  32. function matchAll(Options : TJSClientsMatchAllOptions) : TJSPromise;
  33. function matchAll(Options : TJSObject) : TJSPromise;
  34. function openWindow(url : string) : TJSPromise;
  35. end;
  36. TJSServiceworkerGlobalScope = class external name 'ServiceWorkerGlobalScope' (TJSWorkerGlobalScope)
  37. private
  38. FClients: TJSClients; external name 'clients';
  39. FRegistration: TJSServiceWorkerRegistration; external name 'registration';
  40. Public
  41. Function SkipWaiting : TJSPromise; external name 'skipWaiting';
  42. property registration : TJSServiceWorkerRegistration Read FRegistration;
  43. property clients : TJSClients Read FClients;
  44. end;
  45. var
  46. Self_ : TJSServiceworkerGlobalScope; external name 'self';
  47. implementation
  48. end.