aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-03-09 16:49:00 -0500
committerGitHub <noreply@github.com>2019-03-09 16:49:00 -0500
commit169b8cf144e352b393fc84d3a1b547c3ae990cba (patch)
tree336463a2505ac77cbfe340f037b859308abc923d
parentb006913e79f0a1845f32e5e2e40f63ad9ad6f490 (diff)
parent74d6af94f6f4e79ea0089da38e89a1d5a83179ab (diff)
downloadservo-169b8cf144e352b393fc84d3a1b547c3ae990cba.tar.gz
servo-169b8cf144e352b393fc84d3a1b547c3ae990cba.zip
Auto merge of #22851 - georgeroman:make_blank_target_imply_noopener, r=cybai,jdm
Make blank target imply noopener, implement "opener" link type <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix part of #22845 <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22851) <!-- Reviewable:end -->
-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
};