diff options
author | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-07-22 18:39:35 +0800 |
---|---|---|
committer | Gregory Terzian <gterzian@users.noreply.github.com> | 2018-07-29 16:42:59 +0800 |
commit | e49c8e7f2635049f103a8ec58f3f77aa3a40318c (patch) | |
tree | 41fccf0b9e3272c2eb69d9ac5e3b25c7937121cd /components/script | |
parent | f2ee941da2f56b22d2258057a83998306e862350 (diff) | |
download | servo-e49c8e7f2635049f103a8ec58f3f77aa3a40318c.tar.gz servo-e49c8e7f2635049f103a8ec58f3f77aa3a40318c.zip |
spec compliant active parser concept
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/document.rs | 2 | ||||
-rw-r--r-- | components/script/dom/servoparser/mod.rs | 5 |
2 files changed, 6 insertions, 1 deletions
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, |