diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-03-09 16:49:00 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-09 16:49:00 -0500 |
commit | 169b8cf144e352b393fc84d3a1b547c3ae990cba (patch) | |
tree | 336463a2505ac77cbfe340f037b859308abc923d | |
parent | b006913e79f0a1845f32e5e2e40f63ad9ad6f490 (diff) | |
parent | 74d6af94f6f4e79ea0089da38e89a1d5a83179ab (diff) | |
download | servo-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.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 }; |