aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/image_cache_thread.rs
diff options
context:
space:
mode:
authorRahul Sharma <rsconceptx@gmail.com>2016-05-01 01:11:15 +0530
committerRahul Sharma <rsconceptx@gmail.com>2016-05-20 12:11:56 +0530
commit3766cd167365187bfabbb00f5dc41ba923fe23d4 (patch)
treeeab0537f67250ec1d07814263c8a83e85bdc6411 /components/net/image_cache_thread.rs
parentbcea0ada27de694cd0c465d04fd35eba70503d62 (diff)
downloadservo-3766cd167365187bfabbb00f5dc41ba923fe23d4.tar.gz
servo-3766cd167365187bfabbb00f5dc41ba923fe23d4.zip
adding interface for custom responses
Diffstat (limited to 'components/net/image_cache_thread.rs')
-rw-r--r--components/net/image_cache_thread.rs26
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,