diff --git a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp index 1f8d6b56a1c..7d69059aad7 100644 --- a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp +++ b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp @@ -17,15 +17,24 @@ JS_DEFINE_ALLOCATOR(ServiceWorkerContainer); ServiceWorkerContainer::ServiceWorkerContainer(JS::Realm& realm) : DOM::EventTarget(realm) + , m_service_worker_client(relevant_settings_object(*this)) { } +ServiceWorkerContainer::~ServiceWorkerContainer() = default; + void ServiceWorkerContainer::initialize(JS::Realm& realm) { Base::initialize(realm); WEB_SET_PROTOTYPE_FOR_INTERFACE(ServiceWorkerContainer); } +void ServiceWorkerContainer::visit_edges(Cell::Visitor& visitor) +{ + Base::visit_edges(visitor); + visitor.visit(m_service_worker_client); +} + JS::NonnullGCPtr ServiceWorkerContainer::create(JS::Realm& realm) { return realm.heap().allocate(realm, realm); diff --git a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h index eeb289b4bc8..9576ac013be 100644 --- a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h +++ b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h @@ -22,7 +22,7 @@ class ServiceWorkerContainer : public DOM::EventTarget { public: [[nodiscard]] static JS::NonnullGCPtr create(JS::Realm& realm); - virtual ~ServiceWorkerContainer() override = default; + virtual ~ServiceWorkerContainer() override; #undef __ENUMERATE #define __ENUMERATE(attribute_name, event_name) \ @@ -35,6 +35,9 @@ private: explicit ServiceWorkerContainer(JS::Realm&); virtual void initialize(JS::Realm&) override; + virtual void visit_edges(Cell::Visitor&) override; + + JS::NonnullGCPtr m_service_worker_client; }; }