Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2366)

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 2757373002: Fixing flakiness of TextureLayerChangeInvisibleMailboxTest (Closed)
Patch Set: Rename Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_unittest.cc
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 2e7457a49aac6600be861bf479eb244c545a3d17..2c4563c1e02dd69015e91d8d05a314a8fde04d74 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -7502,5 +7502,53 @@ class LayerTreeHostTestHudLayerWithLayerLists : public LayerTreeHostTest {
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestHudLayerWithLayerLists);
+// Verifies that LayerTreeHost does not receive frame acks from a released
danakj 2017/04/18 20:58:42 LayerTreeHostClient
Saman Sami 2017/04/18 21:37:13 Done.
+// CompositorFrameSink.
+class LayerTreeHostTestDiscardAckAfterRelease : public LayerTreeHostTest {
+ protected:
+ void SetupTree() override {
+ scoped_refptr<Layer> root = Layer::Create();
+ root->SetBounds(gfx::Size(10, 10));
+ layer_tree_host()->SetRootLayer(root);
danakj 2017/04/18 20:58:42 std::move()
Saman Sami 2017/04/18 21:37:13 Done.
+ LayerTreeHostTest::SetupTree();
+ }
+
+ void BeginTest() override { PostSetNeedsCommitToMainThread(); }
+
+ void WillReceiveCompositorFrameAckOnImplThread() override {
+ MainThreadTaskRunner()->PostTask(
+ FROM_HERE, base::Bind(&LayerTreeHostTestDiscardAckAfterRelease::
+ ReleaseCompositorFrameSink,
+ base::Unretained(this)));
+ }
+
+ void DidReceiveCompositorFrameAckOnImplThread() override {
+ MainThreadTaskRunner()->PostTask(
+ FROM_HERE,
+ base::Bind(
+ &LayerTreeHostTestDiscardAckAfterRelease::VerifyAckNotReceived,
danakj 2017/04/18 20:58:42 Can you post the VerifyAckNotReceived with a small
Saman Sami 2017/04/18 21:37:13 Done. Good point.
+ base::Unretained(this)));
+ }
+
+ void DidReceiveCompositorFrameAck() override { received_ack_ = true; }
+
+ void ReleaseCompositorFrameSink() {
+ layer_tree_host()->SetVisible(false);
+ layer_tree_host()->ReleaseCompositorFrameSink();
+ }
+
+ void VerifyAckNotReceived() {
+ EXPECT_FALSE(received_ack_);
+ EndTest();
+ }
+
+ void AfterTest() override {}
+
+ private:
+ bool received_ack_ = false;
+};
+
+SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDiscardAckAfterRelease);
+
} // namespace
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698