From 74d6af94f6f4e79ea0089da38e89a1d5a83179ab Mon Sep 17 00:00:00 2001 From: George Roman Date: Fri, 8 Feb 2019 13:04:20 +0200 Subject: [PATCH] Make blank target imply noopener --- components/script/dom/htmlanchorelement.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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) { 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 };