aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Roman <george.roman.99@gmail.com>2019-02-08 13:04:20 +0200
committerGeorge Roman <george.roman.99@gmail.com>2019-02-12 19:46:37 +0200
commit74d6af94f6f4e79ea0089da38e89a1d5a83179ab (patch)
tree8dac844bfa872fc284876fa9c7f5326d74c4ab2b
parentc80c3f3167486813e878ed807129e8ca210f6cd9 (diff)
downloadservo-74d6af94f6f4e79ea0089da38e89a1d5a83179ab.tar.gz
servo-74d6af94f6f4e79ea0089da38e89a1d5a83179ab.zip
Make blank target imply noopener
-rw-r--r--components/script/dom/htmlanchorelement.rs9
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
};