diff options
-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 }; |