aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-06-02 11:37:29 -0400
committerbors-servo <release+servo@mozilla.com>2014-06-02 11:37:29 -0400
commit05a57848ad91dffcac011224656cd345af1dccd6 (patch)
tree926ee7aa05598326234e63c57aa4af95c02fb623 /src
parent8c73f252cab7ec5506d7d0cb22ea52f3ed2b613c (diff)
parentbd3d7087fdb28cb434221449a0cc127400546462 (diff)
downloadservo-05a57848ad91dffcac011224656cd345af1dccd6.tar.gz
servo-05a57848ad91dffcac011224656cd345af1dccd6.zip
auto merge of #2527 : Manishearth/servo/xhr-wpt-ready-state, r=Ms2ger
For the wpt test [open-open-send.htm](https://github.com/w3c/web-platform-tests/blob/master/XMLHttpRequest/open-open-send.htm) Blocks #2525
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/xmlhttprequest.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/components/script/dom/xmlhttprequest.rs b/src/components/script/dom/xmlhttprequest.rs
index a0986d14f70..02ae75e87dc 100644
--- a/src/components/script/dom/xmlhttprequest.rs
+++ b/src/components/script/dom/xmlhttprequest.rs
@@ -285,7 +285,9 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> {
// XXXManishearth Set response to a NetworkError
// Step 13
- self.change_ready_state(Opened);
+ if self.ready_state != Opened {
+ self.change_ready_state(Opened);
+ }
//XXXManishearth fire a progressevent
Ok(())
},
@@ -562,6 +564,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
}
fn change_ready_state(&mut self, rs: XMLHttpRequestState) {
+ assert!(self.ready_state != rs)
self.ready_state = rs;
let win = &*self.global.root();
let mut event =
@@ -583,7 +586,9 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
Some(ref h) => *self.response_headers = h.clone(),
None => {}
};
- self.change_ready_state(HeadersReceived);
+ if self.ready_state == Opened {
+ self.change_ready_state(HeadersReceived);
+ }
},
LoadingMsg(partial_response) => {
self.response = partial_response;
@@ -593,12 +598,14 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
}
},
DoneMsg => {
- let len = self.response.len() as u64;
- self.dispatch_response_progress_event("progress".to_owned());
- self.dispatch_response_progress_event("load".to_owned());
- self.dispatch_response_progress_event("loadend".to_owned());
- self.send_flag = false;
- self.change_ready_state(XHRDone);
+ if self.ready_state == Loading {
+ let len = self.response.len() as u64;
+ self.dispatch_response_progress_event("progress".to_owned());
+ self.dispatch_response_progress_event("load".to_owned());
+ self.dispatch_response_progress_event("loadend".to_owned());
+ self.send_flag = false;
+ self.change_ready_state(XHRDone);
+ }
},
ErroredMsg => {
self.send_flag = false;