aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/fetch/methods.rs
diff options
context:
space:
mode:
authorUtsav Oza <utsavoza96@gmail.com>2020-06-28 14:45:38 +0530
committerUtsav Oza <utsavoza96@gmail.com>2020-07-02 14:29:26 +0530
commit310821d3b0c88a5f7ef15c228d2a2b514ebcc477 (patch)
tree93357be3cd1a9255adbc97ae2e283d70b822d025 /components/net/fetch/methods.rs
parent83b2f0de0b39d8ccfcab9acbb4b9dd7f5826ea3c (diff)
downloadservo-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.rs34
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.