aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
};