diff --git a/components/script/dom/servoparser/async_html.rs b/components/script/dom/servoparser/async_html.rs index 863ed3c917b..83d3dddfc54 100644 --- a/components/script/dom/servoparser/async_html.rs +++ b/components/script/dom/servoparser/async_html.rs @@ -267,6 +267,7 @@ impl Tokenizer { // Create new thread for HtmlTokenizer. This is where parser actions // will be generated from the input provided. These parser actions are then passed // onto the main thread to be executed. + let scripting_enabled = document.has_browsing_context(); thread::Builder::new() .name(format!("Parse:{}", tokenizer.url.debug_compact())) .spawn(move || { @@ -277,6 +278,7 @@ impl Tokenizer { form_parse_node, to_tokenizer_sender, html_tokenizer_receiver, + scripting_enabled, ); }) .expect("HTML Parser thread spawning failed"); @@ -573,9 +575,11 @@ fn run( form_parse_node: Option, sender: Sender, receiver: Receiver, + scripting_enabled: bool, ) { let options = TreeBuilderOpts { ignore_missing_rules: true, + scripting_enabled, ..Default::default() }; diff --git a/components/script/dom/servoparser/html.rs b/components/script/dom/servoparser/html.rs index 2d07bf2f088..5bbee966995 100644 --- a/components/script/dom/servoparser/html.rs +++ b/components/script/dom/servoparser/html.rs @@ -56,6 +56,7 @@ impl Tokenizer { let options = TreeBuilderOpts { ignore_missing_rules: true, + scripting_enabled: document.has_browsing_context(), ..Default::default() }; diff --git a/tests/wpt/meta/domparsing/DOMParser-parseFromString-html.html.ini b/tests/wpt/meta/domparsing/DOMParser-parseFromString-html.html.ini deleted file mode 100644 index 8a5fe453881..00000000000 --- a/tests/wpt/meta/domparsing/DOMParser-parseFromString-html.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[DOMParser-parseFromString-html.html] - [must be parsed with scripting disabled, so noscript works] - expected: FAIL diff --git a/tests/wpt/meta/html/syntax/parsing-html-fragments/tokenizer-modes-001.html.ini b/tests/wpt/meta/html/syntax/parsing-html-fragments/tokenizer-modes-001.html.ini new file mode 100644 index 00000000000..384f5a63b3a --- /dev/null +++ b/tests/wpt/meta/html/syntax/parsing-html-fragments/tokenizer-modes-001.html.ini @@ -0,0 +1,3 @@ +[tokenizer-modes-001.html] + [ should not break out of noscript.] + expected: FAIL