diff options
author | Chad Kimes <ckimes89@gmail.com> | 2016-01-10 22:34:44 -0500 |
---|---|---|
committer | Chad Kimes <ckimes89@gmail.com> | 2016-01-10 22:34:44 -0500 |
commit | 9371c041a320c9e660b8a71da30f3044c8401d2c (patch) | |
tree | bd952916062a2361920bd04b972023f15ebb8295 /components/script/dom/xmlhttprequest.rs | |
parent | 9b79f2f5a36086ce9d68dc65377cac6bde0d1c4a (diff) | |
download | servo-9371c041a320c9e660b8a71da30f3044c8401d2c.tar.gz servo-9371c041a320c9e660b8a71da30f3044c8401d2c.zip |
Remove global field from XMLHttpRequest
Diffstat (limited to 'components/script/dom/xmlhttprequest.rs')
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 854c9887d30..d5b70b8f171 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -16,7 +16,7 @@ use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams; use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eString, eURLSearchParams}; use dom::bindings::conversions::{ToJSValConvertible}; use dom::bindings::error::{Error, ErrorResult, Fallible}; -use dom::bindings::global::{GlobalField, GlobalRef, GlobalRoot}; +use dom::bindings::global::{GlobalRef, GlobalRoot, global_root_from_reflector}; use dom::bindings::inheritance::Castable; use dom::bindings::js::{JS, MutNullableHeap}; use dom::bindings::js::{Root, RootedReference}; @@ -141,7 +141,6 @@ pub struct XMLHttpRequest { upload_events: Cell<bool>, send_flag: Cell<bool>, - global: GlobalField, timeout_cancel: DOMRefCell<Option<TimerHandle>>, fetch_time: Cell<i64>, generation_id: Cell<GenerationId>, @@ -175,7 +174,6 @@ impl XMLHttpRequest { upload_events: Cell::new(false), send_flag: Cell::new(false), - global: GlobalField::from_rooted(&global), timeout_cancel: DOMRefCell::new(None), fetch_time: Cell::new(0), generation_id: Cell::new(GenerationId(0)), @@ -325,7 +323,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { *self.request_method.borrow_mut() = parsed_method; // Step 6 - let base = self.global.root().r().get_url(); + let base = global_root_from_reflector(self).r().get_url(); let parsed_url = match base.join(&url) { Ok(parsed) => parsed, Err(_) => return Err(Error::Syntax) // Step 7 @@ -457,7 +455,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { XMLHttpRequestState::Loading | XMLHttpRequestState::Done => Err(Error::InvalidState), _ if self.send_flag.get() => Err(Error::InvalidState), - _ => match self.global.root() { + _ => match global_root_from_reflector(self) { GlobalRoot::Window(_) if self.sync.get() => Err(Error::InvalidAccess), _ => { self.with_credentials.set(with_credentials); @@ -519,7 +517,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } - let global = self.global.root(); + let global = global_root_from_reflector(self); let pipeline_id = global.r().pipeline(); let mut load_data = LoadData::new(LoadContext::Browsing, @@ -562,8 +560,8 @@ impl XMLHttpRequestMethods for XMLHttpRequest { load_data.method = (*self.request_method.borrow()).clone(); // CORS stuff - let global = self.global.root(); - let referer_url = self.global.root().r().get_url(); + let global = global_root_from_reflector(self); + let referer_url = global_root_from_reflector(self).r().get_url(); let mode = if self.upload_events.get() { RequestMode::ForcedPreflight } else { @@ -686,7 +684,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { // https://xhr.spec.whatwg.org/#the-responsetype-attribute fn SetResponseType(&self, response_type: XMLHttpRequestResponseType) -> ErrorResult { - match self.global.root() { + match global_root_from_reflector(self) { GlobalRoot::Worker(_) if response_type == XMLHttpRequestResponseType::Document => return Ok(()), _ => {} @@ -789,7 +787,7 @@ impl XMLHttpRequest { fn change_ready_state(&self, rs: XMLHttpRequestState) { assert!(self.ready_state.get() != rs); self.ready_state.set(rs); - let global = self.global.root(); + let global = global_root_from_reflector(self); let event = Event::new(global.r(), atom!("readystatechange"), EventBubbles::DoesNotBubble, @@ -970,7 +968,7 @@ impl XMLHttpRequest { } fn dispatch_progress_event(&self, upload: bool, type_: Atom, loaded: u64, total: Option<u64>) { - let global = self.global.root(); + let global = global_root_from_reflector(self); let progressevent = ProgressEvent::new(global.r(), type_, EventBubbles::DoesNotBubble, @@ -1024,7 +1022,7 @@ impl XMLHttpRequest { // Sets up the object to timeout in a given number of milliseconds // This will cancel all previous timeouts - let global = self.global.root(); + let global = global_root_from_reflector(self); let callback = ScheduledXHRTimeout { xhr: Trusted::new(self, global.r().networking_thread_source()), generation_id: self.generation_id.get(), @@ -1035,7 +1033,7 @@ impl XMLHttpRequest { fn cancel_timeout(&self) { if let Some(handle) = self.timeout_cancel.borrow_mut().take() { - let global = self.global.root(); + let global = global_root_from_reflector(self); global.r().unschedule_callback(handle); } } @@ -1084,7 +1082,7 @@ impl XMLHttpRequest { fn document_text_html(&self) -> Root<Document>{ let charset = self.final_charset().unwrap_or(UTF_8); - let wr = self.global.root(); + let wr = global_root_from_reflector(self); let wr = wr.r(); let decoded = charset.decode(&self.response.borrow(), DecoderTrap::Replace).unwrap().to_owned(); let document = self.new_doc(IsHTMLDocument::HTMLDocument); @@ -1095,7 +1093,7 @@ impl XMLHttpRequest { fn handle_xml(&self) -> Root<Document> { let charset = self.final_charset().unwrap_or(UTF_8); - let wr = self.global.root(); + let wr = global_root_from_reflector(self); let wr = wr.r(); let decoded = charset.decode(&self.response.borrow(), DecoderTrap::Replace).unwrap().to_owned(); let document = self.new_doc(IsHTMLDocument::NonHTMLDocument); @@ -1105,13 +1103,13 @@ impl XMLHttpRequest { } fn new_doc(&self, is_html_document: IsHTMLDocument) -> Root<Document> { - let wr = self.global.root(); + let wr = global_root_from_reflector(self); let wr = wr.r(); let win = wr.as_window(); let doc = win.Document(); let doc = doc.r(); let docloader = DocumentLoader::new(&*doc.loader()); - let base = self.global.root().r().get_url(); + let base = global_root_from_reflector(self).r().get_url(); let parsed_url = match base.join(&self.ResponseURL()) { Ok(parsed) => Some(parsed), Err(_) => None // Step 7 |