mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
auto merge of #2526 : Manishearth/servo/event-order, r=Ms2ger
For the wpt test [event_load](https://github.com/w3c/web-platform-tests/blob/master/XMLHttpRequest/event-load.htm) Blocks #2525
This commit is contained in:
commit
a90f1e3773
1 changed files with 26 additions and 4 deletions
|
@ -577,34 +577,56 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
|
||||||
match progress {
|
match progress {
|
||||||
HeadersReceivedMsg(headers) => {
|
HeadersReceivedMsg(headers) => {
|
||||||
// XXXManishearth Find a way to track partial progress of the send (onprogresss for XHRUpload)
|
// XXXManishearth Find a way to track partial progress of the send (onprogresss for XHRUpload)
|
||||||
|
|
||||||
|
// Part of step 13, send() (processing request end of file)
|
||||||
|
// Substep 1
|
||||||
self.upload_complete = true;
|
self.upload_complete = true;
|
||||||
|
|
||||||
|
// Substeps 2-4
|
||||||
self.dispatch_upload_progress_event("progress".to_owned(), None);
|
self.dispatch_upload_progress_event("progress".to_owned(), None);
|
||||||
self.dispatch_upload_progress_event("load".to_owned(), None);
|
self.dispatch_upload_progress_event("load".to_owned(), None);
|
||||||
self.dispatch_upload_progress_event("loadend".to_owned(), None);
|
self.dispatch_upload_progress_event("loadend".to_owned(), None);
|
||||||
|
|
||||||
|
// Part of step 13, send() (processing response)
|
||||||
|
// XXXManishearth handle errors, if any (substep 1)
|
||||||
|
// Substep 2 (only headers)
|
||||||
match headers {
|
match headers {
|
||||||
Some(ref h) => *self.response_headers = h.clone(),
|
Some(ref h) => *self.response_headers = h.clone(),
|
||||||
None => {}
|
None => {}
|
||||||
};
|
};
|
||||||
|
// Substep 3
|
||||||
if self.ready_state == Opened {
|
if self.ready_state == Opened {
|
||||||
self.change_ready_state(HeadersReceived);
|
self.change_ready_state(HeadersReceived);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
LoadingMsg(partial_response) => {
|
LoadingMsg(partial_response) => {
|
||||||
self.response = partial_response;
|
// Part of step 13, send() (processing response body)
|
||||||
self.dispatch_response_progress_event("progress".to_owned());
|
// XXXManishearth handle errors, if any (substep 1)
|
||||||
|
|
||||||
|
// Substep 2
|
||||||
if self.ready_state == HeadersReceived {
|
if self.ready_state == HeadersReceived {
|
||||||
self.change_ready_state(Loading);
|
self.change_ready_state(Loading);
|
||||||
}
|
}
|
||||||
|
// Substep 3
|
||||||
|
self.response = partial_response;
|
||||||
|
// Substep 4
|
||||||
|
self.dispatch_response_progress_event("progress".to_owned());
|
||||||
},
|
},
|
||||||
DoneMsg => {
|
DoneMsg => {
|
||||||
|
// Part of step 13, send() (processing response end of file)
|
||||||
|
// XXXManishearth handle errors, if any (substep 1)
|
||||||
|
|
||||||
|
// Substep 3
|
||||||
if self.ready_state == Loading {
|
if self.ready_state == Loading {
|
||||||
|
// Subsubsteps 2-4
|
||||||
|
self.send_flag = false;
|
||||||
|
self.change_ready_state(XHRDone);
|
||||||
|
|
||||||
|
// Subsubsteps 5-7
|
||||||
let len = self.response.len() as u64;
|
let len = self.response.len() as u64;
|
||||||
self.dispatch_response_progress_event("progress".to_owned());
|
self.dispatch_response_progress_event("progress".to_owned());
|
||||||
self.dispatch_response_progress_event("load".to_owned());
|
self.dispatch_response_progress_event("load".to_owned());
|
||||||
self.dispatch_response_progress_event("loadend".to_owned());
|
self.dispatch_response_progress_event("loadend".to_owned());
|
||||||
self.send_flag = false;
|
|
||||||
self.change_ready_state(XHRDone);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ErroredMsg => {
|
ErroredMsg => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue