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

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

Issue 1912893002: cc : Stop pushing properties not used by LayerImpl to LayerImpl. (2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 host_impl_->animation_host()->AddAnimationTimeline(timeline_); 210 host_impl_->animation_host()->AddAnimationTimeline(timeline_);
211 211
212 return init; 212 return init;
213 } 213 }
214 214
215 void SetupRootLayerImpl(std::unique_ptr<LayerImpl> root) { 215 void SetupRootLayerImpl(std::unique_ptr<LayerImpl> root) {
216 root->SetPosition(gfx::PointF()); 216 root->SetPosition(gfx::PointF());
217 root->SetBounds(gfx::Size(10, 10)); 217 root->SetBounds(gfx::Size(10, 10));
218 root->SetDrawsContent(true); 218 root->SetDrawsContent(true);
219 root->draw_properties().visible_layer_rect = gfx::Rect(0, 0, 10, 10); 219 root->draw_properties().visible_layer_rect = gfx::Rect(0, 0, 10, 10);
220 root->SetForceRenderSurface(true); 220 root->test_properties()->force_render_surface = true;
221 host_impl_->active_tree()->SetRootLayer(std::move(root)); 221 host_impl_->active_tree()->SetRootLayer(std::move(root));
222 } 222 }
223 223
224 static gfx::Vector2dF ScrollDelta(LayerImpl* layer_impl) { 224 static gfx::Vector2dF ScrollDelta(LayerImpl* layer_impl) {
225 gfx::ScrollOffset delta = 225 gfx::ScrollOffset delta =
226 layer_impl->layer_tree_impl() 226 layer_impl->layer_tree_impl()
227 ->property_trees() 227 ->property_trees()
228 ->scroll_tree.GetScrollOffsetDeltaForTesting(layer_impl->id()); 228 ->scroll_tree.GetScrollOffsetDeltaForTesting(layer_impl->id());
229 return gfx::Vector2dF(delta.x(), delta.y()); 229 return gfx::Vector2dF(delta.x(), delta.y());
230 } 230 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 const int kOuterViewportClipLayerId = 116; 278 const int kOuterViewportClipLayerId = 116;
279 const int kOuterViewportScrollLayerId = 117; 279 const int kOuterViewportScrollLayerId = 117;
280 const int kContentLayerId = 118; 280 const int kContentLayerId = 118;
281 const int kInnerViewportScrollLayerId = 2; 281 const int kInnerViewportScrollLayerId = 2;
282 const int kInnerViewportClipLayerId = 4; 282 const int kInnerViewportClipLayerId = 4;
283 const int kPageScaleLayerId = 5; 283 const int kPageScaleLayerId = 5;
284 284
285 std::unique_ptr<LayerImpl> root = LayerImpl::Create(layer_tree_impl, 1); 285 std::unique_ptr<LayerImpl> root = LayerImpl::Create(layer_tree_impl, 1);
286 root->SetBounds(content_size); 286 root->SetBounds(content_size);
287 root->SetPosition(gfx::PointF()); 287 root->SetPosition(gfx::PointF());
288 root->SetForceRenderSurface(true); 288 root->test_properties()->force_render_surface = true;
289 289
290 std::unique_ptr<LayerImpl> inner_scroll = 290 std::unique_ptr<LayerImpl> inner_scroll =
291 LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId); 291 LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId);
292 inner_scroll->SetIsContainerForFixedPositionLayers(true); 292 inner_scroll->SetIsContainerForFixedPositionLayers(true);
293 inner_scroll->layer_tree_impl() 293 inner_scroll->layer_tree_impl()
294 ->property_trees() 294 ->property_trees()
295 ->scroll_tree.UpdateScrollOffsetBaseForTesting(inner_scroll->id(), 295 ->scroll_tree.UpdateScrollOffsetBaseForTesting(inner_scroll->id(),
296 gfx::ScrollOffset()); 296 gfx::ScrollOffset());
297 297
298 std::unique_ptr<LayerImpl> inner_clip = 298 std::unique_ptr<LayerImpl> inner_clip =
(...skipping 999 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 TEST_F(LayerTreeHostImplTest, AnimationSchedulingPendingTree) { 1298 TEST_F(LayerTreeHostImplTest, AnimationSchedulingPendingTree) {
1299 EXPECT_FALSE(host_impl_->CommitToActiveTree()); 1299 EXPECT_FALSE(host_impl_->CommitToActiveTree());
1300 1300
1301 host_impl_->SetViewportSize(gfx::Size(50, 50)); 1301 host_impl_->SetViewportSize(gfx::Size(50, 50));
1302 1302
1303 host_impl_->CreatePendingTree(); 1303 host_impl_->CreatePendingTree();
1304 host_impl_->pending_tree()->SetRootLayer( 1304 host_impl_->pending_tree()->SetRootLayer(
1305 LayerImpl::Create(host_impl_->pending_tree(), 1)); 1305 LayerImpl::Create(host_impl_->pending_tree(), 1));
1306 LayerImpl* root = host_impl_->pending_tree()->root_layer(); 1306 LayerImpl* root = host_impl_->pending_tree()->root_layer();
1307 root->SetBounds(gfx::Size(50, 50)); 1307 root->SetBounds(gfx::Size(50, 50));
1308 root->SetForceRenderSurface(true); 1308 root->test_properties()->force_render_surface = true;
1309 1309
1310 root->AddChild(LayerImpl::Create(host_impl_->pending_tree(), 2)); 1310 root->AddChild(LayerImpl::Create(host_impl_->pending_tree(), 2));
1311 LayerImpl* child = root->children()[0]; 1311 LayerImpl* child = root->children()[0];
1312 child->SetBounds(gfx::Size(10, 10)); 1312 child->SetBounds(gfx::Size(10, 10));
1313 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); 1313 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10);
1314 child->SetDrawsContent(true); 1314 child->SetDrawsContent(true);
1315 AddAnimatedTransformToLayerWithPlayer(child->id(), timeline(), 10.0, 3, 0); 1315 AddAnimatedTransformToLayerWithPlayer(child->id(), timeline(), 10.0, 3, 0);
1316 1316
1317 EXPECT_FALSE(did_request_next_frame_); 1317 EXPECT_FALSE(did_request_next_frame_);
1318 EXPECT_FALSE(did_request_redraw_); 1318 EXPECT_FALSE(did_request_redraw_);
(...skipping 29 matching lines...) Expand all
1348 1348
1349 TEST_F(LayerTreeHostImplTest, AnimationSchedulingActiveTree) { 1349 TEST_F(LayerTreeHostImplTest, AnimationSchedulingActiveTree) {
1350 EXPECT_FALSE(host_impl_->CommitToActiveTree()); 1350 EXPECT_FALSE(host_impl_->CommitToActiveTree());
1351 1351
1352 host_impl_->SetViewportSize(gfx::Size(50, 50)); 1352 host_impl_->SetViewportSize(gfx::Size(50, 50));
1353 1353
1354 host_impl_->active_tree()->SetRootLayer( 1354 host_impl_->active_tree()->SetRootLayer(
1355 LayerImpl::Create(host_impl_->active_tree(), 1)); 1355 LayerImpl::Create(host_impl_->active_tree(), 1));
1356 LayerImpl* root = host_impl_->active_tree()->root_layer(); 1356 LayerImpl* root = host_impl_->active_tree()->root_layer();
1357 root->SetBounds(gfx::Size(50, 50)); 1357 root->SetBounds(gfx::Size(50, 50));
1358 root->SetForceRenderSurface(true); 1358 root->test_properties()->force_render_surface = true;
1359 1359
1360 root->AddChild(LayerImpl::Create(host_impl_->active_tree(), 2)); 1360 root->AddChild(LayerImpl::Create(host_impl_->active_tree(), 2));
1361 LayerImpl* child = root->children()[0]; 1361 LayerImpl* child = root->children()[0];
1362 child->SetBounds(gfx::Size(10, 10)); 1362 child->SetBounds(gfx::Size(10, 10));
1363 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); 1363 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10);
1364 child->SetDrawsContent(true); 1364 child->SetDrawsContent(true);
1365 1365
1366 // Add a translate from 6,7 to 8,9. 1366 // Add a translate from 6,7 to 8,9.
1367 TransformOperations start; 1367 TransformOperations start;
1368 start.AppendTranslate(6.f, 7.f, 0.f); 1368 start.AppendTranslate(6.f, 7.f, 0.f);
(...skipping 1922 matching lines...) Expand 10 before | Expand all | Expand 10 after
3291 append_quads_called_ = false; 3291 append_quads_called_ = false;
3292 did_draw_called_ = false; 3292 did_draw_called_ = false;
3293 } 3293 }
3294 3294
3295 static void IgnoreResult(std::unique_ptr<CopyOutputResult> result) {} 3295 static void IgnoreResult(std::unique_ptr<CopyOutputResult> result) {}
3296 3296
3297 void AddCopyRequest() { 3297 void AddCopyRequest() {
3298 std::vector<std::unique_ptr<CopyOutputRequest>> requests; 3298 std::vector<std::unique_ptr<CopyOutputRequest>> requests;
3299 requests.push_back( 3299 requests.push_back(
3300 CopyOutputRequest::CreateRequest(base::Bind(&IgnoreResult))); 3300 CopyOutputRequest::CreateRequest(base::Bind(&IgnoreResult)));
3301 SetForceRenderSurface(true); 3301 test_properties()->force_render_surface = true;
3302 PassCopyRequests(&requests); 3302 PassCopyRequests(&requests);
3303 } 3303 }
3304 3304
3305 protected: 3305 protected:
3306 DidDrawCheckLayer(LayerTreeImpl* tree_impl, int id) 3306 DidDrawCheckLayer(LayerTreeImpl* tree_impl, int id)
3307 : LayerImpl(tree_impl, id), 3307 : LayerImpl(tree_impl, id),
3308 will_draw_returns_false_(false), 3308 will_draw_returns_false_(false),
3309 will_draw_called_(false), 3309 will_draw_called_(false),
3310 append_quads_called_(false), 3310 append_quads_called_(false),
3311 did_draw_called_(false) { 3311 did_draw_called_(false) {
(...skipping 11 matching lines...) Expand all
3323 3323
3324 TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) { 3324 TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) {
3325 // The root layer is always drawn, so run this test on a child layer that 3325 // The root layer is always drawn, so run this test on a child layer that
3326 // will be masked out by the root layer's bounds. 3326 // will be masked out by the root layer's bounds.
3327 host_impl_->active_tree()->SetRootLayer( 3327 host_impl_->active_tree()->SetRootLayer(
3328 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); 3328 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
3329 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( 3329 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>(
3330 host_impl_->active_tree()->root_layer()); 3330 host_impl_->active_tree()->root_layer());
3331 3331
3332 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); 3332 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
3333 root->SetForceRenderSurface(true); 3333 root->test_properties()->force_render_surface = true;
3334 DidDrawCheckLayer* layer = 3334 DidDrawCheckLayer* layer =
3335 static_cast<DidDrawCheckLayer*>(root->children()[0]); 3335 static_cast<DidDrawCheckLayer*>(root->children()[0]);
3336 3336
3337 { 3337 {
3338 LayerTreeHostImpl::FrameData frame; 3338 LayerTreeHostImpl::FrameData frame;
3339 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 3339 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
3340 host_impl_->DrawLayers(&frame); 3340 host_impl_->DrawLayers(&frame);
3341 host_impl_->DidDrawAllLayers(frame); 3341 host_impl_->DidDrawAllLayers(frame);
3342 3342
3343 EXPECT_TRUE(layer->will_draw_called()); 3343 EXPECT_TRUE(layer->will_draw_called());
(...skipping 20 matching lines...) Expand all
3364 } 3364 }
3365 3365
3366 TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) { 3366 TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) {
3367 // The root layer is always drawn, so run this test on a child layer that 3367 // The root layer is always drawn, so run this test on a child layer that
3368 // will be masked out by the root layer's bounds. 3368 // will be masked out by the root layer's bounds.
3369 host_impl_->active_tree()->SetRootLayer( 3369 host_impl_->active_tree()->SetRootLayer(
3370 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); 3370 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
3371 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( 3371 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>(
3372 host_impl_->active_tree()->root_layer()); 3372 host_impl_->active_tree()->root_layer());
3373 root->SetMasksToBounds(true); 3373 root->SetMasksToBounds(true);
3374 root->SetForceRenderSurface(true); 3374 root->test_properties()->force_render_surface = true;
3375 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); 3375 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
3376 DidDrawCheckLayer* layer = 3376 DidDrawCheckLayer* layer =
3377 static_cast<DidDrawCheckLayer*>(root->children()[0]); 3377 static_cast<DidDrawCheckLayer*>(root->children()[0]);
3378 // Ensure visible_layer_rect for layer is empty. 3378 // Ensure visible_layer_rect for layer is empty.
3379 layer->SetPosition(gfx::PointF(100.f, 100.f)); 3379 layer->SetPosition(gfx::PointF(100.f, 100.f));
3380 layer->SetBounds(gfx::Size(10, 10)); 3380 layer->SetBounds(gfx::Size(10, 10));
3381 3381
3382 LayerTreeHostImpl::FrameData frame; 3382 LayerTreeHostImpl::FrameData frame;
3383 3383
3384 EXPECT_FALSE(layer->will_draw_called()); 3384 EXPECT_FALSE(layer->will_draw_called());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3419 host_impl_->active_tree()->SetRootLayer( 3419 host_impl_->active_tree()->SetRootLayer(
3420 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); 3420 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
3421 DidDrawCheckLayer* root = 3421 DidDrawCheckLayer* root =
3422 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 3422 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
3423 3423
3424 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); 3424 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
3425 DidDrawCheckLayer* occluded_layer = 3425 DidDrawCheckLayer* occluded_layer =
3426 static_cast<DidDrawCheckLayer*>(root->children()[0]); 3426 static_cast<DidDrawCheckLayer*>(root->children()[0]);
3427 3427
3428 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); 3428 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
3429 root->SetForceRenderSurface(true); 3429 root->test_properties()->force_render_surface = true;
3430 DidDrawCheckLayer* top_layer = 3430 DidDrawCheckLayer* top_layer =
3431 static_cast<DidDrawCheckLayer*>(root->children()[1]); 3431 static_cast<DidDrawCheckLayer*>(root->children()[1]);
3432 // This layer covers the occluded_layer above. Make this layer large so it can 3432 // This layer covers the occluded_layer above. Make this layer large so it can
3433 // occlude. 3433 // occlude.
3434 top_layer->SetBounds(big_size); 3434 top_layer->SetBounds(big_size);
3435 top_layer->SetContentsOpaque(true); 3435 top_layer->SetContentsOpaque(true);
3436 3436
3437 LayerTreeHostImpl::FrameData frame; 3437 LayerTreeHostImpl::FrameData frame;
3438 3438
3439 EXPECT_FALSE(occluded_layer->will_draw_called()); 3439 EXPECT_FALSE(occluded_layer->will_draw_called());
(...skipping 11 matching lines...) Expand all
3451 EXPECT_TRUE(top_layer->did_draw_called()); 3451 EXPECT_TRUE(top_layer->did_draw_called());
3452 } 3452 }
3453 3453
3454 TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) { 3454 TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) {
3455 host_impl_->active_tree()->SetRootLayer( 3455 host_impl_->active_tree()->SetRootLayer(
3456 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); 3456 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
3457 DidDrawCheckLayer* root = 3457 DidDrawCheckLayer* root =
3458 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 3458 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
3459 3459
3460 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); 3460 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
3461 root->SetForceRenderSurface(true); 3461 root->test_properties()->force_render_surface = true;
3462 DidDrawCheckLayer* layer1 = 3462 DidDrawCheckLayer* layer1 =
3463 static_cast<DidDrawCheckLayer*>(root->children()[0]); 3463 static_cast<DidDrawCheckLayer*>(root->children()[0]);
3464 3464
3465 layer1->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); 3465 layer1->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
3466 DidDrawCheckLayer* layer2 = 3466 DidDrawCheckLayer* layer2 =
3467 static_cast<DidDrawCheckLayer*>(layer1->children()[0]); 3467 static_cast<DidDrawCheckLayer*>(layer1->children()[0]);
3468 3468
3469 layer1->SetForceRenderSurface(true); 3469 layer1->test_properties()->force_render_surface = true;
3470 layer1->SetShouldFlattenTransform(true); 3470 layer1->SetShouldFlattenTransform(true);
3471 3471
3472 EXPECT_FALSE(root->did_draw_called()); 3472 EXPECT_FALSE(root->did_draw_called());
3473 EXPECT_FALSE(layer1->did_draw_called()); 3473 EXPECT_FALSE(layer1->did_draw_called());
3474 EXPECT_FALSE(layer2->did_draw_called()); 3474 EXPECT_FALSE(layer2->did_draw_called());
3475 3475
3476 LayerTreeHostImpl::FrameData frame; 3476 LayerTreeHostImpl::FrameData frame;
3477 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( 3477 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(
3478 host_impl_->active_tree()->root_layer()); 3478 host_impl_->active_tree()->root_layer());
3479 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 3479 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
3616 PrepareToDrawSuccessTestCase(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT)); 3616 PrepareToDrawSuccessTestCase(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT));
3617 cases.back().high_res_required = true; 3617 cases.back().high_res_required = true;
3618 cases.back().layer_between.has_missing_tile = true; 3618 cases.back().layer_between.has_missing_tile = true;
3619 cases.back().layer_before.has_missing_tile = true; 3619 cases.back().layer_before.has_missing_tile = true;
3620 cases.back().layer_before.is_animating = true; 3620 cases.back().layer_before.is_animating = true;
3621 3621
3622 host_impl_->active_tree()->SetRootLayer( 3622 host_impl_->active_tree()->SetRootLayer(
3623 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); 3623 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
3624 DidDrawCheckLayer* root = 3624 DidDrawCheckLayer* root =
3625 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 3625 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
3626 root->SetForceRenderSurface(true); 3626 root->test_properties()->force_render_surface = true;
3627 3627
3628 LayerTreeHostImpl::FrameData frame; 3628 LayerTreeHostImpl::FrameData frame;
3629 SetNeedsRebuildPropertyTrees(); 3629 SetNeedsRebuildPropertyTrees();
3630 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 3630 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
3631 host_impl_->DrawLayers(&frame); 3631 host_impl_->DrawLayers(&frame);
3632 host_impl_->DidDrawAllLayers(frame); 3632 host_impl_->DidDrawAllLayers(frame);
3633 host_impl_->SwapBuffers(frame); 3633 host_impl_->SwapBuffers(frame);
3634 3634
3635 for (size_t i = 0; i < cases.size(); ++i) { 3635 for (size_t i = 0; i < cases.size(); ++i) {
3636 // Clean up host_impl_ state. 3636 // Clean up host_impl_ state.
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
3715 cases.back().layer_between.has_incomplete_tile = true; 3715 cases.back().layer_between.has_incomplete_tile = true;
3716 // 3. High res required with missing tile. 3716 // 3. High res required with missing tile.
3717 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); 3717 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS));
3718 cases.back().high_res_required = true; 3718 cases.back().high_res_required = true;
3719 cases.back().layer_between.has_missing_tile = true; 3719 cases.back().layer_between.has_missing_tile = true;
3720 3720
3721 host_impl_->active_tree()->SetRootLayer( 3721 host_impl_->active_tree()->SetRootLayer(
3722 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); 3722 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
3723 DidDrawCheckLayer* root = 3723 DidDrawCheckLayer* root =
3724 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); 3724 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
3725 root->SetForceRenderSurface(true); 3725 root->test_properties()->force_render_surface = true;
3726 3726
3727 SetNeedsRebuildPropertyTrees(); 3727 SetNeedsRebuildPropertyTrees();
3728 host_impl_->OnDraw(external_transform, external_viewport, external_clip, 3728 host_impl_->OnDraw(external_transform, external_viewport, external_clip,
3729 resourceless_software_draw); 3729 resourceless_software_draw);
3730 3730
3731 for (size_t i = 0; i < cases.size(); ++i) { 3731 for (size_t i = 0; i < cases.size(); ++i) {
3732 const auto& testcase = cases[i]; 3732 const auto& testcase = cases[i];
3733 std::vector<LayerImpl*> to_remove; 3733 std::vector<LayerImpl*> to_remove;
3734 for (const auto& child : root->children()) 3734 for (const auto& child : root->children())
3735 to_remove.push_back(child); 3735 to_remove.push_back(child);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3776 SetNeedsRebuildPropertyTrees(); 3776 SetNeedsRebuildPropertyTrees();
3777 host_impl_->OnDraw(external_transform, external_viewport, external_clip, 3777 host_impl_->OnDraw(external_transform, external_viewport, external_clip,
3778 resourceless_software_draw); 3778 resourceless_software_draw);
3779 } 3779 }
3780 } 3780 }
3781 3781
3782 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { 3782 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) {
3783 std::unique_ptr<LayerImpl> root = 3783 std::unique_ptr<LayerImpl> root =
3784 LayerImpl::Create(host_impl_->active_tree(), 1); 3784 LayerImpl::Create(host_impl_->active_tree(), 1);
3785 root->SetScrollClipLayer(Layer::INVALID_ID); 3785 root->SetScrollClipLayer(Layer::INVALID_ID);
3786 root->SetForceRenderSurface(true); 3786 root->test_properties()->force_render_surface = true;
3787 host_impl_->active_tree()->SetRootLayer(std::move(root)); 3787 host_impl_->active_tree()->SetRootLayer(std::move(root));
3788 SetNeedsRebuildPropertyTrees(); 3788 SetNeedsRebuildPropertyTrees();
3789 DrawFrame(); 3789 DrawFrame();
3790 3790
3791 // Scroll event is ignored because layer is not scrollable. 3791 // Scroll event is ignored because layer is not scrollable.
3792 InputHandler::ScrollStatus status = host_impl_->ScrollBegin( 3792 InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
3793 BeginState(gfx::Point()).get(), InputHandler::WHEEL); 3793 BeginState(gfx::Point()).get(), InputHandler::WHEEL);
3794 EXPECT_EQ(InputHandler::SCROLL_IGNORED, status.thread); 3794 EXPECT_EQ(InputHandler::SCROLL_IGNORED, status.thread);
3795 EXPECT_EQ(MainThreadScrollingReason::kNoScrollingLayer, 3795 EXPECT_EQ(MainThreadScrollingReason::kNoScrollingLayer,
3796 status.main_thread_scrolling_reasons); 3796 status.main_thread_scrolling_reasons);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
3874 3874
3875 std::unique_ptr<LayerImpl> outer_scroll = LayerImpl::Create(tree_impl, 4); 3875 std::unique_ptr<LayerImpl> outer_scroll = LayerImpl::Create(tree_impl, 4);
3876 std::unique_ptr<LayerImpl> outer_clip = LayerImpl::Create(tree_impl, 5); 3876 std::unique_ptr<LayerImpl> outer_clip = LayerImpl::Create(tree_impl, 5);
3877 3877
3878 root_clip->SetBounds(inner_viewport_size); 3878 root_clip->SetBounds(inner_viewport_size);
3879 root->SetScrollClipLayer(root_clip->id()); 3879 root->SetScrollClipLayer(root_clip->id());
3880 root->SetBounds(outer_viewport_size); 3880 root->SetBounds(outer_viewport_size);
3881 root->SetPosition(gfx::PointF()); 3881 root->SetPosition(gfx::PointF());
3882 root->SetDrawsContent(false); 3882 root->SetDrawsContent(false);
3883 root->SetIsContainerForFixedPositionLayers(true); 3883 root->SetIsContainerForFixedPositionLayers(true);
3884 root_clip->SetForceRenderSurface(true); 3884 root_clip->test_properties()->force_render_surface = true;
3885 outer_clip->SetBounds(outer_viewport_size); 3885 outer_clip->SetBounds(outer_viewport_size);
3886 outer_scroll->SetScrollClipLayer(outer_clip->id()); 3886 outer_scroll->SetScrollClipLayer(outer_clip->id());
3887 outer_scroll->SetBounds(scroll_layer_size); 3887 outer_scroll->SetBounds(scroll_layer_size);
3888 outer_scroll->SetPosition(gfx::PointF()); 3888 outer_scroll->SetPosition(gfx::PointF());
3889 outer_scroll->SetDrawsContent(false); 3889 outer_scroll->SetDrawsContent(false);
3890 outer_scroll->SetIsContainerForFixedPositionLayers(true); 3890 outer_scroll->SetIsContainerForFixedPositionLayers(true);
3891 3891
3892 int inner_viewport_scroll_layer_id = root->id(); 3892 int inner_viewport_scroll_layer_id = root->id();
3893 int outer_viewport_scroll_layer_id = outer_scroll->id(); 3893 int outer_viewport_scroll_layer_id = outer_scroll->id();
3894 int page_scale_layer_id = page_scale->id(); 3894 int page_scale_layer_id = page_scale->id();
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
4684 scroll_clip_layer->SetBounds(surface_size); 4684 scroll_clip_layer->SetBounds(surface_size);
4685 4685
4686 std::unique_ptr<LayerImpl> scroll_layer = 4686 std::unique_ptr<LayerImpl> scroll_layer =
4687 LayerImpl::Create(host_impl_->active_tree(), 2); 4687 LayerImpl::Create(host_impl_->active_tree(), 2);
4688 scroll_layer->SetScrollClipLayer(3); 4688 scroll_layer->SetScrollClipLayer(3);
4689 scroll_layer->SetBounds(contents_size); 4689 scroll_layer->SetBounds(contents_size);
4690 scroll_layer->SetPosition(gfx::PointF()); 4690 scroll_layer->SetPosition(gfx::PointF());
4691 scroll_layer->AddChild(std::move(content_layer)); 4691 scroll_layer->AddChild(std::move(content_layer));
4692 scroll_clip_layer->AddChild(std::move(scroll_layer)); 4692 scroll_clip_layer->AddChild(std::move(scroll_layer));
4693 4693
4694 scroll_clip_layer->SetForceRenderSurface(true); 4694 scroll_clip_layer->test_properties()->force_render_surface = true;
4695 host_impl_->active_tree()->SetRootLayer(std::move(scroll_clip_layer)); 4695 host_impl_->active_tree()->SetRootLayer(std::move(scroll_clip_layer));
4696 host_impl_->SetViewportSize(surface_size); 4696 host_impl_->SetViewportSize(surface_size);
4697 SetNeedsRebuildPropertyTrees(); 4697 SetNeedsRebuildPropertyTrees();
4698 DrawFrame(); 4698 DrawFrame();
4699 4699
4700 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, 4700 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD,
4701 host_impl_->ScrollBegin(BeginState(gfx::Point(5, 5)).get(), 4701 host_impl_->ScrollBegin(BeginState(gfx::Point(5, 5)).get(),
4702 InputHandler::WHEEL) 4702 InputHandler::WHEEL)
4703 .thread); 4703 .thread);
4704 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10)).get()); 4704 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10)).get());
4705 host_impl_->ScrollEnd(EndState().get()); 4705 host_impl_->ScrollEnd(EndState().get());
4706 EXPECT_TRUE(did_request_redraw_); 4706 EXPECT_TRUE(did_request_redraw_);
4707 EXPECT_TRUE(did_request_commit_); 4707 EXPECT_TRUE(did_request_commit_);
4708 } 4708 }
4709 4709
4710 TEST_F(LayerTreeHostImplTest, ScrollChildCallsCommitAndRedraw) { 4710 TEST_F(LayerTreeHostImplTest, ScrollChildCallsCommitAndRedraw) {
4711 gfx::Size surface_size(10, 10); 4711 gfx::Size surface_size(10, 10);
4712 gfx::Size contents_size(20, 20); 4712 gfx::Size contents_size(20, 20);
4713 std::unique_ptr<LayerImpl> root = 4713 std::unique_ptr<LayerImpl> root =
4714 LayerImpl::Create(host_impl_->active_tree(), 1); 4714 LayerImpl::Create(host_impl_->active_tree(), 1);
4715 root->SetBounds(surface_size); 4715 root->SetBounds(surface_size);
4716 root->AddChild(CreateScrollableLayer(2, contents_size, root.get())); 4716 root->AddChild(CreateScrollableLayer(2, contents_size, root.get()));
4717 root->SetForceRenderSurface(true); 4717 root->test_properties()->force_render_surface = true;
4718 host_impl_->active_tree()->SetRootLayer(std::move(root)); 4718 host_impl_->active_tree()->SetRootLayer(std::move(root));
4719 host_impl_->SetViewportSize(surface_size); 4719 host_impl_->SetViewportSize(surface_size);
4720 SetNeedsRebuildPropertyTrees(); 4720 SetNeedsRebuildPropertyTrees();
4721 DrawFrame(); 4721 DrawFrame();
4722 4722
4723 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, 4723 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD,
4724 host_impl_->ScrollBegin(BeginState(gfx::Point(5, 5)).get(), 4724 host_impl_->ScrollBegin(BeginState(gfx::Point(5, 5)).get(),
4725 InputHandler::WHEEL) 4725 InputHandler::WHEEL)
4726 .thread); 4726 .thread);
4727 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10)).get()); 4727 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10)).get());
4728 host_impl_->ScrollEnd(EndState().get()); 4728 host_impl_->ScrollEnd(EndState().get());
4729 EXPECT_TRUE(did_request_redraw_); 4729 EXPECT_TRUE(did_request_redraw_);
4730 EXPECT_TRUE(did_request_commit_); 4730 EXPECT_TRUE(did_request_commit_);
4731 } 4731 }
4732 4732
4733 TEST_F(LayerTreeHostImplTest, ScrollMissesChild) { 4733 TEST_F(LayerTreeHostImplTest, ScrollMissesChild) {
4734 gfx::Size surface_size(10, 10); 4734 gfx::Size surface_size(10, 10);
4735 std::unique_ptr<LayerImpl> root = 4735 std::unique_ptr<LayerImpl> root =
4736 LayerImpl::Create(host_impl_->active_tree(), 1); 4736 LayerImpl::Create(host_impl_->active_tree(), 1);
4737 root->AddChild(CreateScrollableLayer(2, surface_size, root.get())); 4737 root->AddChild(CreateScrollableLayer(2, surface_size, root.get()));
4738 root->SetForceRenderSurface(true); 4738 root->test_properties()->force_render_surface = true;
4739 host_impl_->active_tree()->SetRootLayer(std::move(root)); 4739 host_impl_->active_tree()->SetRootLayer(std::move(root));
4740 host_impl_->SetViewportSize(surface_size); 4740 host_impl_->SetViewportSize(surface_size);
4741 SetNeedsRebuildPropertyTrees(); 4741 SetNeedsRebuildPropertyTrees();
4742 DrawFrame(); 4742 DrawFrame();
4743 4743
4744 // Scroll event is ignored because the input coordinate is outside the layer 4744 // Scroll event is ignored because the input coordinate is outside the layer
4745 // boundaries. 4745 // boundaries.
4746 InputHandler::ScrollStatus status = host_impl_->ScrollBegin( 4746 InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
4747 BeginState(gfx::Point(15, 5)).get(), InputHandler::WHEEL); 4747 BeginState(gfx::Point(15, 5)).get(), InputHandler::WHEEL);
4748 EXPECT_EQ(InputHandler::SCROLL_IGNORED, status.thread); 4748 EXPECT_EQ(InputHandler::SCROLL_IGNORED, status.thread);
4749 EXPECT_EQ(MainThreadScrollingReason::kNoScrollingLayer, 4749 EXPECT_EQ(MainThreadScrollingReason::kNoScrollingLayer,
4750 status.main_thread_scrolling_reasons); 4750 status.main_thread_scrolling_reasons);
4751 4751
4752 EXPECT_FALSE(did_request_redraw_); 4752 EXPECT_FALSE(did_request_redraw_);
4753 EXPECT_FALSE(did_request_commit_); 4753 EXPECT_FALSE(did_request_commit_);
4754 } 4754 }
4755 4755
4756 TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) { 4756 TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) {
4757 gfx::Size surface_size(10, 10); 4757 gfx::Size surface_size(10, 10);
4758 std::unique_ptr<LayerImpl> root = 4758 std::unique_ptr<LayerImpl> root =
4759 LayerImpl::Create(host_impl_->active_tree(), 1); 4759 LayerImpl::Create(host_impl_->active_tree(), 1);
4760 root->SetForceRenderSurface(true); 4760 root->test_properties()->force_render_surface = true;
4761 std::unique_ptr<LayerImpl> child = 4761 std::unique_ptr<LayerImpl> child =
4762 CreateScrollableLayer(2, surface_size, root.get()); 4762 CreateScrollableLayer(2, surface_size, root.get());
4763 host_impl_->SetViewportSize(surface_size); 4763 host_impl_->SetViewportSize(surface_size);
4764 4764
4765 gfx::Transform matrix; 4765 gfx::Transform matrix;
4766 matrix.RotateAboutXAxis(180.0); 4766 matrix.RotateAboutXAxis(180.0);
4767 child->SetTransform(matrix); 4767 child->SetTransform(matrix);
4768 child->SetDoubleSided(false); 4768 child->test_properties()->double_sided = false;
4769 4769
4770 root->AddChild(std::move(child)); 4770 root->AddChild(std::move(child));
4771 host_impl_->active_tree()->SetRootLayer(std::move(root)); 4771 host_impl_->active_tree()->SetRootLayer(std::move(root));
4772 SetNeedsRebuildPropertyTrees(); 4772 SetNeedsRebuildPropertyTrees();
4773 DrawFrame(); 4773 DrawFrame();
4774 4774
4775 // Scroll event is ignored because the scrollable layer is not facing the 4775 // Scroll event is ignored because the scrollable layer is not facing the
4776 // viewer and there is nothing scrollable behind it. 4776 // viewer and there is nothing scrollable behind it.
4777 InputHandler::ScrollStatus status = host_impl_->ScrollBegin( 4777 InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
4778 BeginState(gfx::Point(5, 5)).get(), InputHandler::WHEEL); 4778 BeginState(gfx::Point(5, 5)).get(), InputHandler::WHEEL);
(...skipping 14 matching lines...) Expand all
4793 content_layer->set_main_thread_scrolling_reasons( 4793 content_layer->set_main_thread_scrolling_reasons(
4794 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); 4794 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
4795 content_layer->SetScrollClipLayer(Layer::INVALID_ID); 4795 content_layer->SetScrollClipLayer(Layer::INVALID_ID);
4796 4796
4797 // Note: we can use the same clip layer for both since both calls to 4797 // Note: we can use the same clip layer for both since both calls to
4798 // CreateScrollableLayer() use the same surface size. 4798 // CreateScrollableLayer() use the same surface size.
4799 std::unique_ptr<LayerImpl> scroll_layer = 4799 std::unique_ptr<LayerImpl> scroll_layer =
4800 CreateScrollableLayer(2, surface_size, clip_layer.get()); 4800 CreateScrollableLayer(2, surface_size, clip_layer.get());
4801 scroll_layer->AddChild(std::move(content_layer)); 4801 scroll_layer->AddChild(std::move(content_layer));
4802 clip_layer->AddChild(std::move(scroll_layer)); 4802 clip_layer->AddChild(std::move(scroll_layer));
4803 clip_layer->SetForceRenderSurface(true); 4803 clip_layer->test_properties()->force_render_surface = true;
4804 4804
4805 host_impl_->active_tree()->SetRootLayer(std::move(clip_layer)); 4805 host_impl_->active_tree()->SetRootLayer(std::move(clip_layer));
4806 host_impl_->SetViewportSize(surface_size); 4806 host_impl_->SetViewportSize(surface_size);
4807 SetNeedsRebuildPropertyTrees(); 4807 SetNeedsRebuildPropertyTrees();
4808 DrawFrame(); 4808 DrawFrame();
4809 4809
4810 // Scrolling fails because the content layer is asking to be scrolled on the 4810 // Scrolling fails because the content layer is asking to be scrolled on the
4811 // main thread. 4811 // main thread.
4812 InputHandler::ScrollStatus status = host_impl_->ScrollBegin( 4812 InputHandler::ScrollStatus status = host_impl_->ScrollBegin(
4813 BeginState(gfx::Point(5, 5)).get(), InputHandler::WHEEL); 4813 BeginState(gfx::Point(5, 5)).get(), InputHandler::WHEEL);
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
5012 } 5012 }
5013 5013
5014 TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) { 5014 TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) {
5015 // Scroll a child layer beyond its maximum scroll range and make sure the 5015 // Scroll a child layer beyond its maximum scroll range and make sure the
5016 // parent layer isn't scrolled. 5016 // parent layer isn't scrolled.
5017 gfx::Size surface_size(10, 10); 5017 gfx::Size surface_size(10, 10);
5018 gfx::Size content_size(20, 20); 5018 gfx::Size content_size(20, 20);
5019 std::unique_ptr<LayerImpl> root = 5019 std::unique_ptr<LayerImpl> root =
5020 LayerImpl::Create(host_impl_->active_tree(), 1); 5020 LayerImpl::Create(host_impl_->active_tree(), 1);
5021 root->SetBounds(surface_size); 5021 root->SetBounds(surface_size);
5022 root->SetForceRenderSurface(true); 5022 root->test_properties()->force_render_surface = true;
5023 std::unique_ptr<LayerImpl> grand_child = 5023 std::unique_ptr<LayerImpl> grand_child =
5024 CreateScrollableLayer(3, content_size, root.get()); 5024 CreateScrollableLayer(3, content_size, root.get());
5025 5025
5026 std::unique_ptr<LayerImpl> child = 5026 std::unique_ptr<LayerImpl> child =
5027 CreateScrollableLayer(2, content_size, root.get()); 5027 CreateScrollableLayer(2, content_size, root.get());
5028 LayerImpl* grand_child_layer = grand_child.get(); 5028 LayerImpl* grand_child_layer = grand_child.get();
5029 child->AddChild(std::move(grand_child)); 5029 child->AddChild(std::move(grand_child));
5030 5030
5031 LayerImpl* child_layer = child.get(); 5031 LayerImpl* child_layer = child.get();
5032 root->AddChild(std::move(child)); 5032 root->AddChild(std::move(child));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
5069 5069
5070 TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) { 5070 TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) {
5071 // Scroll a child layer beyond its maximum scroll range and make sure the 5071 // Scroll a child layer beyond its maximum scroll range and make sure the
5072 // the scroll doesn't bubble up to the parent layer. 5072 // the scroll doesn't bubble up to the parent layer.
5073 gfx::Size surface_size(20, 20); 5073 gfx::Size surface_size(20, 20);
5074 gfx::Size viewport_size(10, 10); 5074 gfx::Size viewport_size(10, 10);
5075 std::unique_ptr<LayerImpl> root_ptr = 5075 std::unique_ptr<LayerImpl> root_ptr =
5076 LayerImpl::Create(host_impl_->active_tree(), 1); 5076 LayerImpl::Create(host_impl_->active_tree(), 1);
5077 std::unique_ptr<LayerImpl> root_clip = 5077 std::unique_ptr<LayerImpl> root_clip =
5078 LayerImpl::Create(host_impl_->active_tree(), 2); 5078 LayerImpl::Create(host_impl_->active_tree(), 2);
5079 root_clip->SetForceRenderSurface(true); 5079 root_clip->test_properties()->force_render_surface = true;
5080 std::unique_ptr<LayerImpl> root_scrolling = 5080 std::unique_ptr<LayerImpl> root_scrolling =
5081 CreateScrollableLayer(3, surface_size, root_clip.get()); 5081 CreateScrollableLayer(3, surface_size, root_clip.get());
5082 root_scrolling->SetIsContainerForFixedPositionLayers(true); 5082 root_scrolling->SetIsContainerForFixedPositionLayers(true);
5083 5083
5084 std::unique_ptr<LayerImpl> grand_child = 5084 std::unique_ptr<LayerImpl> grand_child =
5085 CreateScrollableLayer(5, surface_size, root_clip.get()); 5085 CreateScrollableLayer(5, surface_size, root_clip.get());
5086 5086
5087 std::unique_ptr<LayerImpl> child = 5087 std::unique_ptr<LayerImpl> child =
5088 CreateScrollableLayer(4, surface_size, root_clip.get()); 5088 CreateScrollableLayer(4, surface_size, root_clip.get());
5089 LayerImpl* grand_child_layer = grand_child.get(); 5089 LayerImpl* grand_child_layer = grand_child.get();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
5201 } 5201 }
5202 TEST_F(LayerTreeHostImplTest, ScrollEventBubbling) { 5202 TEST_F(LayerTreeHostImplTest, ScrollEventBubbling) {
5203 // When we try to scroll a non-scrollable child layer, the scroll delta 5203 // When we try to scroll a non-scrollable child layer, the scroll delta
5204 // should be applied to one of its ancestors if possible. 5204 // should be applied to one of its ancestors if possible.
5205 gfx::Size surface_size(10, 10); 5205 gfx::Size surface_size(10, 10);
5206 gfx::Size content_size(20, 20); 5206 gfx::Size content_size(20, 20);
5207 std::unique_ptr<LayerImpl> root_ptr = 5207 std::unique_ptr<LayerImpl> root_ptr =
5208 LayerImpl::Create(host_impl_->active_tree(), 4); 5208 LayerImpl::Create(host_impl_->active_tree(), 4);
5209 std::unique_ptr<LayerImpl> root_clip = 5209 std::unique_ptr<LayerImpl> root_clip =
5210 LayerImpl::Create(host_impl_->active_tree(), 3); 5210 LayerImpl::Create(host_impl_->active_tree(), 3);
5211 root_clip->SetForceRenderSurface(true); 5211 root_clip->test_properties()->force_render_surface = true;
5212 std::unique_ptr<LayerImpl> root_scroll = 5212 std::unique_ptr<LayerImpl> root_scroll =
5213 CreateScrollableLayer(1, content_size, root_clip.get()); 5213 CreateScrollableLayer(1, content_size, root_clip.get());
5214 // Make 'root' the clip layer for child: since they have the same sizes the 5214 // Make 'root' the clip layer for child: since they have the same sizes the
5215 // child will have zero max_scroll_offset and scrolls will bubble. 5215 // child will have zero max_scroll_offset and scrolls will bubble.
5216 std::unique_ptr<LayerImpl> child = 5216 std::unique_ptr<LayerImpl> child =
5217 CreateScrollableLayer(2, content_size, root_scroll.get()); 5217 CreateScrollableLayer(2, content_size, root_scroll.get());
5218 child->SetIsContainerForFixedPositionLayers(true); 5218 child->SetIsContainerForFixedPositionLayers(true);
5219 root_scroll->SetBounds(content_size); 5219 root_scroll->SetBounds(content_size);
5220 5220
5221 int root_scroll_id = root_scroll->id(); 5221 int root_scroll_id = root_scroll->id();
(...skipping 29 matching lines...) Expand all
5251 5251
5252 TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) { 5252 TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) {
5253 gfx::Size surface_size(10, 10); 5253 gfx::Size surface_size(10, 10);
5254 std::unique_ptr<LayerImpl> root_ptr = 5254 std::unique_ptr<LayerImpl> root_ptr =
5255 LayerImpl::Create(host_impl_->active_tree(), 1); 5255 LayerImpl::Create(host_impl_->active_tree(), 1);
5256 std::unique_ptr<LayerImpl> root_clip = 5256 std::unique_ptr<LayerImpl> root_clip =
5257 LayerImpl::Create(host_impl_->active_tree(), 2); 5257 LayerImpl::Create(host_impl_->active_tree(), 2);
5258 std::unique_ptr<LayerImpl> root_scroll = 5258 std::unique_ptr<LayerImpl> root_scroll =
5259 CreateScrollableLayer(3, surface_size, root_clip.get()); 5259 CreateScrollableLayer(3, surface_size, root_clip.get());
5260 root_scroll->SetIsContainerForFixedPositionLayers(true); 5260 root_scroll->SetIsContainerForFixedPositionLayers(true);
5261 root_clip->SetForceRenderSurface(true); 5261 root_clip->test_properties()->force_render_surface = true;
5262 root_clip->AddChild(std::move(root_scroll)); 5262 root_clip->AddChild(std::move(root_scroll));
5263 root_ptr->AddChild(std::move(root_clip)); 5263 root_ptr->AddChild(std::move(root_clip));
5264 host_impl_->active_tree()->SetRootLayer(std::move(root_ptr)); 5264 host_impl_->active_tree()->SetRootLayer(std::move(root_ptr));
5265 host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 3, 5265 host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 3,
5266 Layer::INVALID_ID); 5266 Layer::INVALID_ID);
5267 host_impl_->active_tree()->DidBecomeActive(); 5267 host_impl_->active_tree()->DidBecomeActive();
5268 host_impl_->SetViewportSize(surface_size); 5268 host_impl_->SetViewportSize(surface_size);
5269 5269
5270 // Draw one frame and then immediately rebuild the layer tree to mimic a tree 5270 // Draw one frame and then immediately rebuild the layer tree to mimic a tree
5271 // synchronization. 5271 // synchronization.
5272 SetNeedsRebuildPropertyTrees(); 5272 SetNeedsRebuildPropertyTrees();
5273 DrawFrame(); 5273 DrawFrame();
5274 host_impl_->active_tree()->ClearLayers(); 5274 host_impl_->active_tree()->ClearLayers();
5275 std::unique_ptr<LayerImpl> root_ptr2 = 5275 std::unique_ptr<LayerImpl> root_ptr2 =
5276 LayerImpl::Create(host_impl_->active_tree(), 4); 5276 LayerImpl::Create(host_impl_->active_tree(), 4);
5277 std::unique_ptr<LayerImpl> root_clip2 = 5277 std::unique_ptr<LayerImpl> root_clip2 =
5278 LayerImpl::Create(host_impl_->active_tree(), 5); 5278 LayerImpl::Create(host_impl_->active_tree(), 5);
5279 std::unique_ptr<LayerImpl> root_scroll2 = 5279 std::unique_ptr<LayerImpl> root_scroll2 =
5280 CreateScrollableLayer(6, surface_size, root_clip2.get()); 5280 CreateScrollableLayer(6, surface_size, root_clip2.get());
5281 root_scroll2->SetIsContainerForFixedPositionLayers(true); 5281 root_scroll2->SetIsContainerForFixedPositionLayers(true);
5282 root_clip2->AddChild(std::move(root_scroll2)); 5282 root_clip2->AddChild(std::move(root_scroll2));
5283 root_clip2->SetForceRenderSurface(true); 5283 root_clip2->test_properties()->force_render_surface = true;
5284 root_ptr2->AddChild(std::move(root_clip2)); 5284 root_ptr2->AddChild(std::move(root_clip2));
5285 host_impl_->active_tree()->SetRootLayer(std::move(root_ptr2)); 5285 host_impl_->active_tree()->SetRootLayer(std::move(root_ptr2));
5286 host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 4, 6, 5286 host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 4, 6,
5287 Layer::INVALID_ID); 5287 Layer::INVALID_ID);
5288 host_impl_->active_tree()->DidBecomeActive(); 5288 host_impl_->active_tree()->DidBecomeActive();
5289 5289
5290 // Scrolling should still work even though we did not draw yet. 5290 // Scrolling should still work even though we did not draw yet.
5291 SetNeedsRebuildPropertyTrees(); 5291 SetNeedsRebuildPropertyTrees();
5292 RebuildPropertyTrees(); 5292 RebuildPropertyTrees();
5293 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, 5293 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD,
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
5900 } 5900 }
5901 5901
5902 5902
5903 TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) { 5903 TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) {
5904 // Scroll child layers beyond their maximum scroll range and make sure root 5904 // Scroll child layers beyond their maximum scroll range and make sure root
5905 // overscroll does not accumulate. 5905 // overscroll does not accumulate.
5906 InputHandlerScrollResult scroll_result; 5906 InputHandlerScrollResult scroll_result;
5907 gfx::Size surface_size(10, 10); 5907 gfx::Size surface_size(10, 10);
5908 std::unique_ptr<LayerImpl> root_clip = 5908 std::unique_ptr<LayerImpl> root_clip =
5909 LayerImpl::Create(host_impl_->active_tree(), 4); 5909 LayerImpl::Create(host_impl_->active_tree(), 4);
5910 root_clip->SetForceRenderSurface(true); 5910 root_clip->test_properties()->force_render_surface = true;
5911 5911
5912 std::unique_ptr<LayerImpl> root = 5912 std::unique_ptr<LayerImpl> root =
5913 CreateScrollableLayer(1, surface_size, root_clip.get()); 5913 CreateScrollableLayer(1, surface_size, root_clip.get());
5914 5914
5915 std::unique_ptr<LayerImpl> grand_child = 5915 std::unique_ptr<LayerImpl> grand_child =
5916 CreateScrollableLayer(3, surface_size, root_clip.get()); 5916 CreateScrollableLayer(3, surface_size, root_clip.get());
5917 5917
5918 std::unique_ptr<LayerImpl> child = 5918 std::unique_ptr<LayerImpl> child =
5919 CreateScrollableLayer(2, surface_size, root_clip.get()); 5919 CreateScrollableLayer(2, surface_size, root_clip.get());
5920 LayerImpl* grand_child_layer = grand_child.get(); 5920 LayerImpl* grand_child_layer = grand_child.get();
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
6189 gfx::Rect quad_visible_rect_; 6189 gfx::Rect quad_visible_rect_;
6190 ResourceId resource_id_; 6190 ResourceId resource_id_;
6191 }; 6191 };
6192 6192
6193 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { 6193 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) {
6194 { 6194 {
6195 std::unique_ptr<LayerImpl> root = 6195 std::unique_ptr<LayerImpl> root =
6196 LayerImpl::Create(host_impl_->active_tree(), 1); 6196 LayerImpl::Create(host_impl_->active_tree(), 1);
6197 root->SetBounds(gfx::Size(10, 10)); 6197 root->SetBounds(gfx::Size(10, 10));
6198 root->SetDrawsContent(false); 6198 root->SetDrawsContent(false);
6199 root->SetForceRenderSurface(true); 6199 root->test_properties()->force_render_surface = true;
6200 host_impl_->active_tree()->SetRootLayer(std::move(root)); 6200 host_impl_->active_tree()->SetRootLayer(std::move(root));
6201 } 6201 }
6202 LayerImpl* root = host_impl_->active_tree()->root_layer(); 6202 LayerImpl* root = host_impl_->active_tree()->root_layer();
6203 6203
6204 root->AddChild( 6204 root->AddChild(
6205 BlendStateCheckLayer::Create(host_impl_->active_tree(), 6205 BlendStateCheckLayer::Create(host_impl_->active_tree(),
6206 2, 6206 2,
6207 host_impl_->resource_provider())); 6207 host_impl_->resource_provider()));
6208 BlendStateCheckLayer* layer1 = 6208 BlendStateCheckLayer* layer1 =
6209 static_cast<BlendStateCheckLayer*>(root->children()[0]); 6209 static_cast<BlendStateCheckLayer*>(root->children()[0]);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
6311 host_impl_->DidDrawAllLayers(frame); 6311 host_impl_->DidDrawAllLayers(frame);
6312 6312
6313 // Parent layer with translucent opacity and opaque content. Since it has a 6313 // Parent layer with translucent opacity and opaque content. Since it has a
6314 // drawing child, it's drawn to a render surface which carries the opacity, 6314 // drawing child, it's drawn to a render surface which carries the opacity,
6315 // so it's itself drawn without blending. 6315 // so it's itself drawn without blending.
6316 // Child layer with opaque content, drawn without blending (parent surface 6316 // Child layer with opaque content, drawn without blending (parent surface
6317 // carries the inherited opacity). 6317 // carries the inherited opacity).
6318 layer1->SetContentsOpaque(true); 6318 layer1->SetContentsOpaque(true);
6319 layer1->SetOpacity(0.5f); 6319 layer1->SetOpacity(0.5f);
6320 layer1->NoteLayerPropertyChanged(); 6320 layer1->NoteLayerPropertyChanged();
6321 layer1->SetForceRenderSurface(true); 6321 layer1->test_properties()->force_render_surface = true;
6322 layer1->SetExpectation(false, true); 6322 layer1->SetExpectation(false, true);
6323 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); 6323 layer1->SetUpdateRect(gfx::Rect(layer1->bounds()));
6324 layer2->SetExpectation(false, false); 6324 layer2->SetExpectation(false, false);
6325 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); 6325 layer2->SetUpdateRect(gfx::Rect(layer1->bounds()));
6326 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( 6326 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(
6327 host_impl_->active_tree()->root_layer()); 6327 host_impl_->active_tree()->root_layer());
6328 SetNeedsRebuildPropertyTrees(); 6328 SetNeedsRebuildPropertyTrees();
6329 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 6329 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
6330 host_impl_->DrawLayers(&frame); 6330 host_impl_->DrawLayers(&frame);
6331 EXPECT_TRUE(layer1->quads_appended()); 6331 EXPECT_TRUE(layer1->quads_appended());
6332 EXPECT_TRUE(layer2->quads_appended()); 6332 EXPECT_TRUE(layer2->quads_appended());
6333 host_impl_->DidDrawAllLayers(frame); 6333 host_impl_->DidDrawAllLayers(frame);
6334 layer1->SetForceRenderSurface(false); 6334 layer1->test_properties()->force_render_surface = false;
6335 6335
6336 // Draw again, but with child non-opaque, to make sure 6336 // Draw again, but with child non-opaque, to make sure
6337 // layer1 not culled. 6337 // layer1 not culled.
6338 layer1->SetContentsOpaque(true); 6338 layer1->SetContentsOpaque(true);
6339 layer1->SetOpacity(1.f); 6339 layer1->SetOpacity(1.f);
6340 layer1->NoteLayerPropertyChanged(); 6340 layer1->NoteLayerPropertyChanged();
6341 layer1->SetExpectation(false, false); 6341 layer1->SetExpectation(false, false);
6342 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); 6342 layer1->SetUpdateRect(gfx::Rect(layer1->bounds()));
6343 layer2->SetContentsOpaque(true); 6343 layer2->SetContentsOpaque(true);
6344 layer2->SetOpacity(0.5f); 6344 layer2->SetOpacity(0.5f);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
6455 return FakeOutputSurface::CreateSoftware( 6455 return FakeOutputSurface::CreateSoftware(
6456 base::WrapUnique(new SoftwareOutputDevice())); 6456 base::WrapUnique(new SoftwareOutputDevice()));
6457 } 6457 }
6458 return FakeOutputSurface::Create3d(); 6458 return FakeOutputSurface::Create3d();
6459 } 6459 }
6460 6460
6461 void SetupActiveTreeLayers() { 6461 void SetupActiveTreeLayers() {
6462 host_impl_->active_tree()->set_background_color(SK_ColorGRAY); 6462 host_impl_->active_tree()->set_background_color(SK_ColorGRAY);
6463 host_impl_->active_tree()->SetRootLayer( 6463 host_impl_->active_tree()->SetRootLayer(
6464 LayerImpl::Create(host_impl_->active_tree(), 1)); 6464 LayerImpl::Create(host_impl_->active_tree(), 1));
6465 host_impl_->active_tree()->root_layer()->SetForceRenderSurface(true); 6465 host_impl_->active_tree()
6466 ->root_layer()
6467 ->test_properties()
6468 ->force_render_surface = true;
6466 host_impl_->active_tree()->root_layer()->AddChild( 6469 host_impl_->active_tree()->root_layer()->AddChild(
6467 BlendStateCheckLayer::Create(host_impl_->active_tree(), 6470 BlendStateCheckLayer::Create(host_impl_->active_tree(),
6468 2, 6471 2,
6469 host_impl_->resource_provider())); 6472 host_impl_->resource_provider()));
6470 child_ = static_cast<BlendStateCheckLayer*>( 6473 child_ = static_cast<BlendStateCheckLayer*>(
6471 host_impl_->active_tree()->root_layer()->children()[0]); 6474 host_impl_->active_tree()->root_layer()->children()[0]);
6472 child_->SetExpectation(false, false); 6475 child_->SetExpectation(false, false);
6473 child_->SetContentsOpaque(true); 6476 child_->SetContentsOpaque(true);
6474 } 6477 }
6475 6478
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
6758 TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { 6761 TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) {
6759 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); 6762 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create());
6760 std::unique_ptr<OutputSurface> output_surface( 6763 std::unique_ptr<OutputSurface> output_surface(
6761 FakeOutputSurface::Create3d(provider)); 6764 FakeOutputSurface::Create3d(provider));
6762 CreateHostImpl(DefaultSettings(), std::move(output_surface)); 6765 CreateHostImpl(DefaultSettings(), std::move(output_surface));
6763 6766
6764 std::unique_ptr<LayerImpl> root = 6767 std::unique_ptr<LayerImpl> root =
6765 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); 6768 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1);
6766 root->SetBounds(gfx::Size(10, 10)); 6769 root->SetBounds(gfx::Size(10, 10));
6767 root->SetDrawsContent(true); 6770 root->SetDrawsContent(true);
6768 root->SetForceRenderSurface(true); 6771 root->test_properties()->force_render_surface = true;
6769 host_impl_->active_tree()->SetRootLayer(std::move(root)); 6772 host_impl_->active_tree()->SetRootLayer(std::move(root));
6770 EXPECT_FALSE(provider->TestContext3d()->reshape_called()); 6773 EXPECT_FALSE(provider->TestContext3d()->reshape_called());
6771 provider->TestContext3d()->clear_reshape_called(); 6774 provider->TestContext3d()->clear_reshape_called();
6772 6775
6773 LayerTreeHostImpl::FrameData frame; 6776 LayerTreeHostImpl::FrameData frame;
6774 host_impl_->SetViewportSize(gfx::Size(10, 10)); 6777 host_impl_->SetViewportSize(gfx::Size(10, 10));
6775 host_impl_->active_tree()->SetDeviceScaleFactor(1.f); 6778 host_impl_->active_tree()->SetDeviceScaleFactor(1.f);
6776 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 6779 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
6777 host_impl_->DrawLayers(&frame); 6780 host_impl_->DrawLayers(&frame);
6778 EXPECT_TRUE(provider->TestContext3d()->reshape_called()); 6781 EXPECT_TRUE(provider->TestContext3d()->reshape_called());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
6824 settings, this, &task_runner_provider_, &stats_instrumentation_, 6827 settings, this, &task_runner_provider_, &stats_instrumentation_,
6825 &shared_bitmap_manager_, NULL, &task_graph_runner_, 0); 6828 &shared_bitmap_manager_, NULL, &task_graph_runner_, 0);
6826 layer_tree_host_impl->SetVisible(true); 6829 layer_tree_host_impl->SetVisible(true);
6827 layer_tree_host_impl->InitializeRenderer(output_surface.get()); 6830 layer_tree_host_impl->InitializeRenderer(output_surface.get());
6828 layer_tree_host_impl->WillBeginImplFrame( 6831 layer_tree_host_impl->WillBeginImplFrame(
6829 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); 6832 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE));
6830 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); 6833 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500));
6831 6834
6832 std::unique_ptr<LayerImpl> root = 6835 std::unique_ptr<LayerImpl> root =
6833 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); 6836 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1);
6834 root->SetForceRenderSurface(true); 6837 root->test_properties()->force_render_surface = true;
6835 std::unique_ptr<LayerImpl> child = 6838 std::unique_ptr<LayerImpl> child =
6836 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2); 6839 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2);
6837 child->SetPosition(gfx::PointF(12.f, 13.f)); 6840 child->SetPosition(gfx::PointF(12.f, 13.f));
6838 child->SetBounds(gfx::Size(14, 15)); 6841 child->SetBounds(gfx::Size(14, 15));
6839 child->SetDrawsContent(true); 6842 child->SetDrawsContent(true);
6840 root->SetBounds(gfx::Size(500, 500)); 6843 root->SetBounds(gfx::Size(500, 500));
6841 root->SetDrawsContent(true); 6844 root->SetDrawsContent(true);
6842 root->AddChild(std::move(child)); 6845 root->AddChild(std::move(child));
6843 layer_tree_host_impl->active_tree()->SetRootLayer(std::move(root)); 6846 layer_tree_host_impl->active_tree()->SetRootLayer(std::move(root));
6844 6847
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
6894 6897
6895 TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) { 6898 TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) {
6896 std::unique_ptr<LayerImpl> root = 6899 std::unique_ptr<LayerImpl> root =
6897 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); 6900 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1);
6898 std::unique_ptr<LayerImpl> child = 6901 std::unique_ptr<LayerImpl> child =
6899 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 2); 6902 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 2);
6900 child->SetBounds(gfx::Size(10, 10)); 6903 child->SetBounds(gfx::Size(10, 10));
6901 child->SetDrawsContent(true); 6904 child->SetDrawsContent(true);
6902 root->SetBounds(gfx::Size(10, 10)); 6905 root->SetBounds(gfx::Size(10, 10));
6903 root->SetDrawsContent(true); 6906 root->SetDrawsContent(true);
6904 root->SetForceRenderSurface(true); 6907 root->test_properties()->force_render_surface = true;
6905 root->AddChild(std::move(child)); 6908 root->AddChild(std::move(child));
6906 6909
6907 host_impl_->active_tree()->SetRootLayer(std::move(root)); 6910 host_impl_->active_tree()->SetRootLayer(std::move(root));
6908 6911
6909 LayerTreeHostImpl::FrameData frame; 6912 LayerTreeHostImpl::FrameData frame;
6910 6913
6911 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 6914 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
6912 EXPECT_EQ(1u, frame.render_surface_layer_list->size()); 6915 EXPECT_EQ(1u, frame.render_surface_layer_list->size());
6913 EXPECT_EQ(1u, frame.render_passes.size()); 6916 EXPECT_EQ(1u, frame.render_passes.size());
6914 host_impl_->DidDrawAllLayers(frame); 6917 host_impl_->DidDrawAllLayers(frame);
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
7146 LayerImpl::Create(my_host_impl->active_tree(), 1); 7149 LayerImpl::Create(my_host_impl->active_tree(), 1);
7147 std::unique_ptr<LayerImpl> child = 7150 std::unique_ptr<LayerImpl> child =
7148 LayerImpl::Create(my_host_impl->active_tree(), 2); 7151 LayerImpl::Create(my_host_impl->active_tree(), 2);
7149 std::unique_ptr<LayerImpl> grand_child = 7152 std::unique_ptr<LayerImpl> grand_child =
7150 FakeLayerWithQuads::Create(my_host_impl->active_tree(), 3); 7153 FakeLayerWithQuads::Create(my_host_impl->active_tree(), 3);
7151 7154
7152 gfx::Rect root_rect(0, 0, 100, 100); 7155 gfx::Rect root_rect(0, 0, 100, 100);
7153 gfx::Rect child_rect(10, 10, 50, 50); 7156 gfx::Rect child_rect(10, 10, 50, 50);
7154 gfx::Rect grand_child_rect(5, 5, 150, 150); 7157 gfx::Rect grand_child_rect(5, 5, 150, 150);
7155 7158
7156 root->SetForceRenderSurface(true); 7159 root->test_properties()->force_render_surface = true;
7157 root->SetPosition(gfx::PointF(root_rect.origin())); 7160 root->SetPosition(gfx::PointF(root_rect.origin()));
7158 root->SetBounds(root_rect.size()); 7161 root->SetBounds(root_rect.size());
7159 root->draw_properties().visible_layer_rect = root_rect; 7162 root->draw_properties().visible_layer_rect = root_rect;
7160 root->SetDrawsContent(false); 7163 root->SetDrawsContent(false);
7161 7164
7162 child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y())); 7165 child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y()));
7163 child->SetOpacity(0.5f); 7166 child->SetOpacity(0.5f);
7164 child->SetBounds(gfx::Size(child_rect.width(), child_rect.height())); 7167 child->SetBounds(gfx::Size(child_rect.width(), child_rect.height()));
7165 child->draw_properties().visible_layer_rect = child_rect; 7168 child->draw_properties().visible_layer_rect = child_rect;
7166 child->SetDrawsContent(false); 7169 child->SetDrawsContent(false);
7167 child->SetForceRenderSurface(true); 7170 child->test_properties()->force_render_surface = true;
7168 7171
7169 grand_child->SetPosition(gfx::PointF(grand_child_rect.origin())); 7172 grand_child->SetPosition(gfx::PointF(grand_child_rect.origin()));
7170 grand_child->SetBounds(grand_child_rect.size()); 7173 grand_child->SetBounds(grand_child_rect.size());
7171 grand_child->draw_properties().visible_layer_rect = grand_child_rect; 7174 grand_child->draw_properties().visible_layer_rect = grand_child_rect;
7172 grand_child->SetDrawsContent(true); 7175 grand_child->SetDrawsContent(true);
7173 7176
7174 child->AddChild(std::move(grand_child)); 7177 child->AddChild(std::move(grand_child));
7175 root->AddChild(std::move(child)); 7178 root->AddChild(std::move(child));
7176 7179
7177 my_host_impl->active_tree()->SetRootLayer(std::move(root)); 7180 my_host_impl->active_tree()->SetRootLayer(std::move(root));
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
7243 std::unique_ptr<TestWebGraphicsContext3D> context = 7246 std::unique_ptr<TestWebGraphicsContext3D> context =
7244 TestWebGraphicsContext3D::Create(); 7247 TestWebGraphicsContext3D::Create();
7245 TestWebGraphicsContext3D* context3d = context.get(); 7248 TestWebGraphicsContext3D* context3d = context.get();
7246 std::unique_ptr<OutputSurface> output_surface( 7249 std::unique_ptr<OutputSurface> output_surface(
7247 FakeOutputSurface::Create3d(std::move(context))); 7250 FakeOutputSurface::Create3d(std::move(context)));
7248 CreateHostImpl(DefaultSettings(), std::move(output_surface)); 7251 CreateHostImpl(DefaultSettings(), std::move(output_surface));
7249 7252
7250 std::unique_ptr<LayerImpl> root_layer = 7253 std::unique_ptr<LayerImpl> root_layer =
7251 LayerImpl::Create(host_impl_->active_tree(), 1); 7254 LayerImpl::Create(host_impl_->active_tree(), 1);
7252 root_layer->SetBounds(gfx::Size(10, 10)); 7255 root_layer->SetBounds(gfx::Size(10, 10));
7253 root_layer->SetForceRenderSurface(true); 7256 root_layer->test_properties()->force_render_surface = true;
7254 7257
7255 scoped_refptr<VideoFrame> softwareFrame = 7258 scoped_refptr<VideoFrame> softwareFrame =
7256 media::VideoFrame::CreateColorFrame( 7259 media::VideoFrame::CreateColorFrame(
7257 gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); 7260 gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta());
7258 FakeVideoFrameProvider provider; 7261 FakeVideoFrameProvider provider;
7259 provider.set_frame(softwareFrame); 7262 provider.set_frame(softwareFrame);
7260 std::unique_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( 7263 std::unique_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create(
7261 host_impl_->active_tree(), 4, &provider, media::VIDEO_ROTATION_0); 7264 host_impl_->active_tree(), 4, &provider, media::VIDEO_ROTATION_0);
7262 video_layer->SetBounds(gfx::Size(10, 10)); 7265 video_layer->SetBounds(gfx::Size(10, 10));
7263 video_layer->SetDrawsContent(true); 7266 video_layer->SetDrawsContent(true);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
7368 EXPECT_EQ(expect_to_draw, host_impl_->SwapBuffers(frame)); 7371 EXPECT_EQ(expect_to_draw, host_impl_->SwapBuffers(frame));
7369 } 7372 }
7370 }; 7373 };
7371 7374
7372 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) { 7375 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) {
7373 std::unique_ptr<SolidColorLayerImpl> root = 7376 std::unique_ptr<SolidColorLayerImpl> root =
7374 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 7377 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
7375 root->SetPosition(gfx::PointF()); 7378 root->SetPosition(gfx::PointF());
7376 root->SetBounds(gfx::Size(10, 10)); 7379 root->SetBounds(gfx::Size(10, 10));
7377 root->SetDrawsContent(true); 7380 root->SetDrawsContent(true);
7378 root->SetForceRenderSurface(true); 7381 root->test_properties()->force_render_surface = true;
7379 7382
7380 // Child layer is in the bottom right corner. 7383 // Child layer is in the bottom right corner.
7381 std::unique_ptr<SolidColorLayerImpl> child = 7384 std::unique_ptr<SolidColorLayerImpl> child =
7382 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); 7385 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2);
7383 child->SetPosition(gfx::PointF(9.f, 9.f)); 7386 child->SetPosition(gfx::PointF(9.f, 9.f));
7384 child->SetBounds(gfx::Size(1, 1)); 7387 child->SetBounds(gfx::Size(1, 1));
7385 child->SetDrawsContent(true); 7388 child->SetDrawsContent(true);
7386 root->AddChild(std::move(child)); 7389 root->AddChild(std::move(child));
7387 7390
7388 host_impl_->active_tree()->SetRootLayer(std::move(root)); 7391 host_impl_->active_tree()->SetRootLayer(std::move(root));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
7425 host_impl_->SetViewportSize(device_viewport_size); 7428 host_impl_->SetViewportSize(device_viewport_size);
7426 7429
7427 host_impl_->CreatePendingTree(); 7430 host_impl_->CreatePendingTree();
7428 host_impl_->pending_tree()->SetDeviceScaleFactor(device_scale_factor); 7431 host_impl_->pending_tree()->SetDeviceScaleFactor(device_scale_factor);
7429 host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f / 16.f, 7432 host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f / 16.f,
7430 16.f); 7433 16.f);
7431 7434
7432 std::unique_ptr<LayerImpl> scoped_root = 7435 std::unique_ptr<LayerImpl> scoped_root =
7433 LayerImpl::Create(host_impl_->pending_tree(), 1); 7436 LayerImpl::Create(host_impl_->pending_tree(), 1);
7434 LayerImpl* root = scoped_root.get(); 7437 LayerImpl* root = scoped_root.get();
7435 root->SetForceRenderSurface(true); 7438 root->test_properties()->force_render_surface = true;
7436 7439
7437 host_impl_->pending_tree()->SetRootLayer(std::move(scoped_root)); 7440 host_impl_->pending_tree()->SetRootLayer(std::move(scoped_root));
7438 7441
7439 std::unique_ptr<LayerImpl> scoped_scrolling_layer = 7442 std::unique_ptr<LayerImpl> scoped_scrolling_layer =
7440 LayerImpl::Create(host_impl_->pending_tree(), 2); 7443 LayerImpl::Create(host_impl_->pending_tree(), 2);
7441 LayerImpl* scrolling_layer = scoped_scrolling_layer.get(); 7444 LayerImpl* scrolling_layer = scoped_scrolling_layer.get();
7442 root->AddChild(std::move(scoped_scrolling_layer)); 7445 root->AddChild(std::move(scoped_scrolling_layer));
7443 7446
7444 gfx::Size content_layer_bounds(100000, 100); 7447 gfx::Size content_layer_bounds(100000, 100);
7445 scoped_refptr<FakeRasterSource> raster_source( 7448 scoped_refptr<FakeRasterSource> raster_source(
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
7800 7803
7801 TEST_F(LayerTreeHostImplTest, TouchFlingShouldNotBubble) { 7804 TEST_F(LayerTreeHostImplTest, TouchFlingShouldNotBubble) {
7802 // When flinging via touch, only the child should scroll (we should not 7805 // When flinging via touch, only the child should scroll (we should not
7803 // bubble). 7806 // bubble).
7804 gfx::Size surface_size(10, 10); 7807 gfx::Size surface_size(10, 10);
7805 gfx::Size content_size(20, 20); 7808 gfx::Size content_size(20, 20);
7806 std::unique_ptr<LayerImpl> root_ptr = 7809 std::unique_ptr<LayerImpl> root_ptr =
7807 LayerImpl::Create(host_impl_->active_tree(), 4); 7810 LayerImpl::Create(host_impl_->active_tree(), 4);
7808 std::unique_ptr<LayerImpl> root_clip = 7811 std::unique_ptr<LayerImpl> root_clip =
7809 LayerImpl::Create(host_impl_->active_tree(), 3); 7812 LayerImpl::Create(host_impl_->active_tree(), 3);
7810 root_clip->SetForceRenderSurface(true); 7813 root_clip->test_properties()->force_render_surface = true;
7811 7814
7812 std::unique_ptr<LayerImpl> root_scroll = 7815 std::unique_ptr<LayerImpl> root_scroll =
7813 CreateScrollableLayer(1, content_size, root_clip.get()); 7816 CreateScrollableLayer(1, content_size, root_clip.get());
7814 root_scroll->SetIsContainerForFixedPositionLayers(true); 7817 root_scroll->SetIsContainerForFixedPositionLayers(true);
7815 std::unique_ptr<LayerImpl> child = 7818 std::unique_ptr<LayerImpl> child =
7816 CreateScrollableLayer(2, content_size, root_clip.get()); 7819 CreateScrollableLayer(2, content_size, root_clip.get());
7817 7820
7818 root_scroll->AddChild(std::move(child)); 7821 root_scroll->AddChild(std::move(child));
7819 int root_id = root_scroll->id(); 7822 int root_id = root_scroll->id();
7820 root_clip->AddChild(std::move(root_scroll)); 7823 root_clip->AddChild(std::move(root_scroll));
(...skipping 30 matching lines...) Expand all
7851 ExpectNone(*scroll_info.get(), root_id); 7854 ExpectNone(*scroll_info.get(), root_id);
7852 } 7855 }
7853 } 7856 }
7854 7857
7855 TEST_F(LayerTreeHostImplTest, TouchFlingShouldContinueScrollingCurrentLayer) { 7858 TEST_F(LayerTreeHostImplTest, TouchFlingShouldContinueScrollingCurrentLayer) {
7856 // Scroll a child layer beyond its maximum scroll range and make sure the 7859 // Scroll a child layer beyond its maximum scroll range and make sure the
7857 // the scroll doesn't bubble up to the parent layer. 7860 // the scroll doesn't bubble up to the parent layer.
7858 gfx::Size surface_size(10, 10); 7861 gfx::Size surface_size(10, 10);
7859 std::unique_ptr<LayerImpl> root = 7862 std::unique_ptr<LayerImpl> root =
7860 LayerImpl::Create(host_impl_->active_tree(), 1); 7863 LayerImpl::Create(host_impl_->active_tree(), 1);
7861 root->SetForceRenderSurface(true); 7864 root->test_properties()->force_render_surface = true;
7862 std::unique_ptr<LayerImpl> root_scrolling = 7865 std::unique_ptr<LayerImpl> root_scrolling =
7863 CreateScrollableLayer(2, surface_size, root.get()); 7866 CreateScrollableLayer(2, surface_size, root.get());
7864 7867
7865 std::unique_ptr<LayerImpl> grand_child = 7868 std::unique_ptr<LayerImpl> grand_child =
7866 CreateScrollableLayer(4, surface_size, root.get()); 7869 CreateScrollableLayer(4, surface_size, root.get());
7867 grand_child->layer_tree_impl() 7870 grand_child->layer_tree_impl()
7868 ->property_trees() 7871 ->property_trees()
7869 ->scroll_tree.UpdateScrollOffsetBaseForTesting(grand_child->id(), 7872 ->scroll_tree.UpdateScrollOffsetBaseForTesting(grand_child->id(),
7870 gfx::ScrollOffset(0, 2)); 7873 gfx::ScrollOffset(0, 2));
7871 7874
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
7940 host_impl_->ScrollEnd(EndState().get()); 7943 host_impl_->ScrollEnd(EndState().get());
7941 } 7944 }
7942 } 7945 }
7943 7946
7944 TEST_F(LayerTreeHostImplTest, WheelFlingShouldntBubble) { 7947 TEST_F(LayerTreeHostImplTest, WheelFlingShouldntBubble) {
7945 // When flinging via wheel, we shouldn't bubble. 7948 // When flinging via wheel, we shouldn't bubble.
7946 gfx::Size surface_size(10, 10); 7949 gfx::Size surface_size(10, 10);
7947 gfx::Size content_size(20, 20); 7950 gfx::Size content_size(20, 20);
7948 std::unique_ptr<LayerImpl> root_clip = 7951 std::unique_ptr<LayerImpl> root_clip =
7949 LayerImpl::Create(host_impl_->active_tree(), 3); 7952 LayerImpl::Create(host_impl_->active_tree(), 3);
7950 root_clip->SetForceRenderSurface(true); 7953 root_clip->test_properties()->force_render_surface = true;
7951 std::unique_ptr<LayerImpl> root_scroll = 7954 std::unique_ptr<LayerImpl> root_scroll =
7952 CreateScrollableLayer(1, content_size, root_clip.get()); 7955 CreateScrollableLayer(1, content_size, root_clip.get());
7953 int root_scroll_id = root_scroll->id(); 7956 int root_scroll_id = root_scroll->id();
7954 std::unique_ptr<LayerImpl> child = 7957 std::unique_ptr<LayerImpl> child =
7955 CreateScrollableLayer(2, content_size, root_clip.get()); 7958 CreateScrollableLayer(2, content_size, root_clip.get());
7956 7959
7957 root_scroll->AddChild(std::move(child)); 7960 root_scroll->AddChild(std::move(child));
7958 root_clip->AddChild(std::move(root_scroll)); 7961 root_clip->AddChild(std::move(root_scroll));
7959 7962
7960 host_impl_->SetViewportSize(surface_size); 7963 host_impl_->SetViewportSize(surface_size);
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
8195 } 8198 }
8196 8199
8197 // Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed 8200 // Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed
8198 // to CompositorFrameMetadata after SwapBuffers(); 8201 // to CompositorFrameMetadata after SwapBuffers();
8199 TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { 8202 TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) {
8200 std::unique_ptr<SolidColorLayerImpl> root = 8203 std::unique_ptr<SolidColorLayerImpl> root =
8201 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 8204 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
8202 root->SetPosition(gfx::PointF()); 8205 root->SetPosition(gfx::PointF());
8203 root->SetBounds(gfx::Size(10, 10)); 8206 root->SetBounds(gfx::Size(10, 10));
8204 root->SetDrawsContent(true); 8207 root->SetDrawsContent(true);
8205 root->SetForceRenderSurface(true); 8208 root->test_properties()->force_render_surface = true;
8206 8209
8207 host_impl_->active_tree()->SetRootLayer(std::move(root)); 8210 host_impl_->active_tree()->SetRootLayer(std::move(root));
8208 8211
8209 FakeOutputSurface* fake_output_surface = 8212 FakeOutputSurface* fake_output_surface =
8210 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); 8213 static_cast<FakeOutputSurface*>(host_impl_->output_surface());
8211 8214
8212 const std::vector<ui::LatencyInfo>& metadata_latency_before = 8215 const std::vector<ui::LatencyInfo>& metadata_latency_before =
8213 fake_output_surface->last_sent_frame().metadata.latency_info; 8216 fake_output_surface->last_sent_frame().metadata.latency_info;
8214 EXPECT_TRUE(metadata_latency_before.empty()); 8217 EXPECT_TRUE(metadata_latency_before.empty());
8215 8218
(...skipping 19 matching lines...) Expand all
8235 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); 8238 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL));
8236 } 8239 }
8237 8240
8238 TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) { 8241 TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) {
8239 int root_layer_id = 1; 8242 int root_layer_id = 1;
8240 std::unique_ptr<SolidColorLayerImpl> root = 8243 std::unique_ptr<SolidColorLayerImpl> root =
8241 SolidColorLayerImpl::Create(host_impl_->active_tree(), root_layer_id); 8244 SolidColorLayerImpl::Create(host_impl_->active_tree(), root_layer_id);
8242 root->SetPosition(gfx::PointF()); 8245 root->SetPosition(gfx::PointF());
8243 root->SetBounds(gfx::Size(10, 10)); 8246 root->SetBounds(gfx::Size(10, 10));
8244 root->SetDrawsContent(true); 8247 root->SetDrawsContent(true);
8245 root->SetForceRenderSurface(true); 8248 root->test_properties()->force_render_surface = true;
8246 8249
8247 host_impl_->active_tree()->SetRootLayer(std::move(root)); 8250 host_impl_->active_tree()->SetRootLayer(std::move(root));
8248 8251
8249 // Ensure the default frame selection bounds are empty. 8252 // Ensure the default frame selection bounds are empty.
8250 FakeOutputSurface* fake_output_surface = 8253 FakeOutputSurface* fake_output_surface =
8251 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); 8254 static_cast<FakeOutputSurface*>(host_impl_->output_surface());
8252 const ViewportSelection& selection_before = 8255 const ViewportSelection& selection_before =
8253 fake_output_surface->last_sent_frame().metadata.selection; 8256 fake_output_surface->last_sent_frame().metadata.selection;
8254 EXPECT_EQ(ViewportSelectionBound(), selection_before.start); 8257 EXPECT_EQ(ViewportSelectionBound(), selection_before.start);
8255 EXPECT_EQ(ViewportSelectionBound(), selection_before.end); 8258 EXPECT_EQ(ViewportSelectionBound(), selection_before.end);
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after
8931 contents->SetDrawsContent(true); 8934 contents->SetDrawsContent(true);
8932 contents->SetBounds(content_size); 8935 contents->SetBounds(content_size);
8933 contents->SetPosition(gfx::PointF()); 8936 contents->SetPosition(gfx::PointF());
8934 8937
8935 outer_scroll->AddChild(std::move(contents)); 8938 outer_scroll->AddChild(std::move(contents));
8936 outer_clip->AddChild(std::move(outer_scroll)); 8939 outer_clip->AddChild(std::move(outer_scroll));
8937 inner_scroll->AddChild(std::move(outer_clip)); 8940 inner_scroll->AddChild(std::move(outer_clip));
8938 page_scale->AddChild(std::move(inner_scroll)); 8941 page_scale->AddChild(std::move(inner_scroll));
8939 inner_clip->AddChild(std::move(page_scale)); 8942 inner_clip->AddChild(std::move(page_scale));
8940 8943
8941 inner_clip->SetForceRenderSurface(true); 8944 inner_clip->test_properties()->force_render_surface = true;
8942 layer_tree_impl->SetRootLayer(std::move(inner_clip)); 8945 layer_tree_impl->SetRootLayer(std::move(inner_clip));
8943 layer_tree_impl->SetViewportLayersFromIds( 8946 layer_tree_impl->SetViewportLayersFromIds(
8944 Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId, 8947 Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId,
8945 kOuterViewportScrollLayerId); 8948 kOuterViewportScrollLayerId);
8946 8949
8947 host_impl_->active_tree()->DidBecomeActive(); 8950 host_impl_->active_tree()->DidBecomeActive();
8948 } 8951 }
8949 }; 8952 };
8950 8953
8951 TEST_F(LayerTreeHostImplVirtualViewportTest, ScrollBothInnerAndOuterLayer) { 8954 TEST_F(LayerTreeHostImplVirtualViewportTest, ScrollBothInnerAndOuterLayer) {
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
9534 EXPECT_EQ(gfx::Rect(50, 50), content_layer->visible_layer_rect()); 9537 EXPECT_EQ(gfx::Rect(50, 50), content_layer->visible_layer_rect());
9535 } 9538 }
9536 9539
9537 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) { 9540 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) {
9538 const gfx::Size layer_size(100, 100); 9541 const gfx::Size layer_size(100, 100);
9539 SetupScrollAndContentsLayers(layer_size); 9542 SetupScrollAndContentsLayers(layer_size);
9540 LayerImpl* content_layer = 9543 LayerImpl* content_layer =
9541 host_impl_->active_tree()->OuterViewportScrollLayer()->children()[0]; 9544 host_impl_->active_tree()->OuterViewportScrollLayer()->children()[0];
9542 content_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100)); 9545 content_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100));
9543 LayerImpl* test_layer = host_impl_->active_tree()->LayerById(100); 9546 LayerImpl* test_layer = host_impl_->active_tree()->LayerById(100);
9544 test_layer->SetForceRenderSurface(true); 9547 test_layer->test_properties()->force_render_surface = true;
9545 test_layer->SetDrawsContent(true); 9548 test_layer->SetDrawsContent(true);
9546 test_layer->SetBounds(layer_size); 9549 test_layer->SetBounds(layer_size);
9547 gfx::Transform perspective_transform; 9550 gfx::Transform perspective_transform;
9548 perspective_transform.ApplyPerspectiveDepth(2); 9551 perspective_transform.ApplyPerspectiveDepth(2);
9549 test_layer->SetTransform(perspective_transform); 9552 test_layer->SetTransform(perspective_transform);
9550 9553
9551 SetNeedsRebuildPropertyTrees(); 9554 SetNeedsRebuildPropertyTrees();
9552 RebuildPropertyTrees(); 9555 RebuildPropertyTrees();
9553 bool update_lcd_text = false; 9556 bool update_lcd_text = false;
9554 9557
(...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after
10584 TEST_F(LayerTreeHostImplTest, SubLayerScaleForNodeInSubtreeOfPageScaleLayer) { 10587 TEST_F(LayerTreeHostImplTest, SubLayerScaleForNodeInSubtreeOfPageScaleLayer) {
10585 // Checks that the sublayer scale of a transform node in the subtree of the 10588 // Checks that the sublayer scale of a transform node in the subtree of the
10586 // page scale layer is updated without a property tree rebuild. 10589 // page scale layer is updated without a property tree rebuild.
10587 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 3.f); 10590 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 3.f);
10588 CreateScrollAndContentsLayers(host_impl_->active_tree(), gfx::Size(100, 100)); 10591 CreateScrollAndContentsLayers(host_impl_->active_tree(), gfx::Size(100, 100));
10589 LayerImpl* page_scale_layer = host_impl_->active_tree()->PageScaleLayer(); 10592 LayerImpl* page_scale_layer = host_impl_->active_tree()->PageScaleLayer();
10590 page_scale_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100)); 10593 page_scale_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100));
10591 10594
10592 LayerImpl* in_subtree_of_page_scale_layer = 10595 LayerImpl* in_subtree_of_page_scale_layer =
10593 host_impl_->active_tree()->LayerById(100); 10596 host_impl_->active_tree()->LayerById(100);
10594 in_subtree_of_page_scale_layer->SetForceRenderSurface(true); 10597 in_subtree_of_page_scale_layer->test_properties()->force_render_surface =
10598 true;
10595 SetNeedsRebuildPropertyTrees(); 10599 SetNeedsRebuildPropertyTrees();
10596 RebuildPropertyTrees(); 10600 RebuildPropertyTrees();
10597 DrawFrame(); 10601 DrawFrame();
10598 TransformNode* node = 10602 TransformNode* node =
10599 host_impl_->active_tree()->property_trees()->transform_tree.Node( 10603 host_impl_->active_tree()->property_trees()->transform_tree.Node(
10600 in_subtree_of_page_scale_layer->transform_tree_index()); 10604 in_subtree_of_page_scale_layer->transform_tree_index());
10601 EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(1.f, 1.f)); 10605 EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(1.f, 1.f));
10602 10606
10603 host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f); 10607 host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f);
10604 DrawFrame(); 10608 DrawFrame();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
10669 // There should not be any jitter measured till we hit the fixed point hits 10673 // There should not be any jitter measured till we hit the fixed point hits
10670 // threshold. 10674 // threshold.
10671 float expected_jitter = 10675 float expected_jitter =
10672 (i == pending_tree->kFixedPointHitsThreshold) ? 500 : 0; 10676 (i == pending_tree->kFixedPointHitsThreshold) ? 500 : 0;
10673 EXPECT_EQ(jitter, expected_jitter); 10677 EXPECT_EQ(jitter, expected_jitter);
10674 } 10678 }
10675 } 10679 }
10676 10680
10677 } // namespace 10681 } // namespace
10678 } // namespace cc 10682 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698