Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update fetch methods #17521

Merged
merged 10 commits into from Aug 19, 2017

Add location_url to Metadata struct

  • Loading branch information
KiChjang committed Aug 18, 2017
commit 5b69d18fcaa940e3ea33b5d2e764258b01b2254d
@@ -103,6 +103,7 @@ impl NetworkListener {

self.res_init = Some(ResponseInit {
url: metadata.final_url.clone(),
location_url: metadata.location_url.clone(),
headers: headers.clone().into_inner(),
referrer: metadata.referrer.clone(),
});
@@ -411,6 +411,9 @@ pub struct Metadata {
/// Final URL after redirects.
pub final_url: ServoUrl,

/// Location URL from the response headers.
pub location_url: Option<Result<ServoUrl, String>>,

#[ignore_heap_size_of = "Defined in hyper"]
/// MIME type / subtype.
pub content_type: Option<Serde<ContentType>>,
@@ -440,6 +443,7 @@ impl Metadata {
pub fn default(url: ServoUrl) -> Self {
Metadata {
final_url: url,
location_url: None,
content_type: None,
charset: None,
headers: None,
@@ -82,6 +82,7 @@ pub struct ResponseInit {
#[ignore_heap_size_of = "Defined in hyper"]
pub headers: Headers,
pub referrer: Option<ServoUrl>,
pub location_url: Option<Result<ServoUrl, String>>,
}

/// A [Response](https://fetch.spec.whatwg.org/#concept-response) as defined by the Fetch spec
@@ -138,6 +139,7 @@ impl Response {

pub fn from_init(init: ResponseInit) -> Response {
let mut res = Response::new(init.url);
res.location_url = init.location_url;
res.headers = init.headers;
res.referrer = init.referrer;
res
@@ -287,6 +289,7 @@ impl Response {
Some(&ContentType(ref mime)) => Some(mime),
None => None,
});
metadata.location_url = response.location_url.clone();
metadata.headers = Some(Serde(response.headers.clone()));
metadata.status = response.raw_status.clone();
metadata.https_state = response.https_state;
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.