Skip to content

Commit

Permalink
LibWeb+Base: Use AK::SourceGenerator for error pages
Browse files Browse the repository at this point in the history
Instead of storing a format string in a file, let's be reasonable
and use SourceGenerator's template functionality. :^)
  • Loading branch information
awesomekling committed Apr 21, 2021
1 parent edf0b14 commit 3857148
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions Base/res/html/error.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
<body>
<header>
<img src="file:https:///res/icons/32x32/msgbox-warning.png" alt="Warning" width="24" height="24">
<h1>Failed to load {}</h1>
<h1>Failed to load @failed_url@</h1>
</header>
<p>Error: {}</p>
<p>Error: @error@</p>
</body>
</html>
14 changes: 7 additions & 7 deletions Userland/Libraries/LibWeb/Loader/FrameLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#include <AK/Debug.h>
#include <AK/LexicalPath.h>
#include <AK/SourceGenerator.h>
#include <LibGemini/Document.h>
#include <LibGfx/ImageDecoder.h>
#include <LibMarkdown/Document.h>
Expand Down Expand Up @@ -226,13 +227,12 @@ void FrameLoader::load_error_page(const URL& failed_url, const String& error)
error_page_url,
[this, failed_url, error](auto data, auto&, auto) {
VERIFY(!data.is_null());
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
auto html = String::formatted(
data,
escape_html_entities(failed_url.to_string()),
escape_html_entities(error));
#pragma GCC diagnostic pop
auto document = HTML::parse_html_document(html, failed_url, "utf-8");
StringBuilder builder;
SourceGenerator generator { builder };
generator.set("failed_url", failed_url.to_string());
generator.set("error", error);
generator.append(data);
auto document = HTML::parse_html_document(generator.as_string_view(), failed_url, "utf-8");
VERIFY(document);
frame().set_document(document);
},
Expand Down

0 comments on commit 3857148

Please sign in to comment.