mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Save http response reason instead of inferring it from status code (#34694)
* Don't unnecessarily clone responses twice when sending them to devtools Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Store http response reason instead of inferring it later Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update wpt expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
2caee9ae42
commit
ba56494eec
9 changed files with 12 additions and 238 deletions
|
@ -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::<ReasonPhrase>()
|
||||
.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();
|
||||
|
|
36
tests/wpt/meta/cors/status-async.htm.ini
vendored
36
tests/wpt/meta/cors/status-async.htm.ini
vendored
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[send-conditional-cors.htm]
|
||||
[304 with appropriate CORS header]
|
||||
expected: FAIL
|
6
tests/wpt/meta/xhr/send-conditional.htm.ini
vendored
6
tests/wpt/meta/xhr/send-conditional.htm.ini
vendored
|
@ -1,6 +0,0 @@
|
|||
[send-conditional.htm]
|
||||
[XMLHttpRequest: send() - conditional requests (tag)]
|
||||
expected: FAIL
|
||||
|
||||
[XMLHttpRequest: send() - conditional requests (date)]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[send-data-unexpected-tostring.htm]
|
||||
[open() called from data stringification]
|
||||
expected: FAIL
|
|
@ -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
|
81
tests/wpt/meta/xhr/status-async.htm.ini
vendored
81
tests/wpt/meta/xhr/status-async.htm.ini
vendored
|
@ -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
|
81
tests/wpt/meta/xhr/status-basic.htm.ini
vendored
81
tests/wpt/meta/xhr/status-basic.htm.ini
vendored
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue