mirror of
https://github.com/servo/servo.git
synced 2025-08-01 03:30:33 +01:00
Add useful debug information to image cache.
This commit is contained in:
parent
646d48a2a1
commit
b174a684d1
1 changed files with 25 additions and 10 deletions
|
@ -414,6 +414,7 @@ impl ImageCache {
|
||||||
(FetchResponseMsg::ProcessRequestEOF, _) => return,
|
(FetchResponseMsg::ProcessRequestEOF, _) => return,
|
||||||
(FetchResponseMsg::ProcessResponse(_response), _) => {}
|
(FetchResponseMsg::ProcessResponse(_response), _) => {}
|
||||||
(FetchResponseMsg::ProcessResponseChunk(data), _) => {
|
(FetchResponseMsg::ProcessResponseChunk(data), _) => {
|
||||||
|
debug!("got some data for {:?}", msg.key);
|
||||||
let pending_load = self.pending_loads.get_by_key_mut(&msg.key).unwrap();
|
let pending_load = self.pending_loads.get_by_key_mut(&msg.key).unwrap();
|
||||||
pending_load.bytes.extend_from_slice(&data);
|
pending_load.bytes.extend_from_slice(&data);
|
||||||
//jmr0 TODO: possibly move to another task?
|
//jmr0 TODO: possibly move to another task?
|
||||||
|
@ -430,12 +431,14 @@ impl ImageCache {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(FetchResponseMsg::ProcessResponseEOF(result), key) => {
|
(FetchResponseMsg::ProcessResponseEOF(result), key) => {
|
||||||
|
debug!("received EOF for {:?}", key);
|
||||||
match result {
|
match result {
|
||||||
Ok(()) => {
|
Ok(()) => {
|
||||||
let pending_load = self.pending_loads.get_by_key_mut(&msg.key).unwrap();
|
let pending_load = self.pending_loads.get_by_key_mut(&msg.key).unwrap();
|
||||||
pending_load.result = Some(result);
|
pending_load.result = Some(result);
|
||||||
let bytes = pending_load.bytes.mark_complete();
|
let bytes = pending_load.bytes.mark_complete();
|
||||||
let sender = self.decoder_sender.clone();
|
let sender = self.decoder_sender.clone();
|
||||||
|
debug!("async decoding {} ({:?})", pending_load.url, key);
|
||||||
|
|
||||||
self.thread_pool.execute(move || {
|
self.thread_pool.execute(move || {
|
||||||
let msg = decode_bytes_sync(key, &*bytes);
|
let msg = decode_bytes_sync(key, &*bytes);
|
||||||
|
@ -443,6 +446,7 @@ impl ImageCache {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
|
debug!("processing error for {:?}", key);
|
||||||
match self.placeholder_image.clone() {
|
match self.placeholder_image.clone() {
|
||||||
Some(placeholder_image) => {
|
Some(placeholder_image) => {
|
||||||
self.complete_load(msg.key, LoadResult::PlaceholderLoaded(
|
self.complete_load(msg.key, LoadResult::PlaceholderLoaded(
|
||||||
|
@ -553,6 +557,7 @@ impl ImageCache {
|
||||||
can_request: CanRequestImages)
|
can_request: CanRequestImages)
|
||||||
-> Result<ImageOrMetadataAvailable, ImageState> {
|
-> Result<ImageOrMetadataAvailable, ImageState> {
|
||||||
if let Some(result) = self.get_completed_image_if_available(&url, placeholder) {
|
if let Some(result) = self.get_completed_image_if_available(&url, placeholder) {
|
||||||
|
debug!("{} is available", url);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -560,17 +565,27 @@ impl ImageCache {
|
||||||
let result = self.pending_loads.get_cached(url.clone(), can_request);
|
let result = self.pending_loads.get_cached(url.clone(), can_request);
|
||||||
match result {
|
match result {
|
||||||
CacheResult::Hit(key, pl) => match (&pl.result, &pl.metadata) {
|
CacheResult::Hit(key, pl) => match (&pl.result, &pl.metadata) {
|
||||||
(&Some(Ok(_)), _) =>
|
(&Some(Ok(_)), _) => {
|
||||||
decode_bytes_sync(key, &pl.bytes.as_slice()),
|
debug!("sync decoding {} ({:?})", url, key);
|
||||||
(&None, &Some(ref meta)) =>
|
decode_bytes_sync(key, &pl.bytes.as_slice())
|
||||||
return Ok(ImageOrMetadataAvailable::MetadataAvailable(meta.clone())),
|
}
|
||||||
(&Some(Err(_)), _) | (&None, &None) =>
|
(&None, &Some(ref meta)) => {
|
||||||
return Err(ImageState::Pending(key)),
|
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))) =>
|
CacheResult::Miss(Some((key, _pl))) => {
|
||||||
return Err(ImageState::NotRequested(key)),
|
debug!("should be requesting {} ({:?})", url, key);
|
||||||
CacheResult::Miss(None) =>
|
return Err(ImageState::NotRequested(key));
|
||||||
return Err(ImageState::LoadError),
|
}
|
||||||
|
CacheResult::Miss(None) => {
|
||||||
|
debug!("couldn't find an entry for {}", url);
|
||||||
|
return Err(ImageState::LoadError);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue