diff options
author | George Roman <george.roman.99@gmail.com> | 2019-02-08 13:04:20 +0200 |
---|---|---|
committer | George Roman <george.roman.99@gmail.com> | 2019-02-12 19:46:37 +0200 |
commit | 74d6af94f6f4e79ea0089da38e89a1d5a83179ab (patch) | |
tree | 8dac844bfa872fc284876fa9c7f5326d74c4ab2b | |
parent | c80c3f3167486813e878ed807129e8ca210f6cd9 (diff) | |
download | servo-74d6af94f6f4e79ea0089da38e89a1d5a83179ab.tar.gz servo-74d6af94f6f4e79ea0089da38e89a1d5a83179ab.zip |
Make blank target imply noopener
-rw-r--r-- | components/script/dom/htmlanchorelement.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 3f078c51071..982b08f3924 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -609,7 +609,14 @@ pub fn follow_hyperlink(subject: &Element, hyperlink_suffix: Option<String>) { let values = link_types.Value(); let contains_noopener = values.contains("noopener"); let contains_noreferrer = values.contains("noreferrer"); - contains_noreferrer || contains_noopener + let contains_opener = values.contains("opener"); + let target_is_blank = if let Some(name) = target_attribute_value.as_ref() { + name.Value().to_lowercase() == "_blank" + } else { + false + }; + + contains_noreferrer || contains_noopener || (!contains_opener && target_is_blank) } else { false }; |