diff --git a/Base/res/html/error.html b/Base/res/html/error.html
index c7fb60897f..280378e43d 100644
--- a/Base/res/html/error.html
+++ b/Base/res/html/error.html
@@ -9,11 +9,14 @@
header {
margin-bottom: 10px;
}
+ img {
+ margin-right: 5px;
+ }
-
+
Failed to load @failed_url@
Error: @error@
diff --git a/Ladybird/WebContent/main.cpp b/Ladybird/WebContent/main.cpp
index cdc7e03a4a..3126963aa5 100644
--- a/Ladybird/WebContent/main.cpp
+++ b/Ladybird/WebContent/main.cpp
@@ -98,6 +98,7 @@ ErrorOr serenity_main(Main::Arguments arguments)
Web::Platform::FontPlugin::install(*new Ladybird::FontPlugin(is_layout_test_mode));
+ Web::FrameLoader::set_resource_directory_url(DeprecatedString::formatted("file://{}/res", s_serenity_resource_root));
Web::FrameLoader::set_error_page_url(DeprecatedString::formatted("file://{}/res/html/error.html", s_serenity_resource_root));
TRY(Web::Bindings::initialize_main_thread_vm());
diff --git a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp
index 9c5a1de94c..8fc575d090 100644
--- a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp
+++ b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp
@@ -169,8 +169,25 @@ void FrameLoader::load_html(StringView html, const AK::URL& url)
parser->run(url);
}
+static DeprecatedString s_resource_directory_url = "file:///res";
+
+DeprecatedString FrameLoader::resource_directory_url()
+{
+ return s_resource_directory_url;
+}
+
+void FrameLoader::set_resource_directory_url(DeprecatedString resource_directory_url)
+{
+ s_resource_directory_url = resource_directory_url;
+}
+
static DeprecatedString s_error_page_url = "file:///res/html/error.html";
+DeprecatedString FrameLoader::error_page_url()
+{
+ return s_error_page_url;
+}
+
void FrameLoader::set_error_page_url(DeprecatedString error_page_url)
{
s_error_page_url = error_page_url;
@@ -189,6 +206,7 @@ void FrameLoader::load_error_page(const AK::URL& failed_url, DeprecatedString co
VERIFY(!data.is_null());
StringBuilder builder;
SourceGenerator generator { builder };
+ generator.set("resource_directory_url", resource_directory_url());
generator.set("failed_url", escape_html_entities(failed_url.to_deprecated_string()));
generator.set("error", escape_html_entities(error));
generator.append(data);
diff --git a/Userland/Libraries/LibWeb/Loader/FrameLoader.h b/Userland/Libraries/LibWeb/Loader/FrameLoader.h
index e9fd575905..e941566ded 100644
--- a/Userland/Libraries/LibWeb/Loader/FrameLoader.h
+++ b/Userland/Libraries/LibWeb/Loader/FrameLoader.h
@@ -25,6 +25,9 @@ public:
};
static void set_default_favicon_path(DeprecatedString);
+ static DeprecatedString resource_directory_url();
+ static void set_resource_directory_url(DeprecatedString);
+ static DeprecatedString error_page_url();
static void set_error_page_url(DeprecatedString);
explicit FrameLoader(HTML::BrowsingContext&);