aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2014-07-19 21:32:03 +0530
committerManish Goregaokar <manishsmail@gmail.com>2014-07-19 21:32:03 +0530
commitcf7e9c1a3be327e6ece3eeb26b83493ff730d754 (patch)
tree972739ec93f590072c5be601dc30ce60ee142ab0 /src/components/script/dom
parentca968219025a46e57b5cd770ae7c8ac5919876b1 (diff)
downloadservo-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.rs10
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),