From 66caa7af2b63592b823c5beacfba5661bb6823b6 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 6 Oct 2019 21:13:24 +0200 Subject: [PATCH] LibHTML: Optionally pass document URL to the HTML parser This makes the document URL available to all the parse_attributes() callbacks, in case they need it for anything. --- Libraries/LibHTML/HtmlView.cpp | 3 +-- Libraries/LibHTML/Parser/HTMLParser.cpp | 3 ++- Libraries/LibHTML/Parser/HTMLParser.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Libraries/LibHTML/HtmlView.cpp b/Libraries/LibHTML/HtmlView.cpp index eb08a1f4a5..cc84ee4030 100644 --- a/Libraries/LibHTML/HtmlView.cpp +++ b/Libraries/LibHTML/HtmlView.cpp @@ -175,8 +175,7 @@ void HtmlView::load(const URL& url) } String html = String::copy(f->read_all()); - auto document = parse_html(html); - document->set_url(url); + auto document = parse_html(html, url); document->normalize(); set_document(document); diff --git a/Libraries/LibHTML/Parser/HTMLParser.cpp b/Libraries/LibHTML/Parser/HTMLParser.cpp index eddf861b39..61178459b2 100644 --- a/Libraries/LibHTML/Parser/HTMLParser.cpp +++ b/Libraries/LibHTML/Parser/HTMLParser.cpp @@ -72,11 +72,12 @@ static bool is_self_closing_tag(const String& tag_name) || tag_name == "wbr"; } -NonnullRefPtr parse_html(const String& html) +NonnullRefPtr parse_html(const String& html, const URL& url) { NonnullRefPtrVector node_stack; auto document = adopt(*new Document); + document->set_url(url); node_stack.append(document); enum class State { diff --git a/Libraries/LibHTML/Parser/HTMLParser.h b/Libraries/LibHTML/Parser/HTMLParser.h index 5b7c5482eb..eb57a42465 100644 --- a/Libraries/LibHTML/Parser/HTMLParser.h +++ b/Libraries/LibHTML/Parser/HTMLParser.h @@ -3,5 +3,5 @@ #include #include -NonnullRefPtr parse_html(const String&); +NonnullRefPtr parse_html(const String&, const URL& = URL());