aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim van der Meij <timvandermeij@gmail.com>2016-02-05 23:22:45 +0100
committerTim van der Meij <timvandermeij@gmail.com>2016-02-06 22:33:42 +0100
commit816c65aab09be4890d077856ec975454d04b0dfe (patch)
tree1ba7f22e5c267892e5b566db5b6fe1ccfefe53e7
parent289232ef61ee928014f5c88fcaff4187865769e8 (diff)
downloadservo-816c65aab09be4890d077856ec975454d04b0dfe.tar.gz
servo-816c65aab09be4890d077856ec975454d04b0dfe.zip
Make step 3 of XHR's SetResponseType method match the specification
-rw-r--r--components/script/dom/xmlhttprequest.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 93e46d14510..2e948f44bfa 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -675,16 +675,18 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
// https://xhr.spec.whatwg.org/#the-responsetype-attribute
fn SetResponseType(&self, response_type: XMLHttpRequestResponseType) -> ErrorResult {
match self.global() {
- GlobalRoot::Worker(_) if response_type == XMLHttpRequestResponseType::Document
- => return Ok(()),
+ GlobalRoot::Worker(_) if response_type == XMLHttpRequestResponseType::Document => return Ok(()),
_ => {}
}
match self.ready_state.get() {
XMLHttpRequestState::Loading | XMLHttpRequestState::Done => Err(Error::InvalidState),
- _ if self.sync.get() => Err(Error::InvalidAccess),
_ => {
- self.response_type.set(response_type);
- Ok(())
+ if let (GlobalRoot::Window(_), true) = (self.global(), self.sync.get()) {
+ Err(Error::InvalidAccess)
+ } else {
+ self.response_type.set(response_type);
+ Ok(())
+ }
}
}
}