diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2014-07-19 21:32:03 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2014-07-19 21:32:03 +0530 |
commit | cf7e9c1a3be327e6ece3eeb26b83493ff730d754 (patch) | |
tree | 972739ec93f590072c5be601dc30ce60ee142ab0 /src/components/script/dom | |
parent | ca968219025a46e57b5cd770ae7c8ac5919876b1 (diff) | |
download | servo-cf7e9c1a3be327e6ece3eeb26b83493ff730d754.tar.gz servo-cf7e9c1a3be327e6ece3eeb26b83493ff730d754.zip |
Check for worker scope in responseText setter
Diffstat (limited to 'src/components/script/dom')
-rw-r--r-- | src/components/script/dom/xmlhttprequest.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/components/script/dom/xmlhttprequest.rs b/src/components/script/dom/xmlhttprequest.rs index 4487d4160d5..5f26e51bba0 100644 --- a/src/components/script/dom/xmlhttprequest.rs +++ b/src/components/script/dom/xmlhttprequest.rs @@ -5,12 +5,12 @@ use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::codegen::Bindings::XMLHttpRequestBinding; use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseType; -use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseTypeValues::{_empty, Json, Text}; +use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestResponseTypeValues::{_empty, Document, Json, Text}; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, XMLHttpRequestDerived}; use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::{Error, ErrorResult, Fallible, InvalidState, InvalidAccess}; use dom::bindings::error::{Network, Syntax, Security, Abort, Timeout}; -use dom::bindings::global::{GlobalField, GlobalRef}; +use dom::bindings::global::{GlobalField, GlobalRef, WorkerField}; use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootedRootable}; use dom::bindings::str::ByteString; use dom::bindings::trace::{Traceable, Untraceable}; @@ -592,8 +592,10 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> { self.response_type.deref().get() } fn SetResponseType(&self, response_type: XMLHttpRequestResponseType) -> ErrorResult { - // FIXME: When Workers are implemented, there should be - // an additional check that this is a document environment + match self.global { + WorkerField(_) if response_type == Document => return Ok(()), + _ => {} + } match self.ready_state.deref().get() { Loading | XHRDone => Err(InvalidState), _ if self.sync.deref().get() => Err(InvalidAccess), |