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

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1e10588a72fc82990b89a2ed5b0e1ed3faf9caa9..d4bfb6e250664f2b946dfcc48712c9e1bd687f49 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -94,12 +94,8 @@ class LayerTreeHostTestReadyToActivateEmpty : public LayerTreeHostTest {
void NotifyReadyToActivateOnThread(LayerTreeHostImpl* impl) override {
did_notify_ready_to_activate_ = true;
- const std::vector<PictureLayerImpl*>& layers = impl->GetPictureLayers();
- all_tiles_required_for_activation_are_ready_to_draw_ = true;
- for (const auto& layer : layers) {
- if (!layer->AllTilesRequiredForActivationAreReadyToDraw())
- all_tiles_required_for_activation_are_ready_to_draw_ = false;
- }
+ all_tiles_required_for_activation_are_ready_to_draw_ =
+ impl->tile_manager()->IsReadyToActivate();
EndTest();
}
@@ -159,10 +155,9 @@ class LayerTreeHostTestReadyToDrawEmpty : public LayerTreeHostTest {
void NotifyReadyToDrawOnThread(LayerTreeHostImpl* impl) override {
did_notify_ready_to_draw_ = true;
const std::vector<PictureLayerImpl*>& layers = impl->GetPictureLayers();
- all_tiles_required_for_draw_are_ready_to_draw_ = true;
+ all_tiles_required_for_draw_are_ready_to_draw_ =
+ impl->tile_manager()->IsReadyToDraw();
for (const auto& layer : layers) {
- if (!layer->AllTilesRequiredForDrawAreReadyToDraw())
- all_tiles_required_for_draw_are_ready_to_draw_ = false;
FakePictureLayerImpl* fake_layer =
static_cast<FakePictureLayerImpl*>(layer);
required_for_draw_count_ += fake_layer->CountTilesRequiredForDraw();
@@ -2032,22 +2027,34 @@ SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousInvalidate);
class LayerTreeHostTestDeferCommits : public LayerTreeHostTest {
public:
LayerTreeHostTestDeferCommits()
- : num_commits_deferred_(0), num_complete_commits_(0) {}
+ : num_will_begin_impl_frame_(0),
+ num_send_begin_main_frame_(0) {}
void BeginTest() override { PostSetNeedsCommitToMainThread(); }
- void DidDeferCommit() override {
- num_commits_deferred_++;
- layer_tree_host()->SetDeferCommits(false);
+ void WillBeginImplFrame(const BeginFrameArgs& args) override {
+ num_will_begin_impl_frame_++;
+ switch (num_will_begin_impl_frame_) {
+ case 1:
+ break;
+ case 2:
+ PostSetNeedsCommitToMainThread();
+ break;
+ case 3:
+ PostSetDeferCommitsToMainThread(false);
+ break;
+ default:
+ // Sometimes |num_will_begin_impl_frame_| will be greater than 3 if the
+ // main thread is slow to respond.
+ break;
+ }
}
- void DidCommit() override {
- num_complete_commits_++;
- switch (num_complete_commits_) {
+ void ScheduledActionSendBeginMainFrame() override {
+ num_send_begin_main_frame_++;
+ switch (num_send_begin_main_frame_) {
case 1:
- EXPECT_EQ(0, num_commits_deferred_);
- layer_tree_host()->SetDeferCommits(true);
- PostSetNeedsCommitToMainThread();
+ PostSetDeferCommitsToMainThread(true);
break;
case 2:
EndTest();
@@ -2059,13 +2066,13 @@ class LayerTreeHostTestDeferCommits : public LayerTreeHostTest {
}
void AfterTest() override {
- EXPECT_EQ(1, num_commits_deferred_);
- EXPECT_EQ(2, num_complete_commits_);
+ EXPECT_GE(3, num_will_begin_impl_frame_);
+ EXPECT_EQ(2, num_send_begin_main_frame_);
}
private:
- int num_commits_deferred_;
- int num_complete_commits_;
+ int num_will_begin_impl_frame_;
+ int num_send_begin_main_frame_;
};
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits);
@@ -4779,22 +4786,24 @@ class LayerTreeHostTestKeepSwapPromise : public LayerTreeTest {
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestKeepSwapPromise);
-class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit
+class LayerTreeHostTestBreakSwapPromiseForVisibility
: public LayerTreeHostTest {
protected:
void BeginTest() override { PostSetNeedsCommitToMainThread(); }
- void DidCommit() override {
- layer_tree_host()->SetDeferCommits(true);
- layer_tree_host()->SetNeedsCommit();
- }
-
- void DidDeferCommit() override {
+ void SetVisibleFalseAndQueueSwapPromise() {
layer_tree_host()->SetVisible(false);
scoped_ptr<SwapPromise> swap_promise(
new TestSwapPromise(&swap_promise_result_));
layer_tree_host()->QueueSwapPromise(swap_promise.Pass());
- layer_tree_host()->SetDeferCommits(false);
+ }
+
+ void ScheduledActionWillSendBeginMainFrame() override {
+ MainThreadTaskRunner()->PostTask(
+ FROM_HERE,
+ base::Bind(&LayerTreeHostTestBreakSwapPromiseForVisibility
+ ::SetVisibleFalseAndQueueSwapPromise,
+ base::Unretained(this)));
}
void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl,
@@ -4815,27 +4824,33 @@ class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit
TestSwapPromiseResult swap_promise_result_;
};
-SINGLE_AND_MULTI_THREAD_TEST_F(
- LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit);
+SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromiseForVisibility);
-class LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit
- : public LayerTreeHostTest {
+class LayerTreeHostTestBreakSwapPromiseForContext : public LayerTreeHostTest {
protected:
- void BeginTest() override { PostSetNeedsCommitToMainThread(); }
-
- void DidCommit() override {
- if (TestEnded())
- return;
- layer_tree_host()->SetDeferCommits(true);
- layer_tree_host()->SetNeedsCommit();
+ LayerTreeHostTestBreakSwapPromiseForContext()
+ : output_surface_lost_triggered_(false) {
}
- void DidDeferCommit() override {
+ void BeginTest() override { PostSetNeedsCommitToMainThread(); }
+
+ void LoseOutputSurfaceAndQueueSwapPromise() {
layer_tree_host()->DidLoseOutputSurface();
scoped_ptr<SwapPromise> swap_promise(
new TestSwapPromise(&swap_promise_result_));
layer_tree_host()->QueueSwapPromise(swap_promise.Pass());
- layer_tree_host()->SetDeferCommits(false);
+ }
+
+ void ScheduledActionWillSendBeginMainFrame() override {
+ if (output_surface_lost_triggered_)
+ return;
+ output_surface_lost_triggered_ = true;
+
+ MainThreadTaskRunner()->PostTask(
+ FROM_HERE,
+ base::Bind(&LayerTreeHostTestBreakSwapPromiseForContext
+ ::LoseOutputSurfaceAndQueueSwapPromise,
+ base::Unretained(this)));
}
void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl,
@@ -4855,11 +4870,12 @@ class LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit
}
}
+ bool output_surface_lost_triggered_;
TestSwapPromiseResult swap_promise_result_;
};
SINGLE_AND_MULTI_THREAD_TEST_F(
- LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit);
+ LayerTreeHostTestBreakSwapPromiseForContext);
class SimpleSwapPromiseMonitor : public SwapPromiseMonitor {
public:
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698