diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-01-27 02:27:38 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-27 02:27:38 -0800 |
commit | cfba589e64387c462c1b448c5e78376bd5c69b4a (patch) | |
tree | 26a8de0e7f57e0ac5d7b9353030766c0ca429b03 /components/script/script_thread.rs | |
parent | 5af74c38fce01c8e893744514a5cfbcd913de71c (diff) | |
parent | 5b9763213212c89a12da7570e17d1ed79f7c7e3b (diff) | |
download | servo-cfba589e64387c462c1b448c5e78376bd5c69b4a.tar.gz servo-cfba589e64387c462c1b448c5e78376bd5c69b4a.zip |
Auto merge of #15242 - servo:refpol, r=nox
Simplify handling of the referrer policy header in ScriptThread::load().
<!-- 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/15242)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/script_thread.rs')
-rw-r--r-- | components/script/script_thread.rs | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 7cb6a590ac0..7af80f5f7fc 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -57,7 +57,7 @@ use dom::window::{ReflowReason, Window}; use dom::worker::TrustedWorkerAddress; use euclid::Rect; use euclid::point::Point2D; -use hyper::header::{ContentType, HttpDate, LastModified}; +use hyper::header::{ContentType, HttpDate, LastModified, Headers}; use hyper::header::ReferrerPolicy as ReferrerPolicyHeader; use hyper::mime::{Mime, SubLevel, TopLevel}; use hyper_serde::Serde; @@ -97,6 +97,7 @@ use servo_config::opts; use servo_url::ServoUrl; use std::cell::Cell; use std::collections::{hash_map, HashMap, HashSet}; +use std::ops::Deref; use std::option::Option; use std::ptr; use std::rc::Rc; @@ -1745,28 +1746,11 @@ impl ScriptThread { None => None, }; - let referrer_policy = if let Some(headers) = metadata.headers { - headers.get::<ReferrerPolicyHeader>().map(|h| match *h { - ReferrerPolicyHeader::NoReferrer => - ReferrerPolicy::NoReferrer, - ReferrerPolicyHeader::NoReferrerWhenDowngrade => - ReferrerPolicy::NoReferrerWhenDowngrade, - ReferrerPolicyHeader::SameOrigin => - ReferrerPolicy::SameOrigin, - ReferrerPolicyHeader::Origin => - ReferrerPolicy::Origin, - ReferrerPolicyHeader::OriginWhenCrossOrigin => - ReferrerPolicy::OriginWhenCrossOrigin, - ReferrerPolicyHeader::UnsafeUrl => - ReferrerPolicy::UnsafeUrl, - ReferrerPolicyHeader::StrictOrigin => - ReferrerPolicy::StrictOrigin, - ReferrerPolicyHeader::StrictOriginWhenCrossOrigin => - ReferrerPolicy::StrictOriginWhenCrossOrigin, - }) - } else { - None - }; + let referrer_policy = metadata.headers + .as_ref() + .map(Serde::deref) + .and_then(Headers::get::<ReferrerPolicyHeader>) + .map(ReferrerPolicy::from); let document = Document::new(&window, Some(&browsing_context), |