diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 869820e0ca6..da3c069c1f4 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -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 - self.send_flag.set(false); - self.change_ready_state(XHRDone); - return_if_fetch_was_terminated!(); - // Subsubsteps 5-7 - 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()); - } + // 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 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); diff --git a/tests/wpt/metadata/XMLHttpRequest/anonymous-mode-unsupported.htm.ini b/tests/wpt/metadata/XMLHttpRequest/anonymous-mode-unsupported.htm.ini index 68ac527cf9b..23151d36cc8 100644 --- a/tests/wpt/metadata/XMLHttpRequest/anonymous-mode-unsupported.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/anonymous-mode-unsupported.htm.ini @@ -1,6 +1,5 @@ [anonymous-mode-unsupported.htm] type: testharness - expected: TIMEOUT [XMLHttpRequest: anonymous mode unsupported] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/XMLHttpRequest/open-after-setrequestheader.htm.ini b/tests/wpt/metadata/XMLHttpRequest/open-after-setrequestheader.htm.ini deleted file mode 100644 index fe5723848be..00000000000 --- a/tests/wpt/metadata/XMLHttpRequest/open-after-setrequestheader.htm.ini +++ /dev/null @@ -1,6 +0,0 @@ -[open-after-setrequestheader.htm] - type: testharness - expected: TIMEOUT - [XMLHttpRequest: open() after setRequestHeader()] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/XMLHttpRequest/response-json.htm.ini b/tests/wpt/metadata/XMLHttpRequest/response-json.htm.ini index 42aad34531e..9e2c61415ff 100644 --- a/tests/wpt/metadata/XMLHttpRequest/response-json.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/response-json.htm.ini @@ -1,3 +1,8 @@ [response-json.htm] type: testharness - expected: TIMEOUT + [JSON object roundtrip] + expected: FAIL + + [JSON roundtrip with Japanese text] + expected: FAIL + diff --git a/tests/wpt/metadata/XMLHttpRequest/send-entity-body-get-head-async.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-entity-body-get-head-async.htm.ini index 06ade2dcc38..a33d84371f9 100644 --- a/tests/wpt/metadata/XMLHttpRequest/send-entity-body-get-head-async.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/send-entity-body-get-head-async.htm.ini @@ -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 diff --git a/tests/wpt/metadata/XMLHttpRequest/send-no-response-event-loadend.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-no-response-event-loadend.htm.ini deleted file mode 100644 index 08affb449bf..00000000000 --- a/tests/wpt/metadata/XMLHttpRequest/send-no-response-event-loadend.htm.ini +++ /dev/null @@ -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 - diff --git a/tests/wpt/metadata/XMLHttpRequest/send-no-response-event-order.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-no-response-event-order.htm.ini deleted file mode 100644 index 4536937ac85..00000000000 --- a/tests/wpt/metadata/XMLHttpRequest/send-no-response-event-order.htm.ini +++ /dev/null @@ -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 - diff --git a/tests/wpt/metadata/XMLHttpRequest/status-async.htm.ini b/tests/wpt/metadata/XMLHttpRequest/status-async.htm.ini index 10840674376..9113fc4c36d 100644 --- a/tests/wpt/metadata/XMLHttpRequest/status-async.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/status-async.htm.ini @@ -1,3 +1,4 @@ [status-async.htm] type: testharness - expected: TIMEOUT + disabled: issue 3596 + diff --git a/tests/wpt/metadata/XMLHttpRequest/status-error.htm.ini b/tests/wpt/metadata/XMLHttpRequest/status-error.htm.ini index ea460a761aa..039a9e8c2df 100644 --- a/tests/wpt/metadata/XMLHttpRequest/status-error.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/status-error.htm.ini @@ -1,60 +1,4 @@ [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 + disabled: issue 3596