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/net/image_cache_task.rs | |
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/net/image_cache_task.rs')
-rw-r--r-- | components/net/image_cache_task.rs | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/components/net/image_cache_task.rs b/components/net/image_cache_task.rs index 2f31aac04fc..d2fa908e47c 100644 --- a/components/net/image_cache_task.rs +++ b/components/net/image_cache_task.rs @@ -443,7 +443,7 @@ impl ImageCacheTask { fn load_image_data(url: Url, resource_task: ResourceTask) -> Result<Vec<u8>, ()> { let (response_chan, response_port) = channel(); - resource_task.send(resource_task::Load(LoadData::new(url), response_chan)); + resource_task.send(resource_task::Load(LoadData::new(url, response_chan))); let mut image_data = vec!(); @@ -481,7 +481,8 @@ mod tests { use super::*; use resource_task; - use resource_task::{ResourceTask, Metadata, start_sending}; + use resource_task::{ResourceTask, Metadata, start_sending, ResponseSenders}; + use sniffer_task; use image::base::test_image_bin; use servo_util::taskpool::TaskPool; use std::comm; @@ -557,8 +558,13 @@ mod tests { spawn_listener(proc(port: Receiver<resource_task::ControlMsg>) { loop { match port.recv() { - resource_task::Load(_, response) => { - let chan = start_sending(response, Metadata::default( + resource_task::Load(response) => { + let sniffer_task = sniffer_task::new_sniffer_task(); + let senders = ResponseSenders { + immediate_consumer: sniffer_task, + eventual_consumer: response.consumer.clone(), + }; + let chan = start_sending(senders, Metadata::default( Url::parse("file:///fake").unwrap())); on_load.invoke(chan); } @@ -708,8 +714,13 @@ mod tests { let mock_resource_task = spawn_listener(proc(port: Receiver<resource_task::ControlMsg>) { loop { match port.recv() { - resource_task::Load(_, response) => { - let chan = start_sending(response, Metadata::default( + resource_task::Load(response) => { + let sniffer_task = sniffer_task::new_sniffer_task(); + let senders = ResponseSenders { + immediate_consumer: sniffer_task, + eventual_consumer: response.consumer.clone(), + }; + let chan = start_sending(senders, Metadata::default( Url::parse("file:///fake").unwrap())); chan.send(resource_task::Payload(test_image_bin())); chan.send(resource_task::Done(Ok(()))); @@ -755,8 +766,13 @@ mod tests { let mock_resource_task = spawn_listener(proc(port: Receiver<resource_task::ControlMsg>) { loop { match port.recv() { - resource_task::Load(_, response) => { - let chan = start_sending(response, Metadata::default( + resource_task::Load(response) => { + let sniffer_task = sniffer_task::new_sniffer_task(); + let senders = ResponseSenders { + immediate_consumer: sniffer_task, + eventual_consumer: response.consumer.clone(), + }; + let chan = start_sending(senders, Metadata::default( Url::parse("file:///fake").unwrap())); chan.send(resource_task::Payload(test_image_bin())); chan.send(resource_task::Done(Err("".to_string()))); |