mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Add meta-referrer support for documents
This commit is contained in:
parent
d0f5a5fd74
commit
687d0cd7c3
56 changed files with 136 additions and 263 deletions
|
@ -148,10 +148,20 @@ pub struct XMLHttpRequest {
|
|||
fetch_time: Cell<i64>,
|
||||
generation_id: Cell<GenerationId>,
|
||||
response_status: Cell<Result<(), ()>>,
|
||||
referrer_url: Option<Url>,
|
||||
referrer_policy: Option<ReferrerPolicy>,
|
||||
}
|
||||
|
||||
impl XMLHttpRequest {
|
||||
fn new_inherited(global: GlobalRef) -> XMLHttpRequest {
|
||||
//TODO - update this when referrer policy implemented for workers
|
||||
let (referrer_url, referrer_policy) = if let GlobalRef::Window(window) = global {
|
||||
let document = window.Document();
|
||||
(Some(document.url().clone()), document.get_referrer_policy())
|
||||
} else {
|
||||
(None, None)
|
||||
};
|
||||
|
||||
XMLHttpRequest {
|
||||
eventtarget: XMLHttpRequestEventTarget::new_inherited(),
|
||||
ready_state: Cell::new(XMLHttpRequestState::Unsent),
|
||||
|
@ -183,6 +193,8 @@ impl XMLHttpRequest {
|
|||
fetch_time: Cell::new(0),
|
||||
generation_id: Cell::new(GenerationId(0)),
|
||||
response_status: Cell::new(Ok(())),
|
||||
referrer_url: referrer_url,
|
||||
referrer_policy: referrer_policy,
|
||||
}
|
||||
}
|
||||
pub fn new(global: GlobalRef) -> Root<XMLHttpRequest> {
|
||||
|
@ -297,10 +309,10 @@ impl XMLHttpRequest {
|
|||
|
||||
impl LoadOrigin for XMLHttpRequest {
|
||||
fn referrer_url(&self) -> Option<Url> {
|
||||
None
|
||||
return self.referrer_url.clone();
|
||||
}
|
||||
fn referrer_policy(&self) -> Option<ReferrerPolicy> {
|
||||
None
|
||||
return self.referrer_policy;
|
||||
}
|
||||
fn request_source(&self) -> RequestSource {
|
||||
if self.sync.get() {
|
||||
|
@ -592,11 +604,12 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
|
|||
|
||||
// Step 5
|
||||
let global = self.global();
|
||||
//TODO - set referrer_policy/referrer_url in load_data
|
||||
|
||||
let mut load_data =
|
||||
LoadData::new(LoadContext::Browsing,
|
||||
self.request_url.borrow().clone().unwrap(),
|
||||
self);
|
||||
|
||||
if load_data.url.origin().ne(&global.r().get_url().origin()) {
|
||||
load_data.credentials_flag = self.WithCredentials();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue