diff options
author | Patrick Shaughnessy <pshaughn@comcast.net> | 2020-01-25 17:47:47 -0500 |
---|---|---|
committer | Patrick Shaughnessy <pshaughn@comcast.net> | 2020-01-25 19:12:19 -0500 |
commit | 52d8336d7fc3d3451a9049da09c4c58a7a13a441 (patch) | |
tree | fe0f921e654ca5215d27d7c81c63df4145b8257b | |
parent | 937efba0cd6662b4e0060e7056c52dac2896535c (diff) | |
download | servo-52d8336d7fc3d3451a9049da09c4c58a7a13a441.tar.gz servo-52d8336d7fc3d3451a9049da09c4c58a7a13a441.zip |
do less on abort if not done
4 files changed, 15 insertions, 29 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 1e8176cb781..08b37c946c5 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -758,7 +758,12 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } } // Step 3 - self.ready_state.set(XMLHttpRequestState::Unsent); + if self.ready_state.get() == XMLHttpRequestState::Done { + self.change_ready_state(XMLHttpRequestState::Unsent); + self.response_status.set(Err(())); + self.response.borrow_mut().clear(); + self.response_headers.borrow_mut().clear(); + } } // https://xhr.spec.whatwg.org/#the-responseurl-attribute @@ -961,13 +966,15 @@ impl XMLHttpRequest { fn change_ready_state(&self, rs: XMLHttpRequestState) { assert_ne!(self.ready_state.get(), rs); self.ready_state.set(rs); - let event = Event::new( - &self.global(), - atom!("readystatechange"), - EventBubbles::DoesNotBubble, - EventCancelable::Cancelable, - ); - event.fire(self.upcast()); + if rs != XMLHttpRequestState::Unsent { + let event = Event::new( + &self.global(), + atom!("readystatechange"), + EventBubbles::DoesNotBubble, + EventCancelable::Cancelable, + ); + event.fire(self.upcast()); + } } fn process_headers_available( diff --git a/tests/wpt/metadata/xhr/abort-during-open.any.js.ini b/tests/wpt/metadata/xhr/abort-during-open.any.js.ini deleted file mode 100644 index db9cfa6ab19..00000000000 --- a/tests/wpt/metadata/xhr/abort-during-open.any.js.ini +++ /dev/null @@ -1,9 +0,0 @@ -[abort-during-open.any.worker.html] - [XMLHttpRequest: abort() during OPEN] - expected: FAIL - - -[abort-during-open.any.html] - [XMLHttpRequest: abort() during OPEN] - expected: FAIL - diff --git a/tests/wpt/metadata/xhr/abort-event-abort.any.js.ini b/tests/wpt/metadata/xhr/abort-event-abort.any.js.ini deleted file mode 100644 index 2c9fd921d01..00000000000 --- a/tests/wpt/metadata/xhr/abort-event-abort.any.js.ini +++ /dev/null @@ -1,9 +0,0 @@ -[abort-event-abort.any.html] - [XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset.] - expected: FAIL - - -[abort-event-abort.any.worker.html] - [XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset.] - expected: FAIL - diff --git a/tests/wpt/metadata/xhr/send-data-unexpected-tostring.htm.ini b/tests/wpt/metadata/xhr/send-data-unexpected-tostring.htm.ini index 8fa623e7c06..464ac7716b5 100644 --- a/tests/wpt/metadata/xhr/send-data-unexpected-tostring.htm.ini +++ b/tests/wpt/metadata/xhr/send-data-unexpected-tostring.htm.ini @@ -1,8 +1,5 @@ [send-data-unexpected-tostring.htm] type: testharness - [abort() called from data stringification] - expected: FAIL - [open() called from data stringification] expected: FAIL |