mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
servo: Merge #10167 - Fix fetching about:blank (from stjepang:fix-aboutblank-body); r=KiChjang
When fetching about:blank, response body should be the empty byte sequence. Spec: https://fetch.spec.whatwg.org/#concept-basic-fetch Before this change, response body would be set to `ResponseBody::Empty`, and then fetching would result in an infinite loop at step 19 in fn `main_fetch` (methods.rs). r? @KiChjang Source-Repo: https://github.com/servo/servo Source-Revision: 446783f7b6f0b55164b3b3c3e8be90c2b392cf97
This commit is contained in:
parent
197775e7f4
commit
50512a2a04
@ -294,6 +294,7 @@ fn basic_fetch(request: Rc<Request>) -> Response {
|
|||||||
response.headers.set(ContentType(Mime(
|
response.headers.set(ContentType(Mime(
|
||||||
TopLevel::Text, SubLevel::Html,
|
TopLevel::Text, SubLevel::Html,
|
||||||
vec![(Attr::Charset, Value::Utf8)])));
|
vec![(Attr::Charset, Value::Utf8)])));
|
||||||
|
*response.body.lock().unwrap() = ResponseBody::Done(vec![]);
|
||||||
response
|
response
|
||||||
},
|
},
|
||||||
_ => Response::network_error()
|
_ => Response::network_error()
|
||||||
|
@ -94,6 +94,20 @@ fn test_fetch_response_body_matches_const_message() {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_fetch_aboutblank() {
|
||||||
|
|
||||||
|
let url = Url::parse("about:blank").unwrap();
|
||||||
|
let origin = Origin::Origin(url.origin());
|
||||||
|
let mut request = Request::new(url, Some(origin), false);
|
||||||
|
request.referer = Referer::NoReferer;
|
||||||
|
let wrapped_request = Rc::new(request);
|
||||||
|
|
||||||
|
let fetch_response = fetch(wrapped_request);
|
||||||
|
assert!(!fetch_response.is_network_error());
|
||||||
|
assert!(*fetch_response.body.lock().unwrap() == ResponseBody::Done(vec![]));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_fetch_response_is_basic_filtered() {
|
fn test_fetch_response_is_basic_filtered() {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user