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

Side by Side Diff: cc/trees/layer_tree_host_unittest_context.cc

Issue 1287043002: cc: Setup API to release OutputSurface from LTHClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments addressed. Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "cc/layers/delegated_frame_provider.h" 8 #include "cc/layers/delegated_frame_provider.h"
9 #include "cc/layers/delegated_frame_resource_collection.h" 9 #include "cc/layers/delegated_frame_resource_collection.h"
10 #include "cc/layers/heads_up_display_layer.h" 10 #include "cc/layers/heads_up_display_layer.h"
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 375 }
376 376
377 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } 377 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); }
378 378
379 void AfterTest() override {} 379 void AfterTest() override {}
380 }; 380 };
381 381
382 SINGLE_AND_MULTI_THREAD_TEST_F( 382 SINGLE_AND_MULTI_THREAD_TEST_F(
383 LayerTreeHostClientNotReadyDoesNotCreateOutputSurface); 383 LayerTreeHostClientNotReadyDoesNotCreateOutputSurface);
384 384
385 class LayerTreeHostClientTakeAwayOutputSurface
386 : public LayerTreeHostContextTest {
387 public:
388 LayerTreeHostClientTakeAwayOutputSurface() : LayerTreeHostContextTest() {
389 setos_counter = 0;
390 }
391
392 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
393
394 void RequestNewOutputSurface() override { CreateAndSetOutputSurface(); }
395
396 void CreateAndSetOutputSurface() {
397 scoped_ptr<OutputSurface> surface =
398 LayerTreeHostContextTest::CreateOutputSurface();
399 CHECK(surface);
400 layer_tree_host()->SetOutputSurface(surface.Pass());
401 setos_counter++;
402 }
403
404 void HideAndReleaseOutputSurface() {
405 EXPECT_TRUE(layer_tree_host()->proxy()->IsMainThread());
406 layer_tree_host()->SetVisible(false);
407 scoped_ptr<OutputSurface> surface =
408 layer_tree_host()->ReleaseOutputSurface();
409 CHECK(surface);
410 MainThreadTaskRunner()->PostTask(
411 FROM_HERE,
412 base::Bind(&LayerTreeHostClientTakeAwayOutputSurface::MakeVisible,
413 base::Unretained(this)));
414 }
415
416 void DidInitializeOutputSurface() override {
417 if (setos_counter == 0) {
418 EXPECT_TRUE(layer_tree_host()->visible());
no sievers 2015/09/10 17:27:45 I think the reason that you were not able to move
sohanjg 2015/09/11 07:00:50 Done.
419 MainThreadTaskRunner()->PostTask(
420 FROM_HERE, base::Bind(&LayerTreeHostClientTakeAwayOutputSurface::
421 HideAndReleaseOutputSurface,
422 base::Unretained(this)));
423 } else {
424 EndTest();
425 }
426 }
427
428 void MakeVisible() {
429 EXPECT_TRUE(layer_tree_host()->proxy()->IsMainThread());
430 layer_tree_host()->SetVisible(true);
431 }
432
433 void AfterTest() override {}
434
435 int setos_counter;
436 };
437
438 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostClientTakeAwayOutputSurface);
439
385 class MultipleCompositeDoesNotCreateOutputSurface 440 class MultipleCompositeDoesNotCreateOutputSurface
386 : public LayerTreeHostContextTest { 441 : public LayerTreeHostContextTest {
387 public: 442 public:
388 MultipleCompositeDoesNotCreateOutputSurface() 443 MultipleCompositeDoesNotCreateOutputSurface()
389 : LayerTreeHostContextTest(), request_count_(0) {} 444 : LayerTreeHostContextTest(), request_count_(0) {}
390 445
391 void InitializeSettings(LayerTreeSettings* settings) override { 446 void InitializeSettings(LayerTreeSettings* settings) override {
392 settings->single_thread_proxy_scheduler = false; 447 settings->single_thread_proxy_scheduler = false;
393 settings->use_zero_copy = true; 448 settings->use_zero_copy = true;
394 } 449 }
(...skipping 1163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 void AfterTest() override {} 1613 void AfterTest() override {}
1559 1614
1560 bool deferred_; 1615 bool deferred_;
1561 }; 1616 };
1562 1617
1563 SINGLE_AND_MULTI_THREAD_TEST_F( 1618 SINGLE_AND_MULTI_THREAD_TEST_F(
1564 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); 1619 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame);
1565 1620
1566 } // namespace 1621 } // namespace
1567 } // namespace cc 1622 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698