diff options
author | Kshitij Parajuli <kshitijparajuli@gmail.com> | 2014-11-15 13:16:37 -0500 |
---|---|---|
committer | Kshitij Parajuli <kshitijparajuli@gmail.com> | 2014-11-28 12:35:49 -0500 |
commit | f5e9ae17cfc9e5fc9b04b765f613b78085404823 (patch) | |
tree | 37ad824d26860bb2255e2cf8f02a8fcb44ccf739 /components/script/dom | |
parent | 82050d1e535681ea993e4290d02bcf4b9f4ee5a2 (diff) | |
download | servo-f5e9ae17cfc9e5fc9b04b765f613b78085404823.tar.gz servo-f5e9ae17cfc9e5fc9b04b765f613b78085404823.zip |
Shared Sniffer Task
- Added TargetedLoadResponse and ResponseSenders
- LoadData constructor contains the next consumer which means
SnifferManager doesn't need the next consumer to start
- New SnifferTask is created at new resource_task creation
- Update Unit Tests
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 7b43541a660..0bbc96e72c9 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -44,7 +44,7 @@ use js::jsval::{JSVal, NullValue, UndefinedValue}; use libc; use libc::c_void; -use net::resource_task::{ResourceTask, ResourceCORSData, Load, LoadData, Payload, Done}; +use net::resource_task::{ResourceTask, ResourceCORSData, Load, LoadData, LoadResponse, Payload, Done}; use cors::{allow_cross_origin_request, CORSRequest, CORSMode, ForcedPreflightMode}; use script_task::{ScriptChan, XHRProgressMsg, XHRReleaseMsg}; use servo_util::str::DOMString; @@ -207,7 +207,8 @@ impl XMLHttpRequest { fn fetch(fetch_type: &SyncOrAsync, resource_task: ResourceTask, mut load_data: LoadData, terminate_receiver: Receiver<TerminateReason>, - cors_request: Result<Option<CORSRequest>,()>, gen_id: GenerationId) -> ErrorResult { + cors_request: Result<Option<CORSRequest>,()>, gen_id: GenerationId, + start_port: Receiver<LoadResponse>) -> ErrorResult { fn notify_partial_progress(fetch_type: &SyncOrAsync, msg: XHRProgress) { match *fetch_type { @@ -277,8 +278,7 @@ impl XMLHttpRequest { } // Step 10, 13 - let (start_chan, start_port) = channel(); - resource_task.send(Load(load_data, start_chan)); + resource_task.send(Load(load_data)); let progress_port; @@ -557,7 +557,8 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { let global = self.global.root(); let resource_task = global.root_ref().resource_task(); - let mut load_data = LoadData::new(self.request_url.borrow().clone().unwrap()); + let (start_chan, start_port) = channel(); + let mut load_data = LoadData::new(self.request_url.borrow().clone().unwrap(), start_chan); load_data.data = extracted; // Default headers @@ -620,7 +621,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { let gen_id = self.generation_id.get(); if self.sync.get() { return XMLHttpRequest::fetch(&mut Sync(self), resource_task, load_data, - terminate_receiver, cors_request, gen_id); + terminate_receiver, cors_request, gen_id, start_port); } else { self.fetch_time.set(time::now().to_timespec().sec); let script_chan = global.root_ref().script_chan().clone(); @@ -638,7 +639,8 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { load_data, terminate_receiver, cors_request, - gen_id); + gen_id, + start_port); let ScriptChan(ref chan) = script_chan; chan.send(XHRReleaseMsg(addr)); }); |