From d277ac72e671df977c9fef47febbfc41fee9f069 Mon Sep 17 00:00:00 2001 From: Shannon Booth Date: Mon, 4 Dec 2023 21:59:00 +1300 Subject: [PATCH] LibWeb: Make SharedImageRequest store Page member as NonnullGCPtr This allows us to remove one raw Web::Page& member. Or rather, it becomes a JS::NonnullGCPtr that we trace like anything else. :^) Co-Authored-By: Andreas Kling --- Userland/Libraries/LibWeb/HTML/SharedImageRequest.cpp | 6 ++++-- Userland/Libraries/LibWeb/HTML/SharedImageRequest.h | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/SharedImageRequest.cpp b/Userland/Libraries/LibWeb/HTML/SharedImageRequest.cpp index 556f1b843b..2df3a29d98 100644 --- a/Userland/Libraries/LibWeb/HTML/SharedImageRequest.cpp +++ b/Userland/Libraries/LibWeb/HTML/SharedImageRequest.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -20,7 +21,7 @@ namespace Web::HTML { JS_DEFINE_ALLOCATOR(SharedImageRequest); -JS::NonnullGCPtr SharedImageRequest::get_or_create(JS::Realm& realm, Page& page, AK::URL const& url) +JS::NonnullGCPtr SharedImageRequest::get_or_create(JS::Realm& realm, JS::NonnullGCPtr page, AK::URL const& url) { auto document = Bindings::host_defined_environment_settings_object(realm).responsible_document(); VERIFY(document); @@ -32,7 +33,7 @@ JS::NonnullGCPtr SharedImageRequest::get_or_create(JS::Realm return request; } -SharedImageRequest::SharedImageRequest(Page& page, AK::URL url, JS::NonnullGCPtr document) +SharedImageRequest::SharedImageRequest(JS::NonnullGCPtr page, AK::URL url, JS::NonnullGCPtr document) : m_page(page) , m_url(move(url)) , m_document(document) @@ -50,6 +51,7 @@ void SharedImageRequest::visit_edges(JS::Cell::Visitor& visitor) Base::visit_edges(visitor); visitor.visit(m_fetch_controller); visitor.visit(m_document); + visitor.visit(m_page); for (auto& callback : m_callbacks) { visitor.visit(callback.on_finish); visitor.visit(callback.on_fail); diff --git a/Userland/Libraries/LibWeb/HTML/SharedImageRequest.h b/Userland/Libraries/LibWeb/HTML/SharedImageRequest.h index f66f4a04fb..7fcc1e363e 100644 --- a/Userland/Libraries/LibWeb/HTML/SharedImageRequest.h +++ b/Userland/Libraries/LibWeb/HTML/SharedImageRequest.h @@ -22,7 +22,7 @@ class SharedImageRequest : public JS::Cell { JS_DECLARE_ALLOCATOR(SharedImageRequest); public: - [[nodiscard]] static JS::NonnullGCPtr get_or_create(JS::Realm&, Page&, AK::URL const&); + [[nodiscard]] static JS::NonnullGCPtr get_or_create(JS::Realm&, JS::NonnullGCPtr, AK::URL const&); ~SharedImageRequest(); @@ -43,7 +43,7 @@ public: virtual void visit_edges(JS::Cell::Visitor&) override; private: - explicit SharedImageRequest(Page&, AK::URL, JS::NonnullGCPtr); + explicit SharedImageRequest(JS::NonnullGCPtr, AK::URL, JS::NonnullGCPtr); void handle_successful_fetch(AK::URL const&, StringView mime_type, ByteBuffer data); void handle_failed_fetch(); @@ -57,7 +57,7 @@ private: State m_state { State::New }; - Page& m_page; + JS::NonnullGCPtr m_page; struct Callbacks { JS::GCPtr> on_finish;