Auto merge of #11978 - aravind-pg:new-referrer-pols, r=jdm

Add "origin" and "same-origin" referrer policies, replacing "origin-only".

<!-- 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 #11384
- [X] There are tests for these changes

<!-- 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="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11978)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-07-12 13:44:33 -07:00 committed by GitHub
commit 37dbb50208
777 changed files with 17089 additions and 375 deletions

View file

@ -1626,10 +1626,10 @@ fn assert_referer_header_not_included(origin_info: &LoadOrigin, request_url: &st
}
#[test]
fn test_referer_set_to_origin_with_originonly_policy() {
fn test_referer_set_to_origin_with_origin_policy() {
let request_url = "http://mozilla.com";
let referrer_url = "http://username:password@someurl.com/some/path#fragment";
let referrer_policy = Some(ReferrerPolicy::OriginOnly);
let referrer_policy = Some(ReferrerPolicy::Origin);
let expected_referrer = "http://someurl.com/";
let origin_info = LoadOriginInfo {
@ -1640,6 +1640,35 @@ fn test_referer_set_to_origin_with_originonly_policy() {
assert_referer_header_matches(&origin_info, request_url, expected_referrer);
}
#[test]
fn test_referer_set_to_ref_url_with_sameorigin_policy_same_orig() {
let request_url = "http://mozilla.com";
let referrer_url = "http://username:password@mozilla.com/some/path#fragment";
let referrer_policy = Some(ReferrerPolicy::SameOrigin);
let expected_referrer = "http://mozilla.com/some/path";
let origin_info = LoadOriginInfo {
referrer_url: referrer_url,
referrer_policy: referrer_policy
};
assert_referer_header_matches(&origin_info, request_url, expected_referrer);
}
#[test]
fn test_no_referer_set_with_sameorigin_policy_cross_orig() {
let request_url = "http://mozilla.com";
let referrer_url = "http://username:password@someurl.com/some/path#fragment";
let referrer_policy = Some(ReferrerPolicy::SameOrigin);
let origin_info = LoadOriginInfo {
referrer_url: referrer_url,
referrer_policy: referrer_policy
};
assert_referer_header_not_included(&origin_info, request_url);
}
#[test]
fn test_referer_set_to_stripped_url_with_unsafeurl_policy() {
let request_url = "http://mozilla.com";