Skip to content

Commit

Permalink
Add location_url to Metadata struct
Browse files Browse the repository at this point in the history
  • Loading branch information
KiChjang committed Aug 18, 2017
1 parent d6c197b commit 5b69d18
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions components/constellation/network_listener.rs
Expand Up @@ -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(),
});
Expand Down
4 changes: 4 additions & 0 deletions components/net_traits/lib.rs
Expand Up @@ -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>>,
Expand Down Expand Up @@ -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,
Expand Down
3 changes: 3 additions & 0 deletions components/net_traits/response.rs
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 5b69d18

Please sign in to comment.