Chromium Code Reviews| Index: cc/tiles/checker_image_tracker.h |
| diff --git a/cc/tiles/checker_image_tracker.h b/cc/tiles/checker_image_tracker.h |
| index 3bc29f55294421ede816ae4debcfdc02d8be642c..5072ce4ee8e51a013295a2bd04f9869f89393f24 100644 |
| --- a/cc/tiles/checker_image_tracker.h |
| +++ b/cc/tiles/checker_image_tracker.h |
| @@ -54,14 +54,23 @@ class CC_EXPORT CheckerImageTracker { |
| void DidActivateSyncTree(); |
| private: |
| + enum class AsyncDecodeVetoState { |
|
vmpstr
2017/04/11 18:42:55
s/AsyncDecodeVetoState/DecodePolicy/
Khushal
2017/04/12 20:31:17
Done.
|
| + // The image can be decoded asynchronously from raster. |
| + ASYNC, |
| + // The image has been decoded asynchronously once and should now be |
| + // synchronously rasterized with the content. |
| + SYNC_DECODED_ONCE, |
|
vmpstr
2017/04/11 18:42:55
Is there any semantic difference between the last
Khushal
2017/04/12 20:31:17
Done.
|
| + // The image has been permanently vetoed from being decoded async. |
| + SYNC_PERMANENT, |
| + }; |
| + |
| void DidFinishImageDecode(ImageId image_id, |
| ImageController::ImageDecodeRequestId request_id, |
| ImageController::ImageDecodeResult result); |
| // Returns true if the decode for |image| will be deferred to the image decode |
| // service and it should be be skipped during raster. |
| - bool ShouldCheckerImage(const sk_sp<const SkImage>& image, |
| - WhichTree tree) const; |
| + bool ShouldCheckerImage(const sk_sp<const SkImage>& image, WhichTree tree); |
| void ScheduleImageDecodeIfNecessary(const sk_sp<const SkImage>& image); |
| @@ -82,12 +91,11 @@ class CC_EXPORT CheckerImageTracker { |
| // do a PrepareTiles? See crbug.com/689184. |
| ImageIdFlatSet pending_image_decodes_; |
| - // A set of images which have been decoded at least once from the |
| - // ImageDecodeService and should not be checkered again. |
| + // A map of ImageId to its permitted AsyncDecodeVetoState. |
|
vmpstr
2017/04/11 18:42:55
nit: s/permitted //
Khushal
2017/04/12 20:31:17
Done.
|
| // TODO(khushalsagar): Limit the size of this set. |
| // TODO(khushalsagar): Plumb navigation changes here to reset this. See |
| // crbug.com/693228. |
| - std::unordered_set<ImageId> images_decoded_once_; |
| + std::unordered_map<ImageId, AsyncDecodeVetoState> image_async_decode_state_; |
| // A map of image id to image decode request id for images to be unlocked. |
| std::unordered_map<ImageId, ImageController::ImageDecodeRequestId> |