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