diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
index 8d5761f2e1..1ae6320ce8 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
@@ -121,6 +121,7 @@ static bool is_html_integration_point(DOM::Element const& element)
HTMLParser::HTMLParser(DOM::Document& document, StringView input, String const& encoding)
: m_tokenizer(input, encoding)
+ , m_scripting_enabled(document.is_scripting_enabled())
, m_document(JS::make_handle(document))
{
m_tokenizer.set_parser({}, *this);
@@ -132,7 +133,8 @@ HTMLParser::HTMLParser(DOM::Document& document, StringView input, String const&
}
HTMLParser::HTMLParser(DOM::Document& document)
- : m_document(JS::make_handle(document))
+ : m_scripting_enabled(document.is_scripting_enabled())
+ , m_document(JS::make_handle(document))
{
m_document->set_parser({}, *this);
m_tokenizer.set_parser({}, *this);
diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.h b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.h
index 861acc4b08..fe80150197 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.h
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.h
@@ -169,7 +169,11 @@ private:
bool m_foster_parenting { false };
bool m_frameset_ok { true };
bool m_parsing_fragment { false };
+
+ // https://html.spec.whatwg.org/multipage/parsing.html#scripting-flag
+ // The scripting flag is set to "enabled" if scripting was enabled for the Document with which the parser is associated when the parser was created, and "disabled" otherwise.
bool m_scripting_enabled { true };
+
bool m_invoked_via_document_write { false };
bool m_aborted { false };
bool m_parser_pause_flag { false };