aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/window.rs
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2017-03-16 11:08:09 +0100
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2017-03-27 19:54:13 +0200
commit72d7ee613b4777d15c28350d68729054a44060e6 (patch)
treeb9c0e18004c3b20bfcbfbb7beb188e06012a8c94 /components/script/dom/window.rs
parent9eb6bb78b0dc7ab0f79f7dc992764225c8dcac1d (diff)
downloadservo-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.rs20
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(),