aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_thread.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-01-27 02:27:38 -0800
committerGitHub <noreply@github.com>2017-01-27 02:27:38 -0800
commitcfba589e64387c462c1b448c5e78376bd5c69b4a (patch)
tree26a8de0e7f57e0ac5d7b9353030766c0ca429b03 /components/script/script_thread.rs
parent5af74c38fce01c8e893744514a5cfbcd913de71c (diff)
parent5b9763213212c89a12da7570e17d1ed79f7c7e3b (diff)
downloadservo-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.rs30
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),