diff options
author | Tim van der Meij <timvandermeij@gmail.com> | 2016-02-05 23:22:45 +0100 |
---|---|---|
committer | Tim van der Meij <timvandermeij@gmail.com> | 2016-02-06 22:33:42 +0100 |
commit | 816c65aab09be4890d077856ec975454d04b0dfe (patch) | |
tree | 1ba7f22e5c267892e5b566db5b6fe1ccfefe53e7 | |
parent | 289232ef61ee928014f5c88fcaff4187865769e8 (diff) | |
download | servo-816c65aab09be4890d077856ec975454d04b0dfe.tar.gz servo-816c65aab09be4890d077856ec975454d04b0dfe.zip |
Make step 3 of XHR's SetResponseType method match the specification
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 12 |
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(()) + } } } } |