diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index d73076b21c7..d5541c99565 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -29,6 +29,7 @@ use http::header::{ CONTENT_TYPE, }; use http::{HeaderMap, Method, Request as HyperRequest, StatusCode}; +use hyper::ext::ReasonPhrase; use hyper::header::{HeaderName, TRANSFER_ENCODING}; use hyper::{Body, Client, Response as HyperResponse}; use hyper_serde::Serde; @@ -584,7 +585,7 @@ async fn obtain_response( }, }; - devtools_bytes.lock().unwrap().append(&mut bytes.clone()); + devtools_bytes.lock().unwrap().extend_from_slice(&bytes); // Step 5.1.2.2, transmit chunk over the network, // currently implemented by sending the bytes to the fetch worker. @@ -712,6 +713,7 @@ async fn obtain_response( debug!("Not notifying devtools (no request_id)"); None }; + future::ready(Ok((Decoder::detect(res, is_secure_scheme), msg))) }) .map_err(move |error| { @@ -1864,14 +1866,15 @@ async fn http_network_fetch( let timing = context.timing.lock().unwrap().clone(); let mut response = Response::new(url.clone(), timing); - response.status = HttpStatus::new( - res.status(), - res.status() - .canonical_reason() - .unwrap_or("") - .as_bytes() - .to_vec(), - ); + let status_text = res + .extensions() + .get::() + .map(ReasonPhrase::as_bytes) + .or_else(|| res.status().canonical_reason().map(str::as_bytes)) + .map(Vec::from) + .unwrap_or_default(); + response.status = HttpStatus::new(res.status(), status_text); + info!("got {:?} response for {:?}", res.status(), request.url()); response.headers = res.headers().clone(); response.referrer = request.referrer.to_url().cloned(); diff --git a/tests/wpt/meta/cors/status-async.htm.ini b/tests/wpt/meta/cors/status-async.htm.ini deleted file mode 100644 index 3decd82af0e..00000000000 --- a/tests/wpt/meta/cors/status-async.htm.ini +++ /dev/null @@ -1,36 +0,0 @@ -[status-async.htm] - [Status on GET 201] - expected: FAIL - - [Status on GET 202] - expected: FAIL - - [Status on GET 203] - expected: FAIL - - [Status on GET 204] - expected: FAIL - - [Status on GET 205] - expected: FAIL - - [Status on GET 206] - expected: FAIL - - [Status on GET 209] - expected: FAIL - - [Status on GET 299] - expected: FAIL - - [Status on GET 400] - expected: FAIL - - [Status on HEAD 401] - expected: FAIL - - [Status on POST 404] - expected: FAIL - - [Status on POST 500] - expected: FAIL diff --git a/tests/wpt/meta/fetch/content-length/api-and-duplicate-headers.any.js.ini b/tests/wpt/meta/fetch/content-length/api-and-duplicate-headers.any.js.ini index d9c34cced72..446cc52f350 100644 --- a/tests/wpt/meta/fetch/content-length/api-and-duplicate-headers.any.js.ini +++ b/tests/wpt/meta/fetch/content-length/api-and-duplicate-headers.any.js.ini @@ -1,15 +1,8 @@ [api-and-duplicate-headers.any.html] - [fetch() and duplicate Content-Length/Content-Type headers] - expected: FAIL - [XMLHttpRequest and duplicate Content-Length/Content-Type headers] expected: FAIL [api-and-duplicate-headers.any.worker.html] - [fetch() and duplicate Content-Length/Content-Type headers] - expected: FAIL - [XMLHttpRequest and duplicate Content-Length/Content-Type headers] expected: FAIL - diff --git a/tests/wpt/meta/xhr/send-conditional-cors.htm.ini b/tests/wpt/meta/xhr/send-conditional-cors.htm.ini deleted file mode 100644 index 38097d7f5af..00000000000 --- a/tests/wpt/meta/xhr/send-conditional-cors.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[send-conditional-cors.htm] - [304 with appropriate CORS header] - expected: FAIL diff --git a/tests/wpt/meta/xhr/send-conditional.htm.ini b/tests/wpt/meta/xhr/send-conditional.htm.ini deleted file mode 100644 index 717024068cb..00000000000 --- a/tests/wpt/meta/xhr/send-conditional.htm.ini +++ /dev/null @@ -1,6 +0,0 @@ -[send-conditional.htm] - [XMLHttpRequest: send() - conditional requests (tag)] - expected: FAIL - - [XMLHttpRequest: send() - conditional requests (date)] - expected: FAIL diff --git a/tests/wpt/meta/xhr/send-data-unexpected-tostring.htm.ini b/tests/wpt/meta/xhr/send-data-unexpected-tostring.htm.ini deleted file mode 100644 index 1d1d9f07a95..00000000000 --- a/tests/wpt/meta/xhr/send-data-unexpected-tostring.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[send-data-unexpected-tostring.htm] - [open() called from data stringification] - expected: FAIL diff --git a/tests/wpt/meta/xhr/send-redirect-no-location.htm.ini b/tests/wpt/meta/xhr/send-redirect-no-location.htm.ini deleted file mode 100644 index 127d52b90d0..00000000000 --- a/tests/wpt/meta/xhr/send-redirect-no-location.htm.ini +++ /dev/null @@ -1,12 +0,0 @@ -[send-redirect-no-location.htm] - [XMLHttpRequest: send() - Redirects (no Location header) (301)] - expected: FAIL - - [XMLHttpRequest: send() - Redirects (no Location header) (302)] - expected: FAIL - - [XMLHttpRequest: send() - Redirects (no Location header) (303)] - expected: FAIL - - [XMLHttpRequest: send() - Redirects (no Location header) (307)] - expected: FAIL diff --git a/tests/wpt/meta/xhr/status-async.htm.ini b/tests/wpt/meta/xhr/status-async.htm.ini deleted file mode 100644 index 36df0756125..00000000000 --- a/tests/wpt/meta/xhr/status-async.htm.ini +++ /dev/null @@ -1,81 +0,0 @@ -[status-async.htm] - [XMLHttpRequest: status/statusText - various responses 1 (GET 204)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 2 (HEAD 204)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 3 (CHICKEN 204)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 4 (GET 401)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 5 (HEAD 401)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 6 (CHICKEN 401)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 7 (GET 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 8 (HEAD 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 9 (CHICKEN 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 10 (GET 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 11 (HEAD 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 12 (CHICKEN 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 13 (GET 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 14 (HEAD 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 15 (CHICKEN 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 16 (GET 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 17 (HEAD 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 18 (CHICKEN 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 19 (GET 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 20 (HEAD 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 21 (CHICKEN 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 22 (GET 503)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 23 (HEAD 503)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 24 (CHICKEN 503)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 25 (GET 699)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 26 (HEAD 699)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 27 (CHICKEN 699)] - expected: FAIL diff --git a/tests/wpt/meta/xhr/status-basic.htm.ini b/tests/wpt/meta/xhr/status-basic.htm.ini deleted file mode 100644 index 8788fff20ff..00000000000 --- a/tests/wpt/meta/xhr/status-basic.htm.ini +++ /dev/null @@ -1,81 +0,0 @@ -[status-basic.htm] - [XMLHttpRequest: status/statusText - various responses 1 (GET 204)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 2 (HEAD 204)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 3 (CHICKEN 204)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 4 (GET 401)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 5 (HEAD 401)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 6 (CHICKEN 401)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 7 (GET 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 8 (HEAD 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 9 (CHICKEN 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 10 (GET 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 11 (HEAD 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 12 (CHICKEN 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 13 (GET 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 14 (HEAD 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 15 (CHICKEN 402)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 16 (GET 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 17 (HEAD 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 18 (CHICKEN 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 19 (GET 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 20 (HEAD 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 21 (CHICKEN 502)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 22 (GET 503)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 23 (HEAD 503)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 24 (CHICKEN 503)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 25 (GET 699)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 26 (HEAD 699)] - expected: FAIL - - [XMLHttpRequest: status/statusText - various responses 27 (CHICKEN 699)] - expected: FAIL