diff options
author | Utsav Oza <utsavoza96@gmail.com> | 2020-06-28 14:45:38 +0530 |
---|---|---|
committer | Utsav Oza <utsavoza96@gmail.com> | 2020-07-02 14:29:26 +0530 |
commit | 310821d3b0c88a5f7ef15c228d2a2b514ebcc477 (patch) | |
tree | 93357be3cd1a9255adbc97ae2e283d70b822d025 /components/net/fetch/methods.rs | |
parent | 83b2f0de0b39d8ccfcab9acbb4b9dd7f5826ea3c (diff) | |
download | servo-310821d3b0c88a5f7ef15c228d2a2b514ebcc477.tar.gz servo-310821d3b0c88a5f7ef15c228d2a2b514ebcc477.zip |
Update referrer computation
Update unit tests for determine_requests_referrer
Update wpt metadata
Add missing spec links
Diffstat (limited to 'components/net/fetch/methods.rs')
-rw-r--r-- | components/net/fetch/methods.rs | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index 41b804fb7fc..a6ae6b4b234 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -5,7 +5,7 @@ use crate::data_loader::decode; use crate::fetch::cors_cache::CorsCache; use crate::filemanager_thread::{FileManager, FILE_CHUNK_SIZE}; -use crate::http_loader::{determine_request_referrer, http_fetch, HttpState}; +use crate::http_loader::{determine_requests_referrer, http_fetch, HttpState}; use crate::http_loader::{set_default_accept, set_default_accept_language}; use crate::subresource_integrity::is_response_integrity_valid; use content_security_policy as csp; @@ -236,25 +236,19 @@ pub fn main_fetch( .or(Some(ReferrerPolicy::NoReferrerWhenDowngrade)); // Step 8. - { - let referrer_url = match mem::replace(&mut request.referrer, Referrer::NoReferrer) { - Referrer::NoReferrer => None, - Referrer::ReferrerUrl(url) | Referrer::Client(url) => { - request.headers.remove(header::REFERER); - let current_url = request.current_url(); - determine_request_referrer( - &mut request.headers, - request.referrer_policy.unwrap(), - url, - current_url, - request.https_state, - ) - }, - }; - if let Some(referrer_url) = referrer_url { - request.referrer = Referrer::ReferrerUrl(referrer_url); - } - } + assert!(request.referrer_policy.is_some()); + let referrer_url = match mem::replace(&mut request.referrer, Referrer::NoReferrer) { + Referrer::NoReferrer => None, + Referrer::ReferrerUrl(referrer_source) | Referrer::Client(referrer_source) => { + request.headers.remove(header::REFERER); + determine_requests_referrer( + request.referrer_policy.unwrap(), + referrer_source, + request.current_url(), + ) + }, + }; + request.referrer = referrer_url.map_or(Referrer::NoReferrer, |url| Referrer::ReferrerUrl(url)); // Step 9. // TODO: handle FTP URLs. |