aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
authorCYBAI <cyb.ai.815@gmail.com>2019-01-10 18:58:07 +0800
committerCYBAI <cyb.ai.815@gmail.com>2019-01-23 00:38:45 +0800
commitcb86d451e663646c496e6bece8b456f5196afca7 (patch)
tree92157282da4d6a9d15e4b463886d7b4b05bcfe68 /components/script/dom/element.rs
parent9d70f5135614b8fa0ba4e1322ac114587b959eb5 (diff)
downloadservo-cb86d451e663646c496e6bece8b456f5196afca7.tar.gz
servo-cb86d451e663646c496e6bece8b456f5196afca7.zip
Implement cannot navigate
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 155098247b6..234a10f9448 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -3235,6 +3235,18 @@ impl Element {
let root = node.GetRootNode();
root.is::<Document>()
}
+
+ // https://html.spec.whatwg.org/multipage/#cannot-navigate
+ pub fn cannot_navigate(&self) -> bool {
+ let document = document_from_node(self);
+
+ // Step 1.
+ !document.is_fully_active() ||
+ (
+ // Step 2.
+ !self.is::<HTMLAnchorElement>() && !self.is_connected()
+ )
+ }
}
impl Element {