/* * Copyright (c) 2024, Tim Ledbetter * Copyright (c) 2024, Jamie Mansfield * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::HTML { class ServiceWorkerContainer : public DOM::EventTarget { WEB_PLATFORM_OBJECT(ServiceWorkerContainer, DOM::EventTarget); JS_DECLARE_ALLOCATOR(ServiceWorkerContainer); public: [[nodiscard]] static JS::NonnullGCPtr create(JS::Realm& realm); virtual ~ServiceWorkerContainer() override = default; WebIDL::CallbackType* onmessage(); void set_onmessage(WebIDL::CallbackType*); WebIDL::CallbackType* onmessageerror(); void set_onmessageerror(WebIDL::CallbackType*); private: explicit ServiceWorkerContainer(JS::Realm&); virtual void initialize(JS::Realm&) override; }; }