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;