aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/image_cache_thread.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2017-02-17 16:46:17 -0500
committerJosh Matthews <josh@joshmatthews.net>2017-02-22 14:19:35 -0500
commitb174a684d1b0d2c745d672c46baafe421af37d51 (patch)
tree142fa542ad7d4e8469270caa813e2c003c514eba /components/net/image_cache_thread.rs
parent646d48a2a154202c99455657413ea9294710f253 (diff)
downloadservo-b174a684d1b0d2c745d672c46baafe421af37d51.tar.gz
servo-b174a684d1b0d2c745d672c46baafe421af37d51.zip
Add useful debug information to image cache.
Diffstat (limited to 'components/net/image_cache_thread.rs')
-rw-r--r--components/net/image_cache_thread.rs35
1 files changed, 25 insertions, 10 deletions
diff --git a/components/net/image_cache_thread.rs b/components/net/image_cache_thread.rs
index 798c2ba0f61..5beacb8a1a4 100644
--- a/components/net/image_cache_thread.rs
+++ b/components/net/image_cache_thread.rs
@@ -414,6 +414,7 @@ impl ImageCache {
(FetchResponseMsg::ProcessRequestEOF, _) => return,
(FetchResponseMsg::ProcessResponse(_response), _) => {}
(FetchResponseMsg::ProcessResponseChunk(data), _) => {
+ debug!("got some data for {:?}", msg.key);
let pending_load = self.pending_loads.get_by_key_mut(&msg.key).unwrap();
pending_load.bytes.extend_from_slice(&data);
//jmr0 TODO: possibly move to another task?
@@ -430,12 +431,14 @@ impl ImageCache {
}
}
(FetchResponseMsg::ProcessResponseEOF(result), key) => {
+ debug!("received EOF for {:?}", key);
match result {
Ok(()) => {
let pending_load = self.pending_loads.get_by_key_mut(&msg.key).unwrap();
pending_load.result = Some(result);
let bytes = pending_load.bytes.mark_complete();
let sender = self.decoder_sender.clone();
+ debug!("async decoding {} ({:?})", pending_load.url, key);
self.thread_pool.execute(move || {
let msg = decode_bytes_sync(key, &*bytes);
@@ -443,6 +446,7 @@ impl ImageCache {
});
}
Err(_) => {
+ debug!("processing error for {:?}", key);
match self.placeholder_image.clone() {
Some(placeholder_image) => {
self.complete_load(msg.key, LoadResult::PlaceholderLoaded(
@@ -553,6 +557,7 @@ impl ImageCache {
can_request: CanRequestImages)
-> Result<ImageOrMetadataAvailable, ImageState> {
if let Some(result) = self.get_completed_image_if_available(&url, placeholder) {
+ debug!("{} is available", url);
return result;
}
@@ -560,17 +565,27 @@ impl ImageCache {
let result = self.pending_loads.get_cached(url.clone(), can_request);
match result {
CacheResult::Hit(key, pl) => match (&pl.result, &pl.metadata) {
- (&Some(Ok(_)), _) =>
- decode_bytes_sync(key, &pl.bytes.as_slice()),
- (&None, &Some(ref meta)) =>
- return Ok(ImageOrMetadataAvailable::MetadataAvailable(meta.clone())),
- (&Some(Err(_)), _) | (&None, &None) =>
- return Err(ImageState::Pending(key)),
+ (&Some(Ok(_)), _) => {
+ debug!("sync decoding {} ({:?})", url, key);
+ decode_bytes_sync(key, &pl.bytes.as_slice())
+ }
+ (&None, &Some(ref meta)) => {
+ debug!("metadata available for {} ({:?})", url, key);
+ return Ok(ImageOrMetadataAvailable::MetadataAvailable(meta.clone()))
+ }
+ (&Some(Err(_)), _) | (&None, &None) => {
+ debug!("{} ({:?}) is still pending", url, key);
+ return Err(ImageState::Pending(key));
+ }
},
- CacheResult::Miss(Some((key, _pl))) =>
- return Err(ImageState::NotRequested(key)),
- CacheResult::Miss(None) =>
- return Err(ImageState::LoadError),
+ CacheResult::Miss(Some((key, _pl))) => {
+ debug!("should be requesting {} ({:?})", url, key);
+ return Err(ImageState::NotRequested(key));
+ }
+ CacheResult::Miss(None) => {
+ debug!("couldn't find an entry for {}", url);
+ return Err(ImageState::LoadError);
+ }
}
};