Index: cc/trees/layer_tree_host_unittest_checkerimaging.cc |
diff --git a/cc/trees/layer_tree_host_unittest_checkerimaging.cc b/cc/trees/layer_tree_host_unittest_checkerimaging.cc |
index 0828b107c449f7ee0ca606e0d57eab0e7cf4930b..7b8b78b116f3e7dd84802acd1730e79bc33dd928 100644 |
--- a/cc/trees/layer_tree_host_unittest_checkerimaging.cc |
+++ b/cc/trees/layer_tree_host_unittest_checkerimaging.cc |
@@ -81,18 +81,30 @@ class LayerTreeHostCheckerImagingTestMergeWithMainFrame |
} |
} |
+ void NotifyAllTileTasksCompleted(LayerTreeHostImpl* host_impl) override { |
+ // Wait until all tile tasks have finished before flushing the decode tasks. |
+ // The CheckerImageTracker does not queue decode work until higher priority |
+ // raster work has finished. |
+ |
+ // Run all tasks on the image worker to ensure that the decode completion |
+ // triggers an impl-side invalidation request. |
+ FlushImageDecodeTasks(); |
+ |
+ // Request a commit to ensure that this invalidation is merged with the |
+ // incoming frame. |
+ host_impl->GetTaskRunner()->PostTask( |
+ FROM_HERE, base::Bind(&LayerTreeHostImpl::SetNeedsCommit, |
+ base::Unretained(host_impl))); |
+ } |
+ |
void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { |
switch (++num_of_commits_) { |
- case 1: { |
- // The first commit has happened. Run all tasks on the image worker to |
- // ensure that the decode completion triggers an impl-side invalidation |
- // request. |
- FlushImageDecodeTasks(); |
- |
- // Block notifying the scheduler of this request until we get a commit. |
+ case 1: |
+ // Block notifying the scheduler of this request until we've had a |
+ // chance to make sure that the decode work was scheduled, flushed and |
+ // the commit requested after it is received. |
host_impl->BlockImplSideInvalidationRequestsForTesting(true); |
- host_impl->SetNeedsCommit(); |
- } break; |
+ break; |
case 2: { |
// Ensure that the expected tiles are invalidated on the sync tree. |
PictureLayerImpl* sync_layer_impl = static_cast<PictureLayerImpl*>( |
@@ -110,11 +122,11 @@ class LayerTreeHostCheckerImagingTestMergeWithMainFrame |
// exist and have a raster task. If its the active tree, then only |
// the invalidated tiles have a raster task. |
if (i < 3) { |
- EXPECT_TRUE(tile->HasRasterTask()); |
+ EXPECT_TRUE(tile->HasRasterTask()) << i << "," << j; |
vmpstr
2017/06/20 18:41:01
you can use
for (int i = 0; i < 4; ++i) {
SCOPE
Khushal
2017/06/21 03:35:58
Thanks for the suggestion. Done.
|
} else if (host_impl->pending_tree()) { |
- EXPECT_EQ(tile, nullptr); |
+ EXPECT_EQ(tile, nullptr) << i << "," << j; |
} else { |
- EXPECT_FALSE(tile->HasRasterTask()); |
+ EXPECT_FALSE(tile->HasRasterTask()) << i << "," << j; |
} |
} |
} |