1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:18:11 +00:00

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.
This commit is contained in:
Andreas Kling 2019-10-06 21:13:24 +02:00
parent a239ef34d5
commit 66caa7af2b
3 changed files with 4 additions and 4 deletions

View file

@ -175,8 +175,7 @@ void HtmlView::load(const URL& url)
} }
String html = String::copy(f->read_all()); String html = String::copy(f->read_all());
auto document = parse_html(html); auto document = parse_html(html, url);
document->set_url(url);
document->normalize(); document->normalize();
set_document(document); set_document(document);

View file

@ -72,11 +72,12 @@ static bool is_self_closing_tag(const String& tag_name)
|| tag_name == "wbr"; || tag_name == "wbr";
} }
NonnullRefPtr<Document> parse_html(const String& html) NonnullRefPtr<Document> parse_html(const String& html, const URL& url)
{ {
NonnullRefPtrVector<ParentNode> node_stack; NonnullRefPtrVector<ParentNode> node_stack;
auto document = adopt(*new Document); auto document = adopt(*new Document);
document->set_url(url);
node_stack.append(document); node_stack.append(document);
enum class State { enum class State {

View file

@ -3,5 +3,5 @@
#include <AK/NonnullRefPtr.h> #include <AK/NonnullRefPtr.h>
#include <LibHTML/DOM/Document.h> #include <LibHTML/DOM/Document.h>
NonnullRefPtr<Document> parse_html(const String&); NonnullRefPtr<Document> parse_html(const String&, const URL& = URL());