diff --git a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.cpp
index d8293ef101..07ae682620 100644
--- a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.cpp
+++ b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.cpp
@@ -224,10 +224,12 @@ void HTMLScriptElement::prepare_script()
}
if (m_script_type == ScriptType::Classic) {
+ auto request = LoadRequest::create_for_url_on_page(url, document().page());
+
// FIXME: This load should be made asynchronous and the parser should spin an event loop etc.
m_script_filename = url.basename();
ResourceLoader::the().load_sync(
- url,
+ request,
[this, url](auto data, auto&, auto) {
if (data.is_null()) {
dbgln("HTMLScriptElement: Failed to load {}", url);
diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp
index cd3aaeed2d..7d20b25d1d 100644
--- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp
+++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp
@@ -52,12 +52,12 @@ ResourceLoader::ResourceLoader()
{
}
-void ResourceLoader::load_sync(const URL& url, Function& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback)
+void ResourceLoader::load_sync(const LoadRequest& request, Function& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback)
{
Core::EventLoop loop;
load(
- url,
+ request,
[&](auto data, auto& response_headers, auto status_code) {
success_callback(data, response_headers, status_code);
loop.quit(0);
diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.h b/Userland/Libraries/LibWeb/Loader/ResourceLoader.h
index 74ac265f72..7eb263e8b7 100644
--- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.h
+++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.h
@@ -48,7 +48,7 @@ public:
void load(const LoadRequest&, Function& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr);
void load(const URL&, Function& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr);
- void load_sync(const URL&, Function& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr);
+ void load_sync(const LoadRequest&, Function& response_headers, Optional status_code)> success_callback, Function status_code)> error_callback = nullptr);
Function on_load_counter_change;
diff --git a/Userland/Utilities/test-web.cpp b/Userland/Utilities/test-web.cpp
index 48d6027afb..e03445204a 100644
--- a/Userland/Utilities/test-web.cpp
+++ b/Userland/Utilities/test-web.cpp
@@ -209,8 +209,11 @@ void TestRunner::run()
// give a new parser the existing document to work on.
m_page_view->document()->remove_all_children();
+ Web::LoadRequest request;
+ request.set_url(page_to_load);
+
Web::ResourceLoader::the().load_sync(
- page_to_load,
+ request,
[&](auto data, auto&, auto) {
Web::HTML::HTMLDocumentParser parser(*m_page_view->document(), data, "utf-8");
parser.run(page_to_load);
@@ -315,8 +318,11 @@ JSFileResult TestRunner::run_file_test(const String& test_path)
JSFileResult file_result;
+ Web::LoadRequest request;
+ request.set_url(page_to_load);
+
Web::ResourceLoader::the().load_sync(
- page_to_load,
+ request,
[&](auto data, auto&, auto) {
// Create a new parser and immediately get its document to replace the old interpreter.
auto document = Web::DOM::Document::create();