mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Use global.get_referrer() when appropiate
This commit is contained in:
parent
47355766ed
commit
25080e3fa5
3 changed files with 10 additions and 18 deletions
|
@ -33,8 +33,8 @@ use net::http_loader::determine_request_referrer;
|
||||||
use net::resource_thread::AuthCacheEntry;
|
use net::resource_thread::AuthCacheEntry;
|
||||||
use net::test::replace_host_table;
|
use net::test::replace_host_table;
|
||||||
use net_traits::request::{
|
use net_traits::request::{
|
||||||
BodyChunkRequest, BodyChunkResponse, BodySource, CredentialsMode, Destination, RequestBody, Referrer
|
BodyChunkRequest, BodyChunkResponse, BodySource, CredentialsMode, Destination, Referrer,
|
||||||
RequestBuilder, RequestMode,
|
RequestBody, RequestBuilder, RequestMode,
|
||||||
};
|
};
|
||||||
use net_traits::response::{HttpsState, ResponseBody};
|
use net_traits::response::{HttpsState, ResponseBody};
|
||||||
use net_traits::{CookieSource, NetworkError, ReferrerPolicy};
|
use net_traits::{CookieSource, NetworkError, ReferrerPolicy};
|
||||||
|
|
|
@ -160,7 +160,7 @@ pub struct XMLHttpRequest {
|
||||||
fetch_time: Cell<i64>,
|
fetch_time: Cell<i64>,
|
||||||
generation_id: Cell<GenerationId>,
|
generation_id: Cell<GenerationId>,
|
||||||
response_status: Cell<Result<(), ()>>,
|
response_status: Cell<Result<(), ()>>,
|
||||||
referrer_url: Option<ServoUrl>,
|
referrer: Referrer,
|
||||||
referrer_policy: Option<ReferrerPolicy>,
|
referrer_policy: Option<ReferrerPolicy>,
|
||||||
canceller: DomRefCell<FetchCanceller>,
|
canceller: DomRefCell<FetchCanceller>,
|
||||||
}
|
}
|
||||||
|
@ -168,11 +168,11 @@ pub struct XMLHttpRequest {
|
||||||
impl XMLHttpRequest {
|
impl XMLHttpRequest {
|
||||||
fn new_inherited(global: &GlobalScope) -> XMLHttpRequest {
|
fn new_inherited(global: &GlobalScope) -> XMLHttpRequest {
|
||||||
//TODO - update this when referrer policy implemented for workers
|
//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();
|
let document = window.Document();
|
||||||
(Some(document.url()), document.get_referrer_policy())
|
document.get_referrer_policy()
|
||||||
} else {
|
} else {
|
||||||
(None, None)
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
XMLHttpRequest {
|
XMLHttpRequest {
|
||||||
|
@ -206,7 +206,7 @@ impl XMLHttpRequest {
|
||||||
fetch_time: Cell::new(0),
|
fetch_time: Cell::new(0),
|
||||||
generation_id: Cell::new(GenerationId(0)),
|
generation_id: Cell::new(GenerationId(0)),
|
||||||
response_status: Cell::new(Ok(())),
|
response_status: Cell::new(Ok(())),
|
||||||
referrer_url: referrer_url,
|
referrer: global.get_referrer(),
|
||||||
referrer_policy: referrer_policy,
|
referrer_policy: referrer_policy,
|
||||||
canceller: DomRefCell::new(Default::default()),
|
canceller: DomRefCell::new(Default::default()),
|
||||||
}
|
}
|
||||||
|
@ -681,10 +681,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
|
||||||
|
|
||||||
let mut request = RequestBuilder::new(
|
let mut request = RequestBuilder::new(
|
||||||
self.request_url.borrow().clone().unwrap(),
|
self.request_url.borrow().clone().unwrap(),
|
||||||
self.referrer_url
|
self.referrer.clone(),
|
||||||
.clone()
|
|
||||||
.map(|url| Referrer::ReferrerUrl(url))
|
|
||||||
.unwrap_or_else(|| self.global().get_referrer()),
|
|
||||||
)
|
)
|
||||||
.method(self.request_method.borrow().clone())
|
.method(self.request_method.borrow().clone())
|
||||||
.headers((*self.request_headers.borrow()).clone())
|
.headers((*self.request_headers.borrow()).clone())
|
||||||
|
|
|
@ -60,7 +60,7 @@ use js::rust::CompileOptionsWrapper;
|
||||||
use js::rust::{Handle, HandleValue, IntoHandle};
|
use js::rust::{Handle, HandleValue, IntoHandle};
|
||||||
use mime::Mime;
|
use mime::Mime;
|
||||||
use net_traits::request::{CredentialsMode, Destination, ParserMetadata};
|
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::{FetchMetadata, Metadata};
|
||||||
use net_traits::{FetchResponseListener, NetworkError};
|
use net_traits::{FetchResponseListener, NetworkError};
|
||||||
use net_traits::{ResourceFetchTiming, ResourceTimingType};
|
use net_traits::{ResourceFetchTiming, ResourceTimingType};
|
||||||
|
@ -721,7 +721,6 @@ impl ModuleTree {
|
||||||
|
|
||||||
// Step 8.
|
// Step 8.
|
||||||
|
|
||||||
let referrer = global.get_referrer();
|
|
||||||
for url in urls {
|
for url in urls {
|
||||||
// https://html.spec.whatwg.org/multipage/#internal-module-script-graph-fetching-procedure
|
// https://html.spec.whatwg.org/multipage/#internal-module-script-graph-fetching-procedure
|
||||||
// Step 1.
|
// Step 1.
|
||||||
|
@ -733,7 +732,6 @@ impl ModuleTree {
|
||||||
url.clone(),
|
url.clone(),
|
||||||
visited_urls.clone(),
|
visited_urls.clone(),
|
||||||
destination.clone(),
|
destination.clone(),
|
||||||
referrer.clone(),
|
|
||||||
ParserMetadata::NotParserInserted,
|
ParserMetadata::NotParserInserted,
|
||||||
"".to_owned(), // integrity
|
"".to_owned(), // integrity
|
||||||
credentials_mode.clone(),
|
credentials_mode.clone(),
|
||||||
|
@ -1227,7 +1225,6 @@ pub fn fetch_external_module_script(
|
||||||
) {
|
) {
|
||||||
let mut visited_urls = HashSet::new();
|
let mut visited_urls = HashSet::new();
|
||||||
visited_urls.insert(url.clone());
|
visited_urls.insert(url.clone());
|
||||||
let referrer = owner.global().get_referrer();
|
|
||||||
|
|
||||||
// Step 1.
|
// Step 1.
|
||||||
fetch_single_module_script(
|
fetch_single_module_script(
|
||||||
|
@ -1235,7 +1232,6 @@ pub fn fetch_external_module_script(
|
||||||
url,
|
url,
|
||||||
visited_urls,
|
visited_urls,
|
||||||
destination,
|
destination,
|
||||||
referrer,
|
|
||||||
ParserMetadata::NotParserInserted,
|
ParserMetadata::NotParserInserted,
|
||||||
integrity_metadata,
|
integrity_metadata,
|
||||||
credentials_mode,
|
credentials_mode,
|
||||||
|
@ -1250,7 +1246,6 @@ pub fn fetch_single_module_script(
|
||||||
url: ServoUrl,
|
url: ServoUrl,
|
||||||
visited_urls: HashSet<ServoUrl>,
|
visited_urls: HashSet<ServoUrl>,
|
||||||
destination: Destination,
|
destination: Destination,
|
||||||
referrer: Referrer,
|
|
||||||
parser_metadata: ParserMetadata,
|
parser_metadata: ParserMetadata,
|
||||||
integrity_metadata: String,
|
integrity_metadata: String,
|
||||||
credentials_mode: CredentialsMode,
|
credentials_mode: CredentialsMode,
|
||||||
|
@ -1325,7 +1320,7 @@ pub fn fetch_single_module_script(
|
||||||
};
|
};
|
||||||
|
|
||||||
// Step 7-8.
|
// Step 7-8.
|
||||||
let request = RequestBuilder::new(url.clone(), referrer)
|
let request = RequestBuilder::new(url.clone(), global.get_referrer())
|
||||||
.destination(destination.clone())
|
.destination(destination.clone())
|
||||||
.origin(global.origin().immutable().clone())
|
.origin(global.origin().immutable().clone())
|
||||||
.parser_metadata(parser_metadata)
|
.parser_metadata(parser_metadata)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue