aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/servoparser/html.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/servoparser/html.rs')
-rw-r--r--components/script/dom/servoparser/html.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/components/script/dom/servoparser/html.rs b/components/script/dom/servoparser/html.rs
index 97856256268..07848c87678 100644
--- a/components/script/dom/servoparser/html.rs
+++ b/components/script/dom/servoparser/html.rs
@@ -11,11 +11,12 @@ use html5ever::buffer_queue::BufferQueue;
use html5ever::serialize::TraversalScope::IncludeNode;
use html5ever::serialize::{AttrRef, Serialize, Serializer, TraversalScope};
use html5ever::tokenizer::{Tokenizer as HtmlTokenizer, TokenizerOpts};
-use html5ever::tree_builder::{TreeBuilder, TreeBuilderOpts};
+use html5ever::tree_builder::{QuirksMode as HTML5EverQuirksMode, TreeBuilder, TreeBuilderOpts};
use html5ever::{QualName, local_name, ns};
use markup5ever::TokenizerResult;
use script_bindings::trace::CustomTraceable;
use servo_url::ServoUrl;
+use style::context::QuirksMode as StyleContextQuirksMode;
use xml5ever::LocalName;
use crate::dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateElementMethods;
@@ -58,9 +59,17 @@ impl Tokenizer {
parsing_algorithm,
};
+ let quirks_mode = match document.quirks_mode() {
+ StyleContextQuirksMode::Quirks => HTML5EverQuirksMode::Quirks,
+ StyleContextQuirksMode::LimitedQuirks => HTML5EverQuirksMode::LimitedQuirks,
+ StyleContextQuirksMode::NoQuirks => HTML5EverQuirksMode::NoQuirks,
+ };
+
let options = TreeBuilderOpts {
ignore_missing_rules: true,
- scripting_enabled: document.has_browsing_context(),
+ scripting_enabled: document.scripting_enabled(),
+ iframe_srcdoc: document.url().as_str() == "about:srcdoc",
+ quirks_mode,
..Default::default()
};