/* * Copyright (c) 2024-2025, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::ServiceWorker { // https://w3c.github.io/ServiceWorker/#serviceworkerglobalscope class ServiceWorkerGlobalScope : public HTML::WorkerGlobalScope { WEB_PLATFORM_OBJECT(ServiceWorkerGlobalScope, HTML::WorkerGlobalScope); GC_DECLARE_ALLOCATOR(ServiceWorkerGlobalScope); public: virtual ~ServiceWorkerGlobalScope() override; void set_oninstall(GC::Ptr); GC::Ptr oninstall(); void set_onactivate(GC::Ptr); GC::Ptr onactivate(); void set_onfetch(GC::Ptr); GC::Ptr onfetch(); void set_onmessage(GC::Ptr); GC::Ptr onmessage(); void set_onmessageerror(GC::Ptr); GC::Ptr onmessageerror(); protected: explicit ServiceWorkerGlobalScope(JS::Realm&, GC::Ref); }; }