diff --git a/Libraries/LibWeb/CSS/StyleComputer.cpp b/Libraries/LibWeb/CSS/StyleComputer.cpp index 7562d51fb3b..7de14ac6307 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -242,8 +243,12 @@ void FontLoader::start_loading_next_url() return; if (m_urls.is_empty()) return; + auto& style_computer_realm = m_style_computer.document().realm(); + auto& page = Bindings::principal_host_defined_page(HTML::principal_realm(style_computer_realm)); + LoadRequest request; request.set_url(m_urls.take_first()); + request.set_page(page); // HACK: We're crudely computing the referer value and shoving it into the // request until fetch infrastructure is used here. diff --git a/Libraries/LibWeb/HTML/HTMLLinkElement.cpp b/Libraries/LibWeb/HTML/HTMLLinkElement.cpp index 3ced52f28d7..8a074fe7d6f 100644 --- a/Libraries/LibWeb/HTML/HTMLLinkElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLLinkElement.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -81,6 +82,7 @@ void HTMLLinkElement::inserted() // FIXME: Respect the "as" attribute. LoadRequest request; request.set_url(maybe_href.value()); + request.set_page(Bindings::principal_host_defined_page(HTML::principal_realm(realm()))); set_resource(ResourceLoader::the().load_resource(Resource::Type::Generic, request)); } } else if (m_relationship & Relationship::DNSPrefetch) { diff --git a/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Libraries/LibWeb/Loader/ResourceLoader.cpp index 84f08bb1f6f..70921abd02c 100644 --- a/Libraries/LibWeb/Loader/ResourceLoader.cpp +++ b/Libraries/LibWeb/Loader/ResourceLoader.cpp @@ -334,11 +334,9 @@ void ResourceLoader::load(LoadRequest& request, GC::Root succes } if (url.scheme() == "file") { - if (request.page()) - m_page = request.page(); - - if (!m_page.has_value()) { - log_failure(request, "INTERNAL ERROR: No Page for request"); + auto page = request.page(); + if (!page) { + log_failure(request, "INTERNAL ERROR: No Page for file scheme request"); return; } @@ -396,7 +394,7 @@ void ResourceLoader::load(LoadRequest& request, GC::Root succes success_callback->function()(data, response_headers, {}, {}); }); - (*m_page)->client().request_file(move(file_request)); + page->client().request_file(move(file_request)); ++m_pending_loads; if (on_load_counter_change) diff --git a/Libraries/LibWeb/Loader/ResourceLoader.h b/Libraries/LibWeb/Loader/ResourceLoader.h index 0af694226f6..96e31ef5af3 100644 --- a/Libraries/LibWeb/Loader/ResourceLoader.h +++ b/Libraries/LibWeb/Loader/ResourceLoader.h @@ -93,7 +93,6 @@ private: Vector m_preferred_languages = { "en"_string }; NavigatorCompatibilityMode m_navigator_compatibility_mode; bool m_enable_do_not_track { false }; - Optional> m_page {}; }; }