mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Properly set the url on the Response object when the response is an opaqueredirect
This commit is contained in:
parent
b290ad95c1
commit
ec665d9dce
8 changed files with 10 additions and 100 deletions
|
@ -592,7 +592,7 @@ impl ImageCache for ImageCacheImpl {
|
||||||
FilteredMetadata::Basic(_) | FilteredMetadata::Cors(_) => {
|
FilteredMetadata::Basic(_) | FilteredMetadata::Cors(_) => {
|
||||||
CorsStatus::Safe
|
CorsStatus::Safe
|
||||||
},
|
},
|
||||||
FilteredMetadata::Opaque | FilteredMetadata::OpaqueRedirect => {
|
FilteredMetadata::Opaque | FilteredMetadata::OpaqueRedirect(_) => {
|
||||||
CorsStatus::Unsafe
|
CorsStatus::Unsafe
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -186,7 +186,7 @@ pub enum FilteredMetadata {
|
||||||
Basic(Metadata),
|
Basic(Metadata),
|
||||||
Cors(Metadata),
|
Cors(Metadata),
|
||||||
Opaque,
|
Opaque,
|
||||||
OpaqueRedirect,
|
OpaqueRedirect(ServoUrl),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
|
|
|
@ -341,7 +341,7 @@ impl Response {
|
||||||
unsafe_: unsafe_metadata,
|
unsafe_: unsafe_metadata,
|
||||||
}),
|
}),
|
||||||
ResponseType::OpaqueRedirect => Ok(FetchMetadata::Filtered {
|
ResponseType::OpaqueRedirect => Ok(FetchMetadata::Filtered {
|
||||||
filtered: FilteredMetadata::OpaqueRedirect,
|
filtered: FilteredMetadata::OpaqueRedirect(url.clone()),
|
||||||
unsafe_: unsafe_metadata,
|
unsafe_: unsafe_metadata,
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
|
@ -340,7 +340,7 @@ impl FetchResponseListener for EventSourceContext {
|
||||||
let meta = match fm {
|
let meta = match fm {
|
||||||
FetchMetadata::Unfiltered(m) => m,
|
FetchMetadata::Unfiltered(m) => m,
|
||||||
FetchMetadata::Filtered { unsafe_, filtered } => match filtered {
|
FetchMetadata::Filtered { unsafe_, filtered } => match filtered {
|
||||||
FilteredMetadata::Opaque | FilteredMetadata::OpaqueRedirect => {
|
FilteredMetadata::Opaque | FilteredMetadata::OpaqueRedirect(_) => {
|
||||||
return self.fail_the_connection()
|
return self.fail_the_connection()
|
||||||
},
|
},
|
||||||
_ => unsafe_,
|
_ => unsafe_,
|
||||||
|
|
|
@ -984,7 +984,7 @@ impl XMLHttpRequest {
|
||||||
FilteredMetadata::Basic(m) => m,
|
FilteredMetadata::Basic(m) => m,
|
||||||
FilteredMetadata::Cors(m) => m,
|
FilteredMetadata::Cors(m) => m,
|
||||||
FilteredMetadata::Opaque => return Err(Error::Network),
|
FilteredMetadata::Opaque => return Err(Error::Network),
|
||||||
FilteredMetadata::OpaqueRedirect => return Err(Error::Network),
|
FilteredMetadata::OpaqueRedirect(_) => return Err(Error::Network),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
|
|
|
@ -246,10 +246,10 @@ impl FetchResponseListener for FetchContext {
|
||||||
.root()
|
.root()
|
||||||
.set_type(DOMResponseType::Opaque);
|
.set_type(DOMResponseType::Opaque);
|
||||||
},
|
},
|
||||||
FilteredMetadata::OpaqueRedirect => {
|
FilteredMetadata::OpaqueRedirect(url) => {
|
||||||
self.response_object
|
let r = self.response_object.root();
|
||||||
.root()
|
r.set_type(DOMResponseType::Opaqueredirect);
|
||||||
.set_type(DOMResponseType::Opaqueredirect);
|
r.set_final_url(url);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -101,7 +101,7 @@ impl FetchResponseListener for StylesheetContext {
|
||||||
fn process_response(&mut self, metadata: Result<FetchMetadata, NetworkError>) {
|
fn process_response(&mut self, metadata: Result<FetchMetadata, NetworkError>) {
|
||||||
if let Ok(FetchMetadata::Filtered { ref filtered, .. }) = metadata {
|
if let Ok(FetchMetadata::Filtered { ref filtered, .. }) = metadata {
|
||||||
match *filtered {
|
match *filtered {
|
||||||
FilteredMetadata::Opaque | FilteredMetadata::OpaqueRedirect => {
|
FilteredMetadata::Opaque | FilteredMetadata::OpaqueRedirect(_) => {
|
||||||
self.origin_clean = false;
|
self.origin_clean = false;
|
||||||
},
|
},
|
||||||
_ => {},
|
_ => {},
|
||||||
|
|
|
@ -1,123 +1,33 @@
|
||||||
[redirect-mode.any.worker.html]
|
[redirect-mode.any.worker.html]
|
||||||
[same-origin redirect 301 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 301 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 302 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 302 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 303 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 303 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 307 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 307 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 308 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 308 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 301 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 301 in manual redirect and no-cors mode]
|
[cross-origin redirect 301 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 302 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 302 in manual redirect and no-cors mode]
|
[cross-origin redirect 302 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 303 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 303 in manual redirect and no-cors mode]
|
[cross-origin redirect 303 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 307 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 307 in manual redirect and no-cors mode]
|
[cross-origin redirect 307 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 308 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 308 in manual redirect and no-cors mode]
|
[cross-origin redirect 308 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
||||||
[redirect-mode.any.html]
|
[redirect-mode.any.html]
|
||||||
[same-origin redirect 301 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 301 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 302 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 302 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 303 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 303 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 307 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 307 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 308 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[same-origin redirect 308 in manual redirect and no-cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 301 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 301 in manual redirect and no-cors mode]
|
[cross-origin redirect 301 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 302 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 302 in manual redirect and no-cors mode]
|
[cross-origin redirect 302 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 303 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 303 in manual redirect and no-cors mode]
|
[cross-origin redirect 303 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 307 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 307 in manual redirect and no-cors mode]
|
[cross-origin redirect 307 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[cross-origin redirect 308 in manual redirect and cors mode]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[cross-origin redirect 308 in manual redirect and no-cors mode]
|
[cross-origin redirect 308 in manual redirect and no-cors mode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue