mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
XHR - Trigger readystatechange when transitioning from HEADERS_RECEIVED to DONE
Fixes #3877
This commit is contained in:
parent
44fa9f9b18
commit
dc02352564
9 changed files with 33 additions and 102 deletions
|
@ -890,8 +890,8 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
|
|||
},
|
||||
LoadingMsg(_, partial_response) => {
|
||||
// For synchronous requests, this should not fire any events, and just store data
|
||||
// Part of step 13, send() (processing response body)
|
||||
// XXXManishearth handle errors, if any (substep 1)
|
||||
// Part of step 11, send() (processing response body)
|
||||
// XXXManishearth handle errors, if any (substep 2)
|
||||
|
||||
*self.response.borrow_mut() = partial_response;
|
||||
if !self.sync.get() {
|
||||
|
@ -903,22 +903,23 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
|
|||
}
|
||||
},
|
||||
DoneMsg(_) => {
|
||||
// Part of step 13, send() (processing response end of file)
|
||||
// XXXManishearth handle errors, if any (substep 1)
|
||||
assert!(self.ready_state.get() == HeadersReceived ||
|
||||
self.ready_state.get() == Loading ||
|
||||
self.sync.get());
|
||||
|
||||
// Substep 3
|
||||
if self.ready_state.get() == Loading || self.sync.get() {
|
||||
// Subsubsteps 2-4
|
||||
// Part of step 11, send() (processing response end of file)
|
||||
// XXXManishearth handle errors, if any (substep 2)
|
||||
|
||||
// Subsubsteps 5-7
|
||||
self.send_flag.set(false);
|
||||
self.change_ready_state(XHRDone);
|
||||
return_if_fetch_was_terminated!();
|
||||
// Subsubsteps 5-7
|
||||
// Subsubsteps 10-12
|
||||
self.dispatch_response_progress_event("progress".to_string());
|
||||
return_if_fetch_was_terminated!();
|
||||
self.dispatch_response_progress_event("load".to_string());
|
||||
return_if_fetch_was_terminated!();
|
||||
self.dispatch_response_progress_event("loadend".to_string());
|
||||
}
|
||||
},
|
||||
ErroredMsg(_, e) => {
|
||||
self.send_flag.set(false);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[anonymous-mode-unsupported.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: anonymous mode unsupported]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
[open-after-setrequestheader.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: open() after setRequestHeader()]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,3 +1,8 @@
|
|||
[response-json.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[JSON object roundtrip]
|
||||
expected: FAIL
|
||||
|
||||
[JSON roundtrip with Japanese text]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
[send-entity-body-get-head-async.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: send() - non-empty data argument and GET/HEAD - async, no upload events should fire (GET)]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[XMLHttpRequest: send() - non-empty data argument and GET/HEAD - async, no upload events should fire (HEAD)]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
[send-no-response-event-loadend.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: The send() method: Fire a progress event named loadend (no response entity body)]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[send-no-response-event-order.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: The send() method: event order when there is no response entity body]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,3 +1,8 @@
|
|||
[status-async.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: status/statusText - various responses 7 (GET 402)]
|
||||
expected: FAIL
|
||||
|
||||
[XMLHttpRequest: status/statusText - various responses 9 (CHICKEN 402)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
[status-error.htm]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[XMLHttpRequest: status error handling GET 200]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling GET 400]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling GET 401]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling GET 404]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling GET 410]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling GET 500]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling GET 699]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling HEAD 200]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling HEAD 404]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling HEAD 500]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling HEAD 699]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling POST 200]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling POST 404]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling POST 500]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling POST 699]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling PUT 200]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling PUT 404]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling PUT 500]
|
||||
expected: TIMEOUT
|
||||
|
||||
[XMLHttpRequest: status error handling PUT 699]
|
||||
expected: TIMEOUT
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue