Auto merge of #9562 - timvandermeij:setresponsetype-spec, r=KiChjang

Make step 3 of XHR's SetResponseType method match the specification

Fixes #9552.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9562)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-02-07 03:15:31 +05:30
commit 2f52a168ca

View file

@ -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(())
}
}
}
}