diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2017-03-16 11:08:09 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2017-03-27 19:54:13 +0200 |
commit | 72d7ee613b4777d15c28350d68729054a44060e6 (patch) | |
tree | b9c0e18004c3b20bfcbfbb7beb188e06012a8c94 /components/script/dom/window.rs | |
parent | 9eb6bb78b0dc7ab0f79f7dc992764225c8dcac1d (diff) | |
download | servo-72d7ee613b4777d15c28350d68729054a44060e6.tar.gz servo-72d7ee613b4777d15c28350d68729054a44060e6.zip |
Make image cache per-document rather than global
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 9f25edc3a07..a21d09c97ec 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -62,8 +62,8 @@ use js::rust::Runtime; use layout_image::fetch_image_for_layout; use msg::constellation_msg::{FrameType, PipelineId}; use net_traits::{ResourceThreads, ReferrerPolicy}; -use net_traits::image_cache_thread::{ImageResponder, ImageResponse}; -use net_traits::image_cache_thread::{PendingImageResponse, ImageCacheThread, PendingImageId}; +use net_traits::image_cache::{ImageCache, ImageResponder, ImageResponse}; +use net_traits::image_cache::{PendingImageId, PendingImageResponse}; use net_traits::storage_thread::StorageType; use num_traits::ToPrimitive; use open; @@ -167,8 +167,8 @@ pub struct Window { #[ignore_heap_size_of = "task sources are hard"] file_reading_task_source: FileReadingTaskSource, navigator: MutNullableJS<Navigator>, - #[ignore_heap_size_of = "channels are hard"] - image_cache_thread: ImageCacheThread, + #[ignore_heap_size_of = "Arc"] + image_cache: Arc<ImageCache>, #[ignore_heap_size_of = "channels are hard"] image_cache_chan: Sender<ImageCacheMsg>, browsing_context: MutNullableJS<BrowsingContext>, @@ -315,8 +315,8 @@ impl Window { (box SendableMainThreadScriptChan(tx), box rx) } - pub fn image_cache_thread(&self) -> &ImageCacheThread { - &self.image_cache_thread + pub fn image_cache(&self) -> Arc<ImageCache> { + self.image_cache.clone() } /// This can panic if it is called after the browsing context has been discarded @@ -1227,7 +1227,7 @@ impl Window { let node = from_untrusted_node_address(js_runtime.rt(), image.node); if let PendingImageState::Unrequested(ref url) = image.state { - fetch_image_for_layout(url.clone(), &*node, id, self.image_cache_thread.clone()); + fetch_image_for_layout(url.clone(), &*node, id, self.image_cache.clone()); } let mut images = self.pending_layout_images.borrow_mut(); @@ -1239,7 +1239,7 @@ impl Window { ROUTER.add_route(responder_listener.to_opaque(), box move |message| { let _ = image_cache_chan.send((pipeline, message.to().unwrap())); }); - self.image_cache_thread.add_listener(id, ImageResponder::new(responder, id)); + self.image_cache.add_listener(id, ImageResponder::new(responder, id)); nodes.push(JS::from_ref(&*node)); } } @@ -1703,7 +1703,7 @@ impl Window { history_task_source: HistoryTraversalTaskSource, file_task_source: FileReadingTaskSource, image_cache_chan: Sender<ImageCacheMsg>, - image_cache_thread: ImageCacheThread, + image_cache: Arc<ImageCache>, resource_threads: ResourceThreads, bluetooth_thread: IpcSender<BluetoothRequest>, mem_profiler_chan: MemProfilerChan, @@ -1747,8 +1747,8 @@ impl Window { history_traversal_task_source: history_task_source, file_reading_task_source: file_task_source, image_cache_chan: image_cache_chan, + image_cache: image_cache.clone(), navigator: Default::default(), - image_cache_thread: image_cache_thread, history: Default::default(), browsing_context: Default::default(), document: Default::default(), |