From 816c65aab09be4890d077856ec975454d04b0dfe Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Fri, 5 Feb 2016 23:22:45 +0100 Subject: [PATCH] Make step 3 of XHR's SetResponseType method match the specification --- components/script/dom/xmlhttprequest.rs | 12 +++++++----- 1 file 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(()) + } } } }