| OLD | NEW |
| 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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 LayerImpl* outer_clip = | 374 LayerImpl* outer_clip = |
| 375 host_impl_->OuterViewportScrollLayer()->test_properties()->parent; | 375 host_impl_->OuterViewportScrollLayer()->test_properties()->parent; |
| 376 outer_clip->SetBounds(viewport_size); | 376 outer_clip->SetBounds(viewport_size); |
| 377 | 377 |
| 378 LayerImpl* inner_clip_layer = host_impl_->InnerViewportScrollLayer() | 378 LayerImpl* inner_clip_layer = host_impl_->InnerViewportScrollLayer() |
| 379 ->test_properties() | 379 ->test_properties() |
| 380 ->parent->test_properties() | 380 ->parent->test_properties() |
| 381 ->parent; | 381 ->parent; |
| 382 inner_clip_layer->SetBounds(viewport_size); | 382 inner_clip_layer->SetBounds(viewport_size); |
| 383 host_impl_->InnerViewportScrollLayer()->SetBounds(viewport_size); | 383 host_impl_->InnerViewportScrollLayer()->SetBounds(viewport_size); |
| 384 |
| 385 // Needs to happen before building property trees as the latter propagates |
| 386 // these element ids to property tree nodes. |
| 387 host_impl_->active_tree()->SetElementIdsForTesting(); |
| 384 host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); | 388 host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
| 385 | 389 |
| 386 host_impl_->SetViewportSize(viewport_size); | 390 host_impl_->SetViewportSize(viewport_size); |
| 387 host_impl_->active_tree()->DidBecomeActive(); | 391 host_impl_->active_tree()->DidBecomeActive(); |
| 388 | 392 |
| 389 return content_layer; | 393 return content_layer; |
| 390 } | 394 } |
| 391 | 395 |
| 392 std::unique_ptr<LayerImpl> CreateScrollableLayer(int id, | 396 std::unique_ptr<LayerImpl> CreateScrollableLayer(int id, |
| 393 const gfx::Size& size, | 397 const gfx::Size& size, |
| (...skipping 908 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1302 root->SetBounds(gfx::Size(50, 50)); | 1306 root->SetBounds(gfx::Size(50, 50)); |
| 1303 root->test_properties()->force_render_surface = true; | 1307 root->test_properties()->force_render_surface = true; |
| 1304 | 1308 |
| 1305 root->test_properties()->AddChild( | 1309 root->test_properties()->AddChild( |
| 1306 LayerImpl::Create(host_impl_->pending_tree(), 2)); | 1310 LayerImpl::Create(host_impl_->pending_tree(), 2)); |
| 1307 host_impl_->pending_tree()->BuildLayerListForTesting(); | 1311 host_impl_->pending_tree()->BuildLayerListForTesting(); |
| 1308 LayerImpl* child = root->test_properties()->children[0]; | 1312 LayerImpl* child = root->test_properties()->children[0]; |
| 1309 child->SetBounds(gfx::Size(10, 10)); | 1313 child->SetBounds(gfx::Size(10, 10)); |
| 1310 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1314 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
| 1311 child->SetDrawsContent(true); | 1315 child->SetDrawsContent(true); |
| 1312 AddAnimatedTransformToLayerWithPlayer(child->id(), timeline(), 10.0, 3, 0); | 1316 |
| 1317 host_impl_->pending_tree()->SetElementIdsForTesting(); |
| 1318 |
| 1319 AddAnimatedTransformToElementWithPlayer(child->element_id(), timeline(), 10.0, |
| 1320 3, 0); |
| 1313 | 1321 |
| 1314 EXPECT_FALSE(did_request_next_frame_); | 1322 EXPECT_FALSE(did_request_next_frame_); |
| 1315 EXPECT_FALSE(did_request_redraw_); | 1323 EXPECT_FALSE(did_request_redraw_); |
| 1316 EXPECT_FALSE(did_request_commit_); | 1324 EXPECT_FALSE(did_request_commit_); |
| 1317 | 1325 |
| 1318 host_impl_->AnimatePendingTreeAfterCommit(); | 1326 host_impl_->AnimatePendingTreeAfterCommit(); |
| 1319 | 1327 |
| 1320 // An animation exists on the pending layer. Doing | 1328 // An animation exists on the pending layer. Doing |
| 1321 // AnimatePendingTreeAfterCommit() requests another frame. | 1329 // AnimatePendingTreeAfterCommit() requests another frame. |
| 1322 // In reality, animations without has_set_start_time() == true do not need to | 1330 // In reality, animations without has_set_start_time() == true do not need to |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1354 root->SetBounds(gfx::Size(50, 50)); | 1362 root->SetBounds(gfx::Size(50, 50)); |
| 1355 root->test_properties()->force_render_surface = true; | 1363 root->test_properties()->force_render_surface = true; |
| 1356 | 1364 |
| 1357 root->test_properties()->AddChild( | 1365 root->test_properties()->AddChild( |
| 1358 LayerImpl::Create(host_impl_->active_tree(), 2)); | 1366 LayerImpl::Create(host_impl_->active_tree(), 2)); |
| 1359 LayerImpl* child = root->test_properties()->children[0]; | 1367 LayerImpl* child = root->test_properties()->children[0]; |
| 1360 child->SetBounds(gfx::Size(10, 10)); | 1368 child->SetBounds(gfx::Size(10, 10)); |
| 1361 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1369 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
| 1362 child->SetDrawsContent(true); | 1370 child->SetDrawsContent(true); |
| 1363 | 1371 |
| 1372 host_impl_->active_tree()->SetElementIdsForTesting(); |
| 1373 |
| 1364 // Add a translate from 6,7 to 8,9. | 1374 // Add a translate from 6,7 to 8,9. |
| 1365 TransformOperations start; | 1375 TransformOperations start; |
| 1366 start.AppendTranslate(6.f, 7.f, 0.f); | 1376 start.AppendTranslate(6.f, 7.f, 0.f); |
| 1367 TransformOperations end; | 1377 TransformOperations end; |
| 1368 end.AppendTranslate(8.f, 9.f, 0.f); | 1378 end.AppendTranslate(8.f, 9.f, 0.f); |
| 1369 AddAnimatedTransformToLayerWithPlayer(child->id(), timeline(), 4.0, start, | 1379 AddAnimatedTransformToElementWithPlayer(child->element_id(), timeline(), 4.0, |
| 1370 end); | 1380 start, end); |
| 1371 | 1381 |
| 1372 base::TimeTicks now = base::TimeTicks::Now(); | 1382 base::TimeTicks now = base::TimeTicks::Now(); |
| 1373 host_impl_->WillBeginImplFrame( | 1383 host_impl_->WillBeginImplFrame( |
| 1374 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now)); | 1384 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now)); |
| 1375 | 1385 |
| 1376 // TODO(crbug.com/551134): We always request a new frame and a draw for | 1386 // TODO(crbug.com/551134): We always request a new frame and a draw for |
| 1377 // animations that are on the pending tree, but we don't need to do that | 1387 // animations that are on the pending tree, but we don't need to do that |
| 1378 // unless they are waiting for some future time to start. | 1388 // unless they are waiting for some future time to start. |
| 1379 EXPECT_TRUE(did_request_next_frame_); | 1389 EXPECT_TRUE(did_request_next_frame_); |
| 1380 EXPECT_TRUE(did_request_redraw_); | 1390 EXPECT_TRUE(did_request_redraw_); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1418 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); | 1428 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
| 1419 root->SetBounds(gfx::Size(50, 50)); | 1429 root->SetBounds(gfx::Size(50, 50)); |
| 1420 root->SetHasRenderSurface(true); | 1430 root->SetHasRenderSurface(true); |
| 1421 | 1431 |
| 1422 root->test_properties()->AddChild( | 1432 root->test_properties()->AddChild( |
| 1423 LayerImpl::Create(host_impl_->active_tree(), 2)); | 1433 LayerImpl::Create(host_impl_->active_tree(), 2)); |
| 1424 LayerImpl* child = root->test_properties()->children[0]; | 1434 LayerImpl* child = root->test_properties()->children[0]; |
| 1425 child->SetBounds(gfx::Size(10, 10)); | 1435 child->SetBounds(gfx::Size(10, 10)); |
| 1426 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1436 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
| 1427 child->SetDrawsContent(true); | 1437 child->SetDrawsContent(true); |
| 1428 AddAnimatedTransformToLayerWithPlayer(child->id(), timeline(), 10.0, 3, 0); | 1438 |
| 1439 host_impl_->active_tree()->SetElementIdsForTesting(); |
| 1440 |
| 1441 AddAnimatedTransformToElementWithPlayer(child->element_id(), timeline(), 10.0, |
| 1442 3, 0); |
| 1429 | 1443 |
| 1430 // Set up the property trees so that UpdateDrawProperties will work in | 1444 // Set up the property trees so that UpdateDrawProperties will work in |
| 1431 // CommitComplete below. | 1445 // CommitComplete below. |
| 1432 LayerImplList list; | 1446 LayerImplList list; |
| 1433 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( | 1447 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
| 1434 root, gfx::Size(50, 50), &list); | 1448 root, gfx::Size(50, 50), &list); |
| 1435 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); | 1449 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); |
| 1436 | 1450 |
| 1437 EXPECT_FALSE(did_request_next_frame_); | 1451 EXPECT_FALSE(did_request_next_frame_); |
| 1438 EXPECT_FALSE(did_request_redraw_); | 1452 EXPECT_FALSE(did_request_redraw_); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1458 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); | 1472 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
| 1459 root->SetBounds(gfx::Size(50, 50)); | 1473 root->SetBounds(gfx::Size(50, 50)); |
| 1460 | 1474 |
| 1461 root->test_properties()->AddChild( | 1475 root->test_properties()->AddChild( |
| 1462 LayerImpl::Create(host_impl_->active_tree(), 2)); | 1476 LayerImpl::Create(host_impl_->active_tree(), 2)); |
| 1463 LayerImpl* child = root->test_properties()->children[0]; | 1477 LayerImpl* child = root->test_properties()->children[0]; |
| 1464 child->SetBounds(gfx::Size(10, 10)); | 1478 child->SetBounds(gfx::Size(10, 10)); |
| 1465 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1479 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
| 1466 child->SetDrawsContent(true); | 1480 child->SetDrawsContent(true); |
| 1467 | 1481 |
| 1482 host_impl_->active_tree()->SetElementIdsForTesting(); |
| 1483 |
| 1468 // Add a translate animation. | 1484 // Add a translate animation. |
| 1469 TransformOperations start; | 1485 TransformOperations start; |
| 1470 start.AppendTranslate(6.f, 7.f, 0.f); | 1486 start.AppendTranslate(6.f, 7.f, 0.f); |
| 1471 TransformOperations end; | 1487 TransformOperations end; |
| 1472 end.AppendTranslate(8.f, 9.f, 0.f); | 1488 end.AppendTranslate(8.f, 9.f, 0.f); |
| 1473 AddAnimatedTransformToLayerWithPlayer(child->id(), timeline(), 4.0, start, | 1489 AddAnimatedTransformToElementWithPlayer(child->element_id(), timeline(), 4.0, |
| 1474 end); | 1490 start, end); |
| 1475 | 1491 |
| 1476 base::TimeTicks now = base::TimeTicks::Now(); | 1492 base::TimeTicks now = base::TimeTicks::Now(); |
| 1477 host_impl_->WillBeginImplFrame( | 1493 host_impl_->WillBeginImplFrame( |
| 1478 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now)); | 1494 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now)); |
| 1479 EXPECT_TRUE(did_request_next_frame_); | 1495 EXPECT_TRUE(did_request_next_frame_); |
| 1480 did_request_next_frame_ = false; | 1496 did_request_next_frame_ = false; |
| 1481 | 1497 |
| 1482 host_impl_->ActivateAnimations(); | 1498 host_impl_->ActivateAnimations(); |
| 1483 // On activating an animation, we should request another frame so that we'll | 1499 // On activating an animation, we should request another frame so that we'll |
| 1484 // continue ticking the animation. | 1500 // continue ticking the animation. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1533 root->SetHasRenderSurface(true); | 1549 root->SetHasRenderSurface(true); |
| 1534 | 1550 |
| 1535 root->test_properties()->AddChild(std::unique_ptr<MissingTilesLayer>( | 1551 root->test_properties()->AddChild(std::unique_ptr<MissingTilesLayer>( |
| 1536 new MissingTilesLayer(host_impl_->active_tree(), 2))); | 1552 new MissingTilesLayer(host_impl_->active_tree(), 2))); |
| 1537 MissingTilesLayer* child = | 1553 MissingTilesLayer* child = |
| 1538 static_cast<MissingTilesLayer*>(root->test_properties()->children[0]); | 1554 static_cast<MissingTilesLayer*>(root->test_properties()->children[0]); |
| 1539 child->SetBounds(gfx::Size(10, 10)); | 1555 child->SetBounds(gfx::Size(10, 10)); |
| 1540 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1556 child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
| 1541 child->SetDrawsContent(true); | 1557 child->SetDrawsContent(true); |
| 1542 | 1558 |
| 1559 host_impl_->active_tree()->SetElementIdsForTesting(); |
| 1560 |
| 1543 EXPECT_TRUE(child->was_ever_ready_since_last_transform_animation()); | 1561 EXPECT_TRUE(child->was_ever_ready_since_last_transform_animation()); |
| 1544 | 1562 |
| 1545 // Add a translate from 6,7 to 8,9. | 1563 // Add a translate from 6,7 to 8,9. |
| 1546 TransformOperations start; | 1564 TransformOperations start; |
| 1547 start.AppendTranslate(6.f, 7.f, 0.f); | 1565 start.AppendTranslate(6.f, 7.f, 0.f); |
| 1548 TransformOperations end; | 1566 TransformOperations end; |
| 1549 end.AppendTranslate(8.f, 9.f, 0.f); | 1567 end.AppendTranslate(8.f, 9.f, 0.f); |
| 1550 int animation_id = AddAnimatedTransformToLayerWithPlayer( | 1568 int animation_id = AddAnimatedTransformToElementWithPlayer( |
| 1551 child->id(), timeline(), 4.0, start, end); | 1569 child->element_id(), timeline(), 4.0, start, end); |
| 1552 | 1570 |
| 1553 base::TimeTicks now = base::TimeTicks::Now(); | 1571 base::TimeTicks now = base::TimeTicks::Now(); |
| 1554 host_impl_->WillBeginImplFrame( | 1572 host_impl_->WillBeginImplFrame( |
| 1555 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now)); | 1573 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, now)); |
| 1556 | 1574 |
| 1557 host_impl_->ActivateAnimations(); | 1575 host_impl_->ActivateAnimations(); |
| 1558 host_impl_->Animate(); | 1576 host_impl_->Animate(); |
| 1559 | 1577 |
| 1560 EXPECT_FALSE(child->was_ever_ready_since_last_transform_animation()); | 1578 EXPECT_FALSE(child->was_ever_ready_since_last_transform_animation()); |
| 1561 | 1579 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1572 child->set_has_missing_tiles(false); | 1590 child->set_has_missing_tiles(false); |
| 1573 | 1591 |
| 1574 // Child layer has an animating and no missing tiles. | 1592 // Child layer has an animating and no missing tiles. |
| 1575 result = host_impl_->PrepareToDraw(&frame); | 1593 result = host_impl_->PrepareToDraw(&frame); |
| 1576 EXPECT_EQ(DRAW_SUCCESS, result); | 1594 EXPECT_EQ(DRAW_SUCCESS, result); |
| 1577 EXPECT_TRUE(child->was_ever_ready_since_last_transform_animation()); | 1595 EXPECT_TRUE(child->was_ever_ready_since_last_transform_animation()); |
| 1578 host_impl_->DidDrawAllLayers(frame); | 1596 host_impl_->DidDrawAllLayers(frame); |
| 1579 | 1597 |
| 1580 // Remove the animation. | 1598 // Remove the animation. |
| 1581 child->set_has_missing_tiles(true); | 1599 child->set_has_missing_tiles(true); |
| 1582 RemoveAnimationFromLayerWithExistingPlayer(child->id(), timeline(), | 1600 RemoveAnimationFromElementWithExistingPlayer(child->element_id(), timeline(), |
| 1583 animation_id); | 1601 animation_id); |
| 1584 child->draw_properties().screen_space_transform_is_animating = false; | 1602 child->draw_properties().screen_space_transform_is_animating = false; |
| 1585 | 1603 |
| 1586 // Child layer doesn't have an animation, but was never ready since the last | 1604 // Child layer doesn't have an animation, but was never ready since the last |
| 1587 // time it animated (and has missing tiles). | 1605 // time it animated (and has missing tiles). |
| 1588 result = host_impl_->PrepareToDraw(&frame); | 1606 result = host_impl_->PrepareToDraw(&frame); |
| 1589 EXPECT_EQ(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS, result); | 1607 EXPECT_EQ(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS, result); |
| 1590 EXPECT_FALSE(child->was_ever_ready_since_last_transform_animation()); | 1608 EXPECT_FALSE(child->was_ever_ready_since_last_transform_animation()); |
| 1591 host_impl_->DidDrawAllLayers(frame); | 1609 host_impl_->DidDrawAllLayers(frame); |
| 1592 | 1610 |
| 1593 child->set_has_missing_tiles(false); | 1611 child->set_has_missing_tiles(false); |
| (...skipping 2001 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3595 MissingTextureAnimatingLayer(LayerTreeImpl* tree_impl, | 3613 MissingTextureAnimatingLayer(LayerTreeImpl* tree_impl, |
| 3596 int id, | 3614 int id, |
| 3597 bool tile_missing, | 3615 bool tile_missing, |
| 3598 bool had_incomplete_tile, | 3616 bool had_incomplete_tile, |
| 3599 bool animating, | 3617 bool animating, |
| 3600 ResourceProvider* resource_provider, | 3618 ResourceProvider* resource_provider, |
| 3601 scoped_refptr<AnimationTimeline> timeline) | 3619 scoped_refptr<AnimationTimeline> timeline) |
| 3602 : DidDrawCheckLayer(tree_impl, id), | 3620 : DidDrawCheckLayer(tree_impl, id), |
| 3603 tile_missing_(tile_missing), | 3621 tile_missing_(tile_missing), |
| 3604 had_incomplete_tile_(had_incomplete_tile) { | 3622 had_incomplete_tile_(had_incomplete_tile) { |
| 3605 if (animating) | 3623 if (animating) { |
| 3606 AddAnimatedTransformToLayerWithPlayer(this->id(), timeline, 10.0, 3, 0); | 3624 this->SetElementId(LayerIdToElementIdForTesting(id)); |
| 3625 AddAnimatedTransformToElementWithPlayer(this->element_id(), timeline, |
| 3626 10.0, 3, 0); |
| 3627 } |
| 3607 } | 3628 } |
| 3608 | 3629 |
| 3609 bool tile_missing_; | 3630 bool tile_missing_; |
| 3610 bool had_incomplete_tile_; | 3631 bool had_incomplete_tile_; |
| 3611 }; | 3632 }; |
| 3612 | 3633 |
| 3613 struct PrepareToDrawSuccessTestCase { | 3634 struct PrepareToDrawSuccessTestCase { |
| 3614 struct State { | 3635 struct State { |
| 3615 bool has_missing_tile = false; | 3636 bool has_missing_tile = false; |
| 3616 bool has_incomplete_tile = false; | 3637 bool has_incomplete_tile = false; |
| (...skipping 6224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9841 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)).thread); | 9862 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)).thread); |
| 9842 | 9863 |
| 9843 LayerImpl* scrolling_layer = host_impl_->CurrentlyScrollingLayer(); | 9864 LayerImpl* scrolling_layer = host_impl_->CurrentlyScrollingLayer(); |
| 9844 | 9865 |
| 9845 begin_frame_args.frame_time = start_time; | 9866 begin_frame_args.frame_time = start_time; |
| 9846 host_impl_->WillBeginImplFrame(begin_frame_args); | 9867 host_impl_->WillBeginImplFrame(begin_frame_args); |
| 9847 host_impl_->Animate(); | 9868 host_impl_->Animate(); |
| 9848 host_impl_->UpdateAnimationState(true); | 9869 host_impl_->UpdateAnimationState(true); |
| 9849 | 9870 |
| 9850 EXPECT_TRUE(host_impl_->animation_host()->HasAnyAnimationTargetingProperty( | 9871 EXPECT_TRUE(host_impl_->animation_host()->HasAnyAnimationTargetingProperty( |
| 9851 scrolling_layer->id(), TargetProperty::SCROLL_OFFSET)); | 9872 scrolling_layer->element_id(), TargetProperty::SCROLL_OFFSET)); |
| 9852 | 9873 |
| 9853 EXPECT_EQ(gfx::ScrollOffset(), scrolling_layer->CurrentScrollOffset()); | 9874 EXPECT_EQ(gfx::ScrollOffset(), scrolling_layer->CurrentScrollOffset()); |
| 9854 host_impl_->DidFinishImplFrame(); | 9875 host_impl_->DidFinishImplFrame(); |
| 9855 | 9876 |
| 9856 begin_frame_args.frame_time = | 9877 begin_frame_args.frame_time = |
| 9857 start_time + base::TimeDelta::FromMilliseconds(50); | 9878 start_time + base::TimeDelta::FromMilliseconds(50); |
| 9858 host_impl_->WillBeginImplFrame(begin_frame_args); | 9879 host_impl_->WillBeginImplFrame(begin_frame_args); |
| 9859 host_impl_->Animate(); | 9880 host_impl_->Animate(); |
| 9860 host_impl_->UpdateAnimationState(true); | 9881 host_impl_->UpdateAnimationState(true); |
| 9861 | 9882 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 9874 EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(0, y + 50), | 9895 EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(0, y + 50), |
| 9875 InputHandler::WHEEL)); | 9896 InputHandler::WHEEL)); |
| 9876 std::unique_ptr<ScrollState> scroll_state_end = EndState(); | 9897 std::unique_ptr<ScrollState> scroll_state_end = EndState(); |
| 9877 host_impl_->ScrollEnd(scroll_state_end.get()); | 9898 host_impl_->ScrollEnd(scroll_state_end.get()); |
| 9878 EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(), | 9899 EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(), |
| 9879 InputHandler::WHEEL)); | 9900 InputHandler::WHEEL)); |
| 9880 | 9901 |
| 9881 // The instant scroll should have marked the smooth scroll animation as | 9902 // The instant scroll should have marked the smooth scroll animation as |
| 9882 // aborted. | 9903 // aborted. |
| 9883 EXPECT_FALSE(host_impl_->animation_host()->HasActiveAnimationForTesting( | 9904 EXPECT_FALSE(host_impl_->animation_host()->HasActiveAnimationForTesting( |
| 9884 scrolling_layer->id())); | 9905 scrolling_layer->element_id())); |
| 9885 | 9906 |
| 9886 EXPECT_VECTOR2DF_EQ(gfx::ScrollOffset(0, y + 50), | 9907 EXPECT_VECTOR2DF_EQ(gfx::ScrollOffset(0, y + 50), |
| 9887 scrolling_layer->CurrentScrollOffset()); | 9908 scrolling_layer->CurrentScrollOffset()); |
| 9888 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); | 9909 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); |
| 9889 host_impl_->DidFinishImplFrame(); | 9910 host_impl_->DidFinishImplFrame(); |
| 9890 } | 9911 } |
| 9891 | 9912 |
| 9892 // Test that a smooth scroll offset animation is marked finished when aborted | 9913 // Test that a smooth scroll offset animation is marked finished when aborted |
| 9893 // with the needs_completion flag. The animation is then finished on the | 9914 // with the needs_completion flag. The animation is then finished on the |
| 9894 // main thread. | 9915 // main thread. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 9912 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 100)).thread); | 9933 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 100)).thread); |
| 9913 | 9934 |
| 9914 LayerImpl* scrolling_layer = host_impl_->CurrentlyScrollingLayer(); | 9935 LayerImpl* scrolling_layer = host_impl_->CurrentlyScrollingLayer(); |
| 9915 | 9936 |
| 9916 begin_frame_args.frame_time = start_time; | 9937 begin_frame_args.frame_time = start_time; |
| 9917 host_impl_->WillBeginImplFrame(begin_frame_args); | 9938 host_impl_->WillBeginImplFrame(begin_frame_args); |
| 9918 host_impl_->Animate(); | 9939 host_impl_->Animate(); |
| 9919 host_impl_->UpdateAnimationState(true); | 9940 host_impl_->UpdateAnimationState(true); |
| 9920 | 9941 |
| 9921 EXPECT_TRUE(host_impl_->animation_host()->HasAnyAnimationTargetingProperty( | 9942 EXPECT_TRUE(host_impl_->animation_host()->HasAnyAnimationTargetingProperty( |
| 9922 scrolling_layer->id(), TargetProperty::SCROLL_OFFSET)); | 9943 scrolling_layer->element_id(), TargetProperty::SCROLL_OFFSET)); |
| 9923 | 9944 |
| 9924 EXPECT_EQ(gfx::ScrollOffset(), scrolling_layer->CurrentScrollOffset()); | 9945 EXPECT_EQ(gfx::ScrollOffset(), scrolling_layer->CurrentScrollOffset()); |
| 9925 host_impl_->DidFinishImplFrame(); | 9946 host_impl_->DidFinishImplFrame(); |
| 9926 | 9947 |
| 9927 begin_frame_args.frame_time = | 9948 begin_frame_args.frame_time = |
| 9928 start_time + base::TimeDelta::FromMilliseconds(50); | 9949 start_time + base::TimeDelta::FromMilliseconds(50); |
| 9929 host_impl_->WillBeginImplFrame(begin_frame_args); | 9950 host_impl_->WillBeginImplFrame(begin_frame_args); |
| 9930 host_impl_->Animate(); | 9951 host_impl_->Animate(); |
| 9931 host_impl_->UpdateAnimationState(true); | 9952 host_impl_->UpdateAnimationState(true); |
| 9932 | 9953 |
| 9933 float y = scrolling_layer->CurrentScrollOffset().y(); | 9954 float y = scrolling_layer->CurrentScrollOffset().y(); |
| 9934 EXPECT_TRUE(y > 1 && y < 49); | 9955 EXPECT_TRUE(y > 1 && y < 49); |
| 9935 | 9956 |
| 9936 // Abort animation. | 9957 // Abort animation. |
| 9937 host_impl_->animation_host()->ScrollAnimationAbort(true /*needs_completion*/); | 9958 host_impl_->animation_host()->ScrollAnimationAbort(true /*needs_completion*/); |
| 9938 host_impl_->UpdateAnimationState(true); | 9959 host_impl_->UpdateAnimationState(true); |
| 9939 | 9960 |
| 9940 // Aborting with the needs completion param should have marked the smooth | 9961 // Aborting with the needs completion param should have marked the smooth |
| 9941 // scroll animation as finished. | 9962 // scroll animation as finished. |
| 9942 EXPECT_FALSE(host_impl_->animation_host()->HasActiveAnimationForTesting( | 9963 EXPECT_FALSE(host_impl_->animation_host()->HasActiveAnimationForTesting( |
| 9943 scrolling_layer->id())); | 9964 scrolling_layer->element_id())); |
| 9944 EXPECT_TRUE(y > 1 && y < 49); | 9965 EXPECT_TRUE(y > 1 && y < 49); |
| 9945 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); | 9966 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); |
| 9946 host_impl_->DidFinishImplFrame(); | 9967 host_impl_->DidFinishImplFrame(); |
| 9947 } | 9968 } |
| 9948 | 9969 |
| 9949 // Evolved from LayerTreeHostImplTest.ScrollAnimated. | 9970 // Evolved from LayerTreeHostImplTest.ScrollAnimated. |
| 9950 TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimated) { | 9971 TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimated) { |
| 9951 const gfx::Size content_size(1000, 1000); | 9972 const gfx::Size content_size(1000, 1000); |
| 9952 const gfx::Size viewport_size(500, 500); | 9973 const gfx::Size viewport_size(500, 500); |
| 9953 CreateBasicVirtualViewportLayers(viewport_size, content_size); | 9974 CreateBasicVirtualViewportLayers(viewport_size, content_size); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10022 LayerImpl* outer_scroll_layer = host_impl_->OuterViewportScrollLayer(); | 10043 LayerImpl* outer_scroll_layer = host_impl_->OuterViewportScrollLayer(); |
| 10023 LayerImpl* inner_scroll_layer = host_impl_->InnerViewportScrollLayer(); | 10044 LayerImpl* inner_scroll_layer = host_impl_->InnerViewportScrollLayer(); |
| 10024 | 10045 |
| 10025 // Zoom into the page by a 2X factor | 10046 // Zoom into the page by a 2X factor |
| 10026 float min_page_scale = 1.f, max_page_scale = 4.f; | 10047 float min_page_scale = 1.f, max_page_scale = 4.f; |
| 10027 float page_scale_factor = 2.f; | 10048 float page_scale_factor = 2.f; |
| 10028 RebuildPropertyTrees(); | 10049 RebuildPropertyTrees(); |
| 10029 host_impl_->active_tree()->PushPageScaleFromMainThread( | 10050 host_impl_->active_tree()->PushPageScaleFromMainThread( |
| 10030 page_scale_factor, min_page_scale, max_page_scale); | 10051 page_scale_factor, min_page_scale, max_page_scale); |
| 10031 host_impl_->active_tree()->SetPageScaleOnActiveTree(page_scale_factor); | 10052 host_impl_->active_tree()->SetPageScaleOnActiveTree(page_scale_factor); |
| 10053 host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
| 10032 | 10054 |
| 10033 // Scroll by a small amount, there should be no bubbling to the outer | 10055 // Scroll by a small amount, there should be no bubbling to the outer |
| 10034 // viewport. | 10056 // viewport. |
| 10035 base::TimeTicks start_time = | 10057 base::TimeTicks start_time = |
| 10036 base::TimeTicks() + base::TimeDelta::FromMilliseconds(250); | 10058 base::TimeTicks() + base::TimeDelta::FromMilliseconds(250); |
| 10037 BeginFrameArgs begin_frame_args = | 10059 BeginFrameArgs begin_frame_args = |
| 10038 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE); | 10060 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE); |
| 10039 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, | 10061 EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
| 10040 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(10.f, 20.f)) | 10062 host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(10.f, 20.f)) |
| 10041 .thread); | 10063 .thread); |
| (...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10913 | 10935 |
| 10914 // Re-initialize with a software output surface. | 10936 // Re-initialize with a software output surface. |
| 10915 output_surface_ = FakeOutputSurface::CreateSoftware( | 10937 output_surface_ = FakeOutputSurface::CreateSoftware( |
| 10916 base::WrapUnique(new SoftwareOutputDevice)); | 10938 base::WrapUnique(new SoftwareOutputDevice)); |
| 10917 host_impl_->InitializeRenderer(output_surface_.get()); | 10939 host_impl_->InitializeRenderer(output_surface_.get()); |
| 10918 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); | 10940 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); |
| 10919 } | 10941 } |
| 10920 | 10942 |
| 10921 } // namespace | 10943 } // namespace |
| 10922 } // namespace cc | 10944 } // namespace cc |
| OLD | NEW |