Commit fe5d3906 authored by Khushal's avatar Khushal Committed by Commit Bot

cc: Clear decoding image hints map with async decode state.

We should clear these maps on every navigation to keep them from growing
unbounded, and because its safe to clear this state after a navigation.

R=ericrk@chromium.org

Bug: 1003886
Change-Id: I68dae1d564039c27795e63ac18144ea955bac8ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1804515
Commit-Queue: Khushal <khushalsagar@chromium.org>
Auto-Submit: Khushal <khushalsagar@chromium.org>
Reviewed-by: default avatarEric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#697477}
parent f2c18516
...@@ -209,6 +209,7 @@ void CheckerImageTracker::ClearTracker(bool can_clear_decode_policy_tracking) { ...@@ -209,6 +209,7 @@ void CheckerImageTracker::ClearTracker(bool can_clear_decode_policy_tracking) {
image_id_to_decode_.clear(); image_id_to_decode_.clear();
if (can_clear_decode_policy_tracking) { if (can_clear_decode_policy_tracking) {
decoding_mode_map_.clear();
image_async_decode_state_.clear(); image_async_decode_state_.clear();
} else { } else {
// If we can't clear the decode policy, we need to make sure we still // If we can't clear the decode policy, we need to make sure we still
......
...@@ -381,6 +381,11 @@ TEST_F(CheckerImageTrackerTest, ClearsTracker) { ...@@ -381,6 +381,11 @@ TEST_F(CheckerImageTrackerTest, ClearsTracker) {
// Now clear the decode tracking as well. The image will be re-checkered. // Now clear the decode tracking as well. The image will be re-checkered.
can_clear_decode_policy_tracking = true; can_clear_decode_policy_tracking = true;
checker_image_tracker_->ClearTracker(can_clear_decode_policy_tracking); checker_image_tracker_->ClearTracker(can_clear_decode_policy_tracking);
// Re-initialize the decoding hint state. The decode policy tracking should
// only be done when all image state will be re-created, so is safe to purge.
checker_image_tracker_->UpdateImageDecodingHints(
{{checkerable_image.paint_image().stable_id(),
PaintImage::DecodingMode::kAsync}});
image_decode_queue = image_decode_queue =
BuildImageDecodeQueue({checkerable_image}, WhichTree::PENDING_TREE); BuildImageDecodeQueue({checkerable_image}, WhichTree::PENDING_TREE);
EXPECT_EQ(image_decode_queue.size(), 1U); EXPECT_EQ(image_decode_queue.size(), 1U);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment