diff options
author | CYBAI <cyb.ai.815@gmail.com> | 2019-01-10 18:58:07 +0800 |
---|---|---|
committer | CYBAI <cyb.ai.815@gmail.com> | 2019-01-23 00:38:45 +0800 |
commit | cb86d451e663646c496e6bece8b456f5196afca7 (patch) | |
tree | 92157282da4d6a9d15e4b463886d7b4b05bcfe68 /components/script/dom/element.rs | |
parent | 9d70f5135614b8fa0ba4e1322ac114587b959eb5 (diff) | |
download | servo-cb86d451e663646c496e6bece8b456f5196afca7.tar.gz servo-cb86d451e663646c496e6bece8b456f5196afca7.zip |
Implement cannot navigate
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 12 |
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 { |