From 5b9763213212c89a12da7570e17d1ed79f7c7e3b Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Thu, 26 Jan 2017 14:37:11 +0100 Subject: Simplify handling of the referrer policy header in ScriptThread::load(). --- components/script/script_thread.rs | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) (limited to 'components/script/script_thread.rs') diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 57cdd7044c4..dd522b9cb2a 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; @@ -1761,28 +1762,11 @@ impl ScriptThread { None => None, }; - let referrer_policy = if let Some(headers) = metadata.headers { - headers.get::().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::) + .map(ReferrerPolicy::from); let document = Document::new(&window, Some(&browsing_context), -- cgit v1.2.3