mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
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
This commit is contained in:
commit
05a57848ad
1 changed files with 15 additions and 8 deletions
|
@ -285,7 +285,9 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> {
|
||||||
// XXXManishearth Set response to a NetworkError
|
// XXXManishearth Set response to a NetworkError
|
||||||
|
|
||||||
// Step 13
|
// Step 13
|
||||||
self.change_ready_state(Opened);
|
if self.ready_state != Opened {
|
||||||
|
self.change_ready_state(Opened);
|
||||||
|
}
|
||||||
//XXXManishearth fire a progressevent
|
//XXXManishearth fire a progressevent
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
|
@ -562,6 +564,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn change_ready_state(&mut self, rs: XMLHttpRequestState) {
|
fn change_ready_state(&mut self, rs: XMLHttpRequestState) {
|
||||||
|
assert!(self.ready_state != rs)
|
||||||
self.ready_state = rs;
|
self.ready_state = rs;
|
||||||
let win = &*self.global.root();
|
let win = &*self.global.root();
|
||||||
let mut event =
|
let mut event =
|
||||||
|
@ -583,7 +586,9 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
|
||||||
Some(ref h) => *self.response_headers = h.clone(),
|
Some(ref h) => *self.response_headers = h.clone(),
|
||||||
None => {}
|
None => {}
|
||||||
};
|
};
|
||||||
self.change_ready_state(HeadersReceived);
|
if self.ready_state == Opened {
|
||||||
|
self.change_ready_state(HeadersReceived);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
LoadingMsg(partial_response) => {
|
LoadingMsg(partial_response) => {
|
||||||
self.response = partial_response;
|
self.response = partial_response;
|
||||||
|
@ -593,12 +598,14 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
DoneMsg => {
|
DoneMsg => {
|
||||||
let len = self.response.len() as u64;
|
if self.ready_state == Loading {
|
||||||
self.dispatch_response_progress_event("progress".to_owned());
|
let len = self.response.len() as u64;
|
||||||
self.dispatch_response_progress_event("load".to_owned());
|
self.dispatch_response_progress_event("progress".to_owned());
|
||||||
self.dispatch_response_progress_event("loadend".to_owned());
|
self.dispatch_response_progress_event("load".to_owned());
|
||||||
self.send_flag = false;
|
self.dispatch_response_progress_event("loadend".to_owned());
|
||||||
self.change_ready_state(XHRDone);
|
self.send_flag = false;
|
||||||
|
self.change_ready_state(XHRDone);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
ErroredMsg => {
|
ErroredMsg => {
|
||||||
self.send_flag = false;
|
self.send_flag = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue