diff options
Diffstat (limited to 'components/net/image_cache_thread.rs')
-rw-r--r-- | components/net/image_cache_thread.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/components/net/image_cache_thread.rs b/components/net/image_cache_thread.rs index 6ecf32f5730..3991c5553ac 100644 --- a/components/net/image_cache_thread.rs +++ b/components/net/image_cache_thread.rs @@ -5,12 +5,13 @@ use immeta::load_from_buf; use ipc_channel::ipc::{self, IpcSender, IpcReceiver}; use ipc_channel::router::ROUTER; +use msg::constellation_msg::{PipelineId, ReferrerPolicy}; use net_traits::image::base::{Image, ImageMetadata, load_from_memory, PixelFormat}; use net_traits::image_cache_thread::ImageResponder; use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheCommand, ImageCacheThread, ImageState}; use net_traits::image_cache_thread::{ImageCacheResult, ImageOrMetadataAvailable, ImageResponse, UsePlaceholder}; -use net_traits::{AsyncResponseTarget, CoreResourceMsg, LoadConsumer, LoadData, CoreResourceThread}; -use net_traits::{ResponseAction, LoadContext, NetworkError}; +use net_traits::{AsyncResponseTarget, CoreResourceMsg, LoadConsumer, LoadData, CoreResourceThread, LoadOrigin}; +use net_traits::{ResponseAction, LoadContext, NetworkError, RequestSource}; use std::borrow::ToOwned; use std::collections::HashMap; use std::collections::hash_map::Entry::{Occupied, Vacant}; @@ -304,6 +305,23 @@ fn convert_format(format: PixelFormat) -> webrender_traits::ImageFormat { } } +struct ImageCacheOrigin; +impl LoadOrigin for ImageCacheOrigin { + fn referrer_url(&self) -> Option<Url> { + None + } + fn referrer_policy(&self) -> Option<ReferrerPolicy> { + None + } + fn request_source(&self) -> RequestSource { + RequestSource::None + } + fn pipeline_id(&self) -> Option<PipelineId> { + None + } +} + + impl ImageCache { fn run(core_resource_thread: CoreResourceThread, webrender_api: Option<webrender_traits::RenderApi>, @@ -520,7 +538,9 @@ impl ImageCache { CacheResult::Miss => { // A new load request! Request the load from // the resource thread. - let load_data = LoadData::new(LoadContext::Image, (*ref_url).clone(), None, None, None); + let load_data = LoadData::new(LoadContext::Image, + (*ref_url).clone(), + &ImageCacheOrigin); let (action_sender, action_receiver) = ipc::channel().unwrap(); let response_target = AsyncResponseTarget { sender: action_sender, |