mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 05:17:35 +00:00
AK: Serialize URL hosts with 'concept-host-serializer'
In order to follow spec text to achieve this, we need to change the underlying representation of a host in AK::URL to deserialized format. Before this, we were parsing the host and then immediately serializing it again. Making that change resulted in a whole bunch of fallout. After this change, callers can access the serialized data through this concept-host-serializer. The functional end result of this change is that IPv6 hosts are now correctly serialized to be surrounded with '[' and ']'.
This commit is contained in:
parent
768f070b86
commit
8751be09f9
36 changed files with 175 additions and 143 deletions
|
@ -83,7 +83,7 @@ HelpWindow::HelpWindow(GUI::Window* parent)
|
|||
m_webview = splitter.add<WebView::OutOfProcessWebView>();
|
||||
m_webview->on_link_click = [this](auto& url, auto&, auto&&) {
|
||||
VERIFY(url.scheme() == "spreadsheet");
|
||||
if (url.host() == "example") {
|
||||
if (url.host().template has<String>() && url.host().template get<String>() == "example"sv) {
|
||||
auto example_path = url.serialize_path();
|
||||
auto entry = LexicalPath::basename(example_path);
|
||||
auto doc_option = m_docs.get_object(entry);
|
||||
|
@ -122,11 +122,11 @@ HelpWindow::HelpWindow(GUI::Window* parent)
|
|||
|
||||
widget->add_sheet(sheet.release_nonnull());
|
||||
window->show();
|
||||
} else if (url.host() == "doc") {
|
||||
} else if (url.host() == String::from_utf8_short_string("doc"sv)) {
|
||||
auto entry = LexicalPath::basename(url.serialize_path());
|
||||
m_webview->load(URL::create_with_data("text/html", render(entry)));
|
||||
} else {
|
||||
dbgln("Invalid spreadsheet action domain '{}'", url.host());
|
||||
dbgln("Invalid spreadsheet action domain '{}'", url.serialized_host().release_value_but_fixme_should_propagate_errors());
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue