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

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

Issue 754433003: Update from https://crrev.com/305340 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « cc/trees/layer_tree_host_unittest_context.cc ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/memory/weak_ptr.h" 7 #include "base/memory/weak_ptr.h"
8 #include "cc/layers/layer.h" 8 #include "cc/layers/layer.h"
9 #include "cc/layers/layer_impl.h" 9 #include "cc/layers/layer_impl.h"
10 #include "cc/layers/picture_layer.h" 10 #include "cc/layers/picture_layer.h"
(...skipping 27 matching lines...) Expand all
38 Layer* root_layer = layer_tree_host()->root_layer(); 38 Layer* root_layer = layer_tree_host()->root_layer();
39 scoped_refptr<Layer> scroll_layer = Layer::Create(); 39 scoped_refptr<Layer> scroll_layer = Layer::Create();
40 root_layer->AddChild(scroll_layer); 40 root_layer->AddChild(scroll_layer);
41 // Create an effective max_scroll_offset of (100, 100). 41 // Create an effective max_scroll_offset of (100, 100).
42 scroll_layer->SetBounds(gfx::Size(root_layer->bounds().width() + 100, 42 scroll_layer->SetBounds(gfx::Size(root_layer->bounds().width() + 100,
43 root_layer->bounds().height() + 100)); 43 root_layer->bounds().height() + 100));
44 scroll_layer->SetIsDrawable(true); 44 scroll_layer->SetIsDrawable(true);
45 scroll_layer->SetIsContainerForFixedPositionLayers(true); 45 scroll_layer->SetIsContainerForFixedPositionLayers(true);
46 scroll_layer->SetScrollClipLayerId(root_layer->id()); 46 scroll_layer->SetScrollClipLayerId(root_layer->id());
47 scroll_layer->SetScrollOffset(initial_scroll_); 47 scroll_layer->SetScrollOffset(initial_scroll_);
48 layer_tree_host()->RegisterViewportLayers(root_layer, scroll_layer, NULL); 48 layer_tree_host()->RegisterViewportLayers(NULL, root_layer, scroll_layer,
49 NULL);
49 PostSetNeedsCommitToMainThread(); 50 PostSetNeedsCommitToMainThread();
50 } 51 }
51 52
52 void Layout() override { 53 void Layout() override {
53 Layer* root = layer_tree_host()->root_layer(); 54 Layer* root = layer_tree_host()->root_layer();
54 Layer* scroll_layer = root->children()[0].get(); 55 Layer* scroll_layer = root->children()[0].get();
55 if (!layer_tree_host()->source_frame_number()) { 56 if (!layer_tree_host()->source_frame_number()) {
56 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset()); 57 EXPECT_VECTOR_EQ(initial_scroll_, scroll_layer->scroll_offset());
57 } else { 58 } else {
58 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_, 59 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(initial_scroll_,
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 Layer* root_layer = layer_tree_host()->root_layer(); 116 Layer* root_layer = layer_tree_host()->root_layer();
116 scroll_layer_ = Layer::Create(); 117 scroll_layer_ = Layer::Create();
117 root_layer->AddChild(scroll_layer_); 118 root_layer->AddChild(scroll_layer_);
118 // Create an effective max_scroll_offset of (100, 100). 119 // Create an effective max_scroll_offset of (100, 100).
119 scroll_layer_->SetBounds(gfx::Size(root_layer->bounds().width() + 100, 120 scroll_layer_->SetBounds(gfx::Size(root_layer->bounds().width() + 100,
120 root_layer->bounds().height() + 100)); 121 root_layer->bounds().height() + 100));
121 scroll_layer_->SetIsDrawable(true); 122 scroll_layer_->SetIsDrawable(true);
122 scroll_layer_->SetIsContainerForFixedPositionLayers(true); 123 scroll_layer_->SetIsContainerForFixedPositionLayers(true);
123 scroll_layer_->SetScrollClipLayerId(root_layer->id()); 124 scroll_layer_->SetScrollClipLayerId(root_layer->id());
124 scroll_layer_->SetScrollOffset(initial_scroll_); 125 scroll_layer_->SetScrollOffset(initial_scroll_);
125 layer_tree_host()->RegisterViewportLayers(root_layer, scroll_layer_, NULL); 126 layer_tree_host()->RegisterViewportLayers(NULL, root_layer, scroll_layer_,
127 NULL);
126 PostSetNeedsCommitToMainThread(); 128 PostSetNeedsCommitToMainThread();
127 } 129 }
128 130
129 void BeginCommitOnThread(LayerTreeHostImpl* impl) override { 131 void BeginCommitOnThread(LayerTreeHostImpl* impl) override {
130 switch (layer_tree_host()->source_frame_number()) { 132 switch (layer_tree_host()->source_frame_number()) {
131 case 0: 133 case 0:
132 EXPECT_VECTOR_EQ(scroll_layer_->scroll_offset(), initial_scroll_); 134 EXPECT_VECTOR_EQ(scroll_layer_->scroll_offset(), initial_scroll_);
133 break; 135 break;
134 case 1: 136 case 1:
135 EXPECT_VECTOR_EQ( 137 EXPECT_VECTOR_EQ(
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 LayerTreeHostScrollTest::SetupTree(); 219 LayerTreeHostScrollTest::SetupTree();
218 Layer* root_layer = layer_tree_host()->root_layer(); 220 Layer* root_layer = layer_tree_host()->root_layer();
219 scoped_refptr<Layer> root_scroll_layer = Layer::Create(); 221 scoped_refptr<Layer> root_scroll_layer = Layer::Create();
220 root_scroll_layer->SetScrollClipLayerId(root_layer->id()); 222 root_scroll_layer->SetScrollClipLayerId(root_layer->id());
221 root_scroll_layer->SetScrollOffset(initial_scroll_); 223 root_scroll_layer->SetScrollOffset(initial_scroll_);
222 root_scroll_layer->SetBounds(gfx::Size(200, 200)); 224 root_scroll_layer->SetBounds(gfx::Size(200, 200));
223 root_scroll_layer->SetIsDrawable(true); 225 root_scroll_layer->SetIsDrawable(true);
224 root_scroll_layer->SetIsContainerForFixedPositionLayers(true); 226 root_scroll_layer->SetIsContainerForFixedPositionLayers(true);
225 root_layer->AddChild(root_scroll_layer); 227 root_layer->AddChild(root_scroll_layer);
226 228
227 layer_tree_host()->RegisterViewportLayers( 229 layer_tree_host()->RegisterViewportLayers(NULL, root_layer,
228 root_layer, root_scroll_layer, NULL); 230 root_scroll_layer, NULL);
229 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 231 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
230 } 232 }
231 233
232 void WillBeginMainFrame() override { 234 void WillBeginMainFrame() override {
233 num_will_begin_main_frames_++; 235 num_will_begin_main_frames_++;
234 Layer* root_scroll_layer = 236 Layer* root_scroll_layer =
235 layer_tree_host()->root_layer()->children()[0].get(); 237 layer_tree_host()->root_layer()->children()[0].get();
236 switch (num_will_begin_main_frames_) { 238 switch (num_will_begin_main_frames_) {
237 case 1: 239 case 1:
238 // This will not be aborted because of the initial prop changes. 240 // This will not be aborted because of the initial prop changes.
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 Layer* root_layer = layer_tree_host()->root_layer(); 402 Layer* root_layer = layer_tree_host()->root_layer();
401 scoped_refptr<Layer> root_scroll_layer = Layer::Create(); 403 scoped_refptr<Layer> root_scroll_layer = Layer::Create();
402 root_scroll_layer->SetScrollClipLayerId(root_layer->id()); 404 root_scroll_layer->SetScrollClipLayerId(root_layer->id());
403 root_scroll_layer->SetBounds( 405 root_scroll_layer->SetBounds(
404 gfx::Size(root_layer->bounds().width() + 100, 406 gfx::Size(root_layer->bounds().width() + 100,
405 root_layer->bounds().height() + 100)); 407 root_layer->bounds().height() + 100));
406 root_scroll_layer->SetIsDrawable(true); 408 root_scroll_layer->SetIsDrawable(true);
407 root_scroll_layer->SetIsContainerForFixedPositionLayers(true); 409 root_scroll_layer->SetIsContainerForFixedPositionLayers(true);
408 root_layer->AddChild(root_scroll_layer); 410 root_layer->AddChild(root_scroll_layer);
409 411
410 layer_tree_host()->RegisterViewportLayers( 412 layer_tree_host()->RegisterViewportLayers(NULL, root_layer,
411 root_layer, root_scroll_layer, NULL); 413 root_scroll_layer, NULL);
412 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 414 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
413 } 415 }
414 416
415 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 417 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
416 418
417 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { 419 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
418 LayerImpl* root = impl->active_tree()->root_layer(); 420 LayerImpl* root = impl->active_tree()->root_layer();
419 LayerImpl* scroll_layer = root->children()[0]; 421 LayerImpl* scroll_layer = root->children()[0];
420 422
421 // Check that a fractional scroll delta is correctly accumulated over 423 // Check that a fractional scroll delta is correctly accumulated over
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 expected_scroll_layer_ = child_layer_; 505 expected_scroll_layer_ = child_layer_;
504 expected_no_scroll_layer_ = root_scroll_layer_; 506 expected_no_scroll_layer_ = root_scroll_layer_;
505 } else { 507 } else {
506 expected_scroll_layer_ = root_scroll_layer_; 508 expected_scroll_layer_ = root_scroll_layer_;
507 expected_no_scroll_layer_ = child_layer_; 509 expected_no_scroll_layer_ = child_layer_;
508 } 510 }
509 511
510 expected_scroll_layer_->SetScrollOffset(initial_offset_); 512 expected_scroll_layer_->SetScrollOffset(initial_offset_);
511 513
512 layer_tree_host()->SetRootLayer(root_layer); 514 layer_tree_host()->SetRootLayer(root_layer);
513 layer_tree_host()->RegisterViewportLayers( 515 layer_tree_host()->RegisterViewportLayers(NULL, root_layer,
514 root_layer, root_scroll_layer_, NULL); 516 root_scroll_layer_, NULL);
515 LayerTreeHostScrollTest::SetupTree(); 517 LayerTreeHostScrollTest::SetupTree();
516 } 518 }
517 519
518 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 520 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
519 521
520 void WillCommit() override { 522 void WillCommit() override {
521 // Keep the test committing (otherwise the early out for no update 523 // Keep the test committing (otherwise the early out for no update
522 // will stall the test). 524 // will stall the test).
523 if (layer_tree_host()->source_frame_number() < 2) { 525 if (layer_tree_host()->source_frame_number() < 2) {
524 layer_tree_host()->SetNeedsCommit(); 526 layer_tree_host()->SetNeedsCommit();
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 scoped_refptr<Layer> root_scroll_layer = Layer::Create(); 774 scoped_refptr<Layer> root_scroll_layer = Layer::Create();
773 root_scroll_layer->SetScrollClipLayerId(root_layer->id()); 775 root_scroll_layer->SetScrollClipLayerId(root_layer->id());
774 root_scroll_layer->SetScrollOffset(initial_scroll_); 776 root_scroll_layer->SetScrollOffset(initial_scroll_);
775 root_scroll_layer->SetBounds( 777 root_scroll_layer->SetBounds(
776 gfx::Size(root_layer->bounds().width() + 100, 778 gfx::Size(root_layer->bounds().width() + 100,
777 root_layer->bounds().height() + 100)); 779 root_layer->bounds().height() + 100));
778 root_scroll_layer->SetIsDrawable(true); 780 root_scroll_layer->SetIsDrawable(true);
779 root_scroll_layer->SetIsContainerForFixedPositionLayers(true); 781 root_scroll_layer->SetIsContainerForFixedPositionLayers(true);
780 root_layer->AddChild(root_scroll_layer); 782 root_layer->AddChild(root_scroll_layer);
781 783
782 layer_tree_host()->RegisterViewportLayers( 784 layer_tree_host()->RegisterViewportLayers(NULL, root_layer,
783 root_layer, root_scroll_layer, NULL); 785 root_scroll_layer, NULL);
784 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 786 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
785 } 787 }
786 788
787 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 789 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
788 790
789 void Layout() override { 791 void Layout() override {
790 Layer* root = layer_tree_host()->root_layer(); 792 Layer* root = layer_tree_host()->root_layer();
791 Layer* scroll_layer = root->children()[0].get(); 793 Layer* scroll_layer = root->children()[0].get();
792 if (!layer_tree_host()->source_frame_number()) { 794 if (!layer_tree_host()->source_frame_number()) {
793 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_); 795 EXPECT_VECTOR_EQ(scroll_layer->scroll_offset(), initial_scroll_);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 scoped_refptr<Layer> root_scroll_layer = Layer::Create(); 905 scoped_refptr<Layer> root_scroll_layer = Layer::Create();
904 root_scroll_layer->SetScrollClipLayerId(root_layer->id()); 906 root_scroll_layer->SetScrollClipLayerId(root_layer->id());
905 root_scroll_layer->SetScrollOffset(initial_scroll_); 907 root_scroll_layer->SetScrollOffset(initial_scroll_);
906 root_scroll_layer->SetBounds( 908 root_scroll_layer->SetBounds(
907 gfx::Size(root_layer->bounds().width() + 100, 909 gfx::Size(root_layer->bounds().width() + 100,
908 root_layer->bounds().height() + 100)); 910 root_layer->bounds().height() + 100));
909 root_scroll_layer->SetIsDrawable(true); 911 root_scroll_layer->SetIsDrawable(true);
910 root_scroll_layer->SetIsContainerForFixedPositionLayers(true); 912 root_scroll_layer->SetIsContainerForFixedPositionLayers(true);
911 root_layer->AddChild(root_scroll_layer); 913 root_layer->AddChild(root_scroll_layer);
912 914
913 layer_tree_host()->RegisterViewportLayers( 915 layer_tree_host()->RegisterViewportLayers(NULL, root_layer,
914 root_layer, root_scroll_layer, NULL); 916 root_scroll_layer, NULL);
915 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f); 917 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 0.01f, 100.f);
916 } 918 }
917 919
918 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 920 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
919 921
920 void WillCommit() override { 922 void WillCommit() override {
921 Layer* root = layer_tree_host()->root_layer(); 923 Layer* root = layer_tree_host()->root_layer();
922 Layer* scroll_layer = root->children()[0].get(); 924 Layer* scroll_layer = root->children()[0].get();
923 switch (layer_tree_host()->source_frame_number()) { 925 switch (layer_tree_host()->source_frame_number()) {
924 case 0: 926 case 0:
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
1225 RunTest(true, false, true); 1227 RunTest(true, false, true);
1226 } 1228 }
1227 1229
1228 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) { 1230 TEST_F(LayerTreeHostScrollTestLayerStructureChange, ScrollDestroyWholeTree) {
1229 scroll_destroy_whole_tree_ = true; 1231 scroll_destroy_whole_tree_ = true;
1230 RunTest(true, false, true); 1232 RunTest(true, false, true);
1231 } 1233 }
1232 1234
1233 } // namespace 1235 } // namespace
1234 } // namespace cc 1236 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_context.cc ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698