From 7b735b55e11685107708385cbe10b7329634838f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 13 Dec 2020 18:21:52 +0100 Subject: [PATCH] LibWeb: Set the encoding of HTML documents Now that we attach the document to the frame before parsing, we have to make sure we set the encoding on the document before parsing, or things may not turn out well. --- Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp | 4 ++-- Libraries/LibWeb/Loader/FrameLoader.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp b/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp index 6e9c2e2f4d..1927274a73 100644 --- a/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp +++ b/Libraries/LibWeb/HTML/Parser/HTMLDocumentParser.cpp @@ -113,7 +113,7 @@ static Vector s_quirks_public_ids = { RefPtr parse_html_document(const StringView& data, const URL& url, const String& encoding) { auto document = DOM::Document::create(url); - HTMLDocumentParser parser(document, data, TextCodec::get_standardized_encoding(encoding)); + HTMLDocumentParser parser(document, data, encoding); parser.run(url); return document; } @@ -122,7 +122,7 @@ HTMLDocumentParser::HTMLDocumentParser(DOM::Document& document, const StringView : m_tokenizer(input, encoding) , m_document(document) { - m_document->set_encoding(encoding); + m_document->set_encoding(TextCodec::get_standardized_encoding(encoding)); } HTMLDocumentParser::~HTMLDocumentParser() diff --git a/Libraries/LibWeb/Loader/FrameLoader.cpp b/Libraries/LibWeb/Loader/FrameLoader.cpp index 9347521df4..72598378d1 100644 --- a/Libraries/LibWeb/Loader/FrameLoader.cpp +++ b/Libraries/LibWeb/Loader/FrameLoader.cpp @@ -260,6 +260,7 @@ void FrameLoader::resource_did_load() auto document = DOM::Document::create(); document->set_url(url); + document->set_encoding(resource()->encoding()); document->set_content_type(resource()->mime_type()); frame().set_document(document);