aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorGregory Terzian <gterzian@users.noreply.github.com>2018-07-22 18:39:35 +0800
committerGregory Terzian <gterzian@users.noreply.github.com>2018-07-29 16:42:59 +0800
commite49c8e7f2635049f103a8ec58f3f77aa3a40318c (patch)
tree41fccf0b9e3272c2eb69d9ac5e3b25c7937121cd /components/script
parentf2ee941da2f56b22d2258057a83998306e862350 (diff)
downloadservo-e49c8e7f2635049f103a8ec58f3f77aa3a40318c.tar.gz
servo-e49c8e7f2635049f103a8ec58f3f77aa3a40318c.zip
spec compliant active parser concept
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/document.rs2
-rw-r--r--components/script/dom/servoparser/mod.rs5
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,