From e49c8e7f2635049f103a8ec58f3f77aa3a40318c Mon Sep 17 00:00:00 2001 From: Gregory Terzian Date: Sun, 22 Jul 2018 18:39:35 +0800 Subject: [PATCH] spec compliant active parser concept --- components/script/dom/document.rs | 2 +- components/script/dom/servoparser/mod.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 4c9fddbeb5e..b26e33a7860 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -3927,7 +3927,7 @@ impl DocumentMethods for Document { return Err(Error::Security); } - if self.get_current_parser().map_or(false, |parser| parser.script_nesting_level() > 0) { + if self.get_current_parser().map_or(false, |parser| parser.is_active()) { // Step 5. return Ok(DomRoot::from_ref(self)); } diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs index b5bbd2e98da..23a128af2cf 100644 --- a/components/script/dom/servoparser/mod.rs +++ b/components/script/dom/servoparser/mod.rs @@ -344,6 +344,11 @@ impl ServoParser { self.document.set_ready_state(DocumentReadyState::Interactive); } + // https://html.spec.whatwg.org/multipage/#active-parser + pub fn is_active(&self) -> bool { + self.script_nesting_level() > 0 && !self.aborted.get() + } + #[allow(unrooted_must_root)] fn new_inherited(document: &Document, tokenizer: Tokenizer,