diff options
-rw-r--r-- | components/net/tests/http_loader.rs | 4 | ||||
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 15 | ||||
-rw-r--r-- | components/script/script_module.rs | 9 |
3 files changed, 10 insertions, 18 deletions
diff --git a/components/net/tests/http_loader.rs b/components/net/tests/http_loader.rs index f5b5a82cb5a..0cea1e3add6 100644 --- a/components/net/tests/http_loader.rs +++ b/components/net/tests/http_loader.rs @@ -33,8 +33,8 @@ use net::http_loader::determine_request_referrer; use net::resource_thread::AuthCacheEntry; use net::test::replace_host_table; use net_traits::request::{ - BodyChunkRequest, BodyChunkResponse, BodySource, CredentialsMode, Destination, RequestBody, Referrer - RequestBuilder, RequestMode, + BodyChunkRequest, BodyChunkResponse, BodySource, CredentialsMode, Destination, Referrer, + RequestBody, RequestBuilder, RequestMode, }; use net_traits::response::{HttpsState, ResponseBody}; use net_traits::{CookieSource, NetworkError, ReferrerPolicy}; diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 2e8a37ea240..06b6699d3a9 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -160,7 +160,7 @@ pub struct XMLHttpRequest { fetch_time: Cell<i64>, generation_id: Cell<GenerationId>, response_status: Cell<Result<(), ()>>, - referrer_url: Option<ServoUrl>, + referrer: Referrer, referrer_policy: Option<ReferrerPolicy>, canceller: DomRefCell<FetchCanceller>, } @@ -168,11 +168,11 @@ pub struct XMLHttpRequest { impl XMLHttpRequest { fn new_inherited(global: &GlobalScope) -> XMLHttpRequest { //TODO - update this when referrer policy implemented for workers - let (referrer_url, referrer_policy) = if let Some(window) = global.downcast::<Window>() { + let referrer_policy = if let Some(window) = global.downcast::<Window>() { let document = window.Document(); - (Some(document.url()), document.get_referrer_policy()) + document.get_referrer_policy() } else { - (None, None) + None }; XMLHttpRequest { @@ -206,7 +206,7 @@ impl XMLHttpRequest { fetch_time: Cell::new(0), generation_id: Cell::new(GenerationId(0)), response_status: Cell::new(Ok(())), - referrer_url: referrer_url, + referrer: global.get_referrer(), referrer_policy: referrer_policy, canceller: DomRefCell::new(Default::default()), } @@ -681,10 +681,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { let mut request = RequestBuilder::new( self.request_url.borrow().clone().unwrap(), - self.referrer_url - .clone() - .map(|url| Referrer::ReferrerUrl(url)) - .unwrap_or_else(|| self.global().get_referrer()), + self.referrer.clone(), ) .method(self.request_method.borrow().clone()) .headers((*self.request_headers.borrow()).clone()) diff --git a/components/script/script_module.rs b/components/script/script_module.rs index 0a890623e62..185a96c5d86 100644 --- a/components/script/script_module.rs +++ b/components/script/script_module.rs @@ -60,7 +60,7 @@ use js::rust::CompileOptionsWrapper; use js::rust::{Handle, HandleValue, IntoHandle}; use mime::Mime; use net_traits::request::{CredentialsMode, Destination, ParserMetadata}; -use net_traits::request::{Referrer, RequestBuilder, RequestMode}; +use net_traits::request::{RequestBuilder, RequestMode}; use net_traits::{FetchMetadata, Metadata}; use net_traits::{FetchResponseListener, NetworkError}; use net_traits::{ResourceFetchTiming, ResourceTimingType}; @@ -721,7 +721,6 @@ impl ModuleTree { // Step 8. - let referrer = global.get_referrer(); for url in urls { // https://html.spec.whatwg.org/multipage/#internal-module-script-graph-fetching-procedure // Step 1. @@ -733,7 +732,6 @@ impl ModuleTree { url.clone(), visited_urls.clone(), destination.clone(), - referrer.clone(), ParserMetadata::NotParserInserted, "".to_owned(), // integrity credentials_mode.clone(), @@ -1227,7 +1225,6 @@ pub fn fetch_external_module_script( ) { let mut visited_urls = HashSet::new(); visited_urls.insert(url.clone()); - let referrer = owner.global().get_referrer(); // Step 1. fetch_single_module_script( @@ -1235,7 +1232,6 @@ pub fn fetch_external_module_script( url, visited_urls, destination, - referrer, ParserMetadata::NotParserInserted, integrity_metadata, credentials_mode, @@ -1250,7 +1246,6 @@ pub fn fetch_single_module_script( url: ServoUrl, visited_urls: HashSet<ServoUrl>, destination: Destination, - referrer: Referrer, parser_metadata: ParserMetadata, integrity_metadata: String, credentials_mode: CredentialsMode, @@ -1325,7 +1320,7 @@ pub fn fetch_single_module_script( }; // Step 7-8. - let request = RequestBuilder::new(url.clone(), referrer) + let request = RequestBuilder::new(url.clone(), global.get_referrer()) .destination(destination.clone()) .origin(global.origin().immutable().clone()) .parser_metadata(parser_metadata) |