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 "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "CCLayerTreeHostImpl.h" | 7 #include "CCLayerTreeHostImpl.h" |
8 | 8 |
9 #include "CCAnimationTestCommon.h" | 9 #include "CCAnimationTestCommon.h" |
10 #include "CCDelegatedRendererLayerImpl.h" | 10 #include "CCDelegatedRendererLayerImpl.h" |
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 TEST_F(CCLayerTreeHostImplTest, pinchGesture) | 455 TEST_F(CCLayerTreeHostImplTest, pinchGesture) |
456 { | 456 { |
457 setupScrollAndContentsLayers(IntSize(100, 100)); | 457 setupScrollAndContentsLayers(IntSize(100, 100)); |
458 m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50)); | 458 m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50)); |
459 initializeRendererAndDrawFrame(); | 459 initializeRendererAndDrawFrame(); |
460 | 460 |
461 CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer(); | 461 CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer(); |
462 ASSERT(scrollLayer); | 462 ASSERT(scrollLayer); |
463 | 463 |
464 const float minPageScale = 0.5, maxPageScale = 4; | 464 const float minPageScale = 0.5, maxPageScale = 4; |
| 465 const WebTransformationMatrix identityScaleTransform; |
465 | 466 |
466 // Basic pinch zoom in gesture | 467 // Basic pinch zoom in gesture |
467 { | 468 { |
468 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); | 469 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
469 scrollLayer->setPageScaleDelta(1); | 470 scrollLayer->setImplTransform(identityScaleTransform); |
470 scrollLayer->setScrollDelta(IntSize()); | 471 scrollLayer->setScrollDelta(IntSize()); |
471 | 472 |
472 float pageScaleDelta = 2; | 473 float pageScaleDelta = 2; |
473 m_hostImpl->pinchGestureBegin(); | 474 m_hostImpl->pinchGestureBegin(); |
474 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(50, 50)); | 475 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(50, 50)); |
475 m_hostImpl->pinchGestureEnd(); | 476 m_hostImpl->pinchGestureEnd(); |
476 EXPECT_TRUE(m_didRequestRedraw); | 477 EXPECT_TRUE(m_didRequestRedraw); |
477 EXPECT_TRUE(m_didRequestCommit); | 478 EXPECT_TRUE(m_didRequestCommit); |
478 | 479 |
479 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); | 480 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); |
480 EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta); | 481 EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta); |
481 } | 482 } |
482 | 483 |
483 // Zoom-in clamping | 484 // Zoom-in clamping |
484 { | 485 { |
485 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); | 486 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
486 scrollLayer->setPageScaleDelta(1); | 487 scrollLayer->setImplTransform(identityScaleTransform); |
487 scrollLayer->setScrollDelta(IntSize()); | 488 scrollLayer->setScrollDelta(IntSize()); |
488 float pageScaleDelta = 10; | 489 float pageScaleDelta = 10; |
489 | 490 |
490 m_hostImpl->pinchGestureBegin(); | 491 m_hostImpl->pinchGestureBegin(); |
491 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(50, 50)); | 492 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(50, 50)); |
492 m_hostImpl->pinchGestureEnd(); | 493 m_hostImpl->pinchGestureEnd(); |
493 | 494 |
494 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); | 495 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); |
495 EXPECT_EQ(scrollInfo->pageScaleDelta, maxPageScale); | 496 EXPECT_EQ(scrollInfo->pageScaleDelta, maxPageScale); |
496 } | 497 } |
497 | 498 |
498 // Zoom-out clamping | 499 // Zoom-out clamping |
499 { | 500 { |
500 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); | 501 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
501 scrollLayer->setPageScaleDelta(1); | 502 scrollLayer->setImplTransform(identityScaleTransform); |
502 scrollLayer->setScrollDelta(IntSize()); | 503 scrollLayer->setScrollDelta(IntSize()); |
503 scrollLayer->setScrollPosition(IntPoint(50, 50)); | 504 scrollLayer->setScrollPosition(IntPoint(50, 50)); |
504 | 505 |
505 float pageScaleDelta = 0.1f; | 506 float pageScaleDelta = 0.1f; |
506 m_hostImpl->pinchGestureBegin(); | 507 m_hostImpl->pinchGestureBegin(); |
507 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(0, 0)); | 508 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(0, 0)); |
508 m_hostImpl->pinchGestureEnd(); | 509 m_hostImpl->pinchGestureEnd(); |
509 | 510 |
510 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); | 511 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); |
511 EXPECT_EQ(scrollInfo->pageScaleDelta, minPageScale); | 512 EXPECT_EQ(scrollInfo->pageScaleDelta, minPageScale); |
512 | 513 |
513 // Pushed to (0,0) via clamping against contents layer size. | 514 // Pushed to (0,0) via clamping against contents layer size. |
514 expectContains(*scrollInfo, scrollLayer->id(), IntSize(-50, -50)); | 515 expectContains(*scrollInfo, scrollLayer->id(), IntSize(-50, -50)); |
515 } | 516 } |
516 | 517 |
517 // Two-finger panning | 518 // Two-finger panning |
518 { | 519 { |
519 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); | 520 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
520 scrollLayer->setPageScaleDelta(1); | 521 scrollLayer->setImplTransform(identityScaleTransform); |
521 scrollLayer->setScrollDelta(IntSize()); | 522 scrollLayer->setScrollDelta(IntSize()); |
522 scrollLayer->setScrollPosition(IntPoint(20, 20)); | 523 scrollLayer->setScrollPosition(IntPoint(20, 20)); |
523 | 524 |
524 float pageScaleDelta = 1; | 525 float pageScaleDelta = 1; |
525 m_hostImpl->pinchGestureBegin(); | 526 m_hostImpl->pinchGestureBegin(); |
526 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(10, 10)); | 527 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(10, 10)); |
527 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(20, 20)); | 528 m_hostImpl->pinchGestureUpdate(pageScaleDelta, IntPoint(20, 20)); |
528 m_hostImpl->pinchGestureEnd(); | 529 m_hostImpl->pinchGestureEnd(); |
529 | 530 |
530 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); | 531 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); |
531 EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta); | 532 EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta); |
532 expectContains(*scrollInfo, scrollLayer->id(), IntSize(-10, -10)); | 533 expectContains(*scrollInfo, scrollLayer->id(), IntSize(-10, -10)); |
533 } | 534 } |
534 } | 535 } |
535 | 536 |
536 TEST_F(CCLayerTreeHostImplTest, pageScaleAnimation) | 537 TEST_F(CCLayerTreeHostImplTest, pageScaleAnimation) |
537 { | 538 { |
538 setupScrollAndContentsLayers(IntSize(100, 100)); | 539 setupScrollAndContentsLayers(IntSize(100, 100)); |
539 m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50)); | 540 m_hostImpl->setViewportSize(IntSize(50, 50), IntSize(50, 50)); |
540 initializeRendererAndDrawFrame(); | 541 initializeRendererAndDrawFrame(); |
541 | 542 |
542 CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer(); | 543 CCLayerImpl* scrollLayer = m_hostImpl->rootScrollLayer(); |
543 ASSERT(scrollLayer); | 544 ASSERT(scrollLayer); |
544 | 545 |
545 const float minPageScale = 0.5, maxPageScale = 4; | 546 const float minPageScale = 0.5, maxPageScale = 4; |
546 const double startTime = 1; | 547 const double startTime = 1; |
547 const double duration = 0.1; | 548 const double duration = 0.1; |
548 const double halfwayThroughAnimation = startTime + duration / 2; | 549 const double halfwayThroughAnimation = startTime + duration / 2; |
549 const double endTime = startTime + duration; | 550 const double endTime = startTime + duration; |
| 551 const WebTransformationMatrix identityScaleTransform; |
550 | 552 |
551 // Non-anchor zoom-in | 553 // Non-anchor zoom-in |
552 { | 554 { |
553 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); | 555 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
554 scrollLayer->setPageScaleDelta(1); | 556 scrollLayer->setImplTransform(identityScaleTransform); |
555 scrollLayer->setScrollPosition(IntPoint(50, 50)); | 557 scrollLayer->setScrollPosition(IntPoint(50, 50)); |
556 | 558 |
557 m_hostImpl->startPageScaleAnimation(IntSize(0, 0), false, 2, startTime,
duration); | 559 m_hostImpl->startPageScaleAnimation(IntSize(0, 0), false, 2, startTime,
duration); |
558 m_hostImpl->animate(halfwayThroughAnimation, halfwayThroughAnimation); | 560 m_hostImpl->animate(halfwayThroughAnimation, halfwayThroughAnimation); |
559 EXPECT_TRUE(m_didRequestRedraw); | 561 EXPECT_TRUE(m_didRequestRedraw); |
560 m_hostImpl->animate(endTime, endTime); | 562 m_hostImpl->animate(endTime, endTime); |
561 EXPECT_TRUE(m_didRequestCommit); | 563 EXPECT_TRUE(m_didRequestCommit); |
562 | 564 |
563 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); | 565 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); |
564 EXPECT_EQ(scrollInfo->pageScaleDelta, 2); | 566 EXPECT_EQ(scrollInfo->pageScaleDelta, 2); |
565 expectContains(*scrollInfo, scrollLayer->id(), IntSize(-50, -50)); | 567 expectContains(*scrollInfo, scrollLayer->id(), IntSize(-50, -50)); |
566 } | 568 } |
567 | 569 |
568 // Anchor zoom-out | 570 // Anchor zoom-out |
569 { | 571 { |
570 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); | 572 m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale); |
571 scrollLayer->setPageScaleDelta(1); | 573 scrollLayer->setImplTransform(identityScaleTransform); |
572 scrollLayer->setScrollPosition(IntPoint(50, 50)); | 574 scrollLayer->setScrollPosition(IntPoint(50, 50)); |
573 | 575 |
574 m_hostImpl->startPageScaleAnimation(IntSize(25, 25), true, minPageScale,
startTime, duration); | 576 m_hostImpl->startPageScaleAnimation(IntSize(25, 25), true, minPageScale,
startTime, duration); |
575 m_hostImpl->animate(endTime, endTime); | 577 m_hostImpl->animate(endTime, endTime); |
576 EXPECT_TRUE(m_didRequestRedraw); | 578 EXPECT_TRUE(m_didRequestRedraw); |
577 EXPECT_TRUE(m_didRequestCommit); | 579 EXPECT_TRUE(m_didRequestCommit); |
578 | 580 |
579 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); | 581 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas
(); |
580 EXPECT_EQ(scrollInfo->pageScaleDelta, minPageScale); | 582 EXPECT_EQ(scrollInfo->pageScaleDelta, minPageScale); |
581 // Pushed to (0,0) via clamping against contents layer size. | 583 // Pushed to (0,0) via clamping against contents layer size. |
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1039 | 1041 |
1040 // The scale should apply to the scroll delta. | 1042 // The scale should apply to the scroll delta. |
1041 expectedScrollDelta.scale(pageScale); | 1043 expectedScrollDelta.scale(pageScale); |
1042 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); | 1044 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); |
1043 expectContains(*scrollInfo.get(), m_hostImpl->rootLayer()->id(), expectedScr
ollDelta); | 1045 expectContains(*scrollInfo.get(), m_hostImpl->rootLayer()->id(), expectedScr
ollDelta); |
1044 | 1046 |
1045 // The scroll range should also have been updated. | 1047 // The scroll range should also have been updated. |
1046 EXPECT_EQ(m_hostImpl->rootLayer()->maxScrollPosition(), expectedMaxScroll); | 1048 EXPECT_EQ(m_hostImpl->rootLayer()->maxScrollPosition(), expectedMaxScroll); |
1047 | 1049 |
1048 // The page scale delta remains constant because the impl thread did not sca
le. | 1050 // The page scale delta remains constant because the impl thread did not sca
le. |
1049 EXPECT_EQ(m_hostImpl->rootLayer()->pageScaleDelta(), 1); | 1051 EXPECT_EQ(m_hostImpl->rootLayer()->implTransform(), WebTransformationMatrix(
)); |
1050 } | 1052 } |
1051 | 1053 |
1052 TEST_F(CCLayerTreeHostImplTest, scrollRootAndChangePageScaleOnImplThread) | 1054 TEST_F(CCLayerTreeHostImplTest, scrollRootAndChangePageScaleOnImplThread) |
1053 { | 1055 { |
1054 IntSize surfaceSize(10, 10); | 1056 IntSize surfaceSize(10, 10); |
1055 float pageScale = 2; | 1057 float pageScale = 2; |
1056 OwnPtr<CCLayerImpl> root = createScrollableLayer(1, surfaceSize); | 1058 OwnPtr<CCLayerImpl> root = createScrollableLayer(1, surfaceSize); |
1057 m_hostImpl->setRootLayer(root.release()); | 1059 m_hostImpl->setRootLayer(root.release()); |
1058 m_hostImpl->setViewportSize(surfaceSize, surfaceSize); | 1060 m_hostImpl->setViewportSize(surfaceSize, surfaceSize); |
1059 m_hostImpl->setPageScaleFactorAndLimits(1, 1, pageScale); | 1061 m_hostImpl->setPageScaleFactorAndLimits(1, 1, pageScale); |
1060 initializeRendererAndDrawFrame(); | 1062 initializeRendererAndDrawFrame(); |
1061 | 1063 |
1062 IntSize scrollDelta(0, 10); | 1064 IntSize scrollDelta(0, 10); |
1063 IntSize expectedScrollDelta(scrollDelta); | 1065 IntSize expectedScrollDelta(scrollDelta); |
1064 IntSize expectedMaxScroll(m_hostImpl->rootLayer()->maxScrollPosition()); | 1066 IntSize expectedMaxScroll(m_hostImpl->rootLayer()->maxScrollPosition()); |
1065 EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Whee
l), CCInputHandlerClient::ScrollStarted); | 1067 EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Whee
l), CCInputHandlerClient::ScrollStarted); |
1066 m_hostImpl->scrollBy(IntPoint(), scrollDelta); | 1068 m_hostImpl->scrollBy(IntPoint(), scrollDelta); |
1067 m_hostImpl->scrollEnd(); | 1069 m_hostImpl->scrollEnd(); |
1068 | 1070 |
1069 // Set new page scale on impl thread by pinching. | 1071 // Set new page scale on impl thread by pinching. |
1070 m_hostImpl->pinchGestureBegin(); | 1072 m_hostImpl->pinchGestureBegin(); |
1071 m_hostImpl->pinchGestureUpdate(pageScale, IntPoint()); | 1073 m_hostImpl->pinchGestureUpdate(pageScale, IntPoint()); |
1072 m_hostImpl->pinchGestureEnd(); | 1074 m_hostImpl->pinchGestureEnd(); |
| 1075 m_hostImpl->updateRootScrollLayerImplTransform(); |
1073 | 1076 |
1074 // The scroll delta is not scaled because the main thread did not scale. | 1077 // The scroll delta is not scaled because the main thread did not scale. |
1075 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); | 1078 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); |
1076 expectContains(*scrollInfo.get(), m_hostImpl->rootLayer()->id(), expectedScr
ollDelta); | 1079 expectContains(*scrollInfo.get(), m_hostImpl->rootLayer()->id(), expectedScr
ollDelta); |
1077 | 1080 |
1078 // The scroll range should also have been updated. | 1081 // The scroll range should also have been updated. |
1079 EXPECT_EQ(m_hostImpl->rootLayer()->maxScrollPosition(), expectedMaxScroll); | 1082 EXPECT_EQ(m_hostImpl->rootLayer()->maxScrollPosition(), expectedMaxScroll); |
1080 | 1083 |
1081 // The page scale delta should match the new scale on the impl side. | 1084 // The page scale delta should match the new scale on the impl side. |
1082 EXPECT_EQ(m_hostImpl->rootLayer()->pageScaleDelta(), pageScale); | 1085 WebTransformationMatrix expectedScale; |
| 1086 expectedScale.scale(pageScale); |
| 1087 EXPECT_EQ(m_hostImpl->rootLayer()->implTransform(), expectedScale); |
1083 } | 1088 } |
1084 | 1089 |
1085 TEST_F(CCLayerTreeHostImplTest, pageScaleDeltaAppliedToRootScrollLayerOnly) | 1090 TEST_F(CCLayerTreeHostImplTest, pageScaleDeltaAppliedToRootScrollLayerOnly) |
1086 { | 1091 { |
1087 IntSize surfaceSize(10, 10); | 1092 IntSize surfaceSize(10, 10); |
1088 float defaultPageScale = 1; | 1093 float defaultPageScale = 1; |
| 1094 WebTransformationMatrix defaultPageScaleMatrix; |
| 1095 |
1089 float newPageScale = 2; | 1096 float newPageScale = 2; |
| 1097 WebTransformationMatrix newPageScaleMatrix; |
| 1098 newPageScaleMatrix.scale(newPageScale); |
1090 | 1099 |
1091 // Create a normal scrollable root layer and another scrollable child layer. | 1100 // Create a normal scrollable root layer and another scrollable child layer. |
1092 setupScrollAndContentsLayers(surfaceSize); | 1101 setupScrollAndContentsLayers(surfaceSize); |
1093 CCLayerImpl* root = m_hostImpl->rootLayer(); | 1102 CCLayerImpl* root = m_hostImpl->rootLayer(); |
1094 CCLayerImpl* child = root->children()[0]; | 1103 CCLayerImpl* child = root->children()[0]; |
1095 | 1104 |
1096 OwnPtr<CCLayerImpl> scrollableChild = createScrollableLayer(3, surfaceSize); | 1105 OwnPtr<CCLayerImpl> scrollableChild = createScrollableLayer(3, surfaceSize); |
1097 child->addChild(scrollableChild.release()); | 1106 child->addChild(scrollableChild.release()); |
1098 CCLayerImpl* grandChild = child->children()[0]; | 1107 CCLayerImpl* grandChild = child->children()[0]; |
1099 | 1108 |
1100 // Set new page scale on impl thread by pinching. | 1109 // Set new page scale on impl thread by pinching. |
1101 m_hostImpl->pinchGestureBegin(); | 1110 m_hostImpl->pinchGestureBegin(); |
1102 m_hostImpl->pinchGestureUpdate(newPageScale, IntPoint()); | 1111 m_hostImpl->pinchGestureUpdate(newPageScale, IntPoint()); |
1103 m_hostImpl->pinchGestureEnd(); | 1112 m_hostImpl->pinchGestureEnd(); |
| 1113 m_hostImpl->updateRootScrollLayerImplTransform(); |
1104 | 1114 |
1105 // The page scale delta should only be applied to the scrollable root layer. | 1115 // The page scale delta should only be applied to the scrollable root layer. |
1106 EXPECT_EQ(root->pageScaleDelta(), newPageScale); | 1116 EXPECT_EQ(root->implTransform(), newPageScaleMatrix); |
1107 EXPECT_EQ(child->pageScaleDelta(), defaultPageScale); | 1117 EXPECT_EQ(child->implTransform(), defaultPageScaleMatrix); |
1108 EXPECT_EQ(grandChild->pageScaleDelta(), defaultPageScale); | 1118 EXPECT_EQ(grandChild->implTransform(), defaultPageScaleMatrix); |
1109 | 1119 |
1110 // Make sure all the layers are drawn with the page scale delta applied, i.e
., the page scale | 1120 // Make sure all the layers are drawn with the page scale delta applied, i.e
., the page scale |
1111 // delta on the root layer is applied hierarchically. | 1121 // delta on the root layer is applied hierarchically. |
1112 CCLayerTreeHostImpl::FrameData frame; | 1122 CCLayerTreeHostImpl::FrameData frame; |
1113 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 1123 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
1114 m_hostImpl->drawLayers(frame); | 1124 m_hostImpl->drawLayers(frame); |
1115 m_hostImpl->didDrawAllLayers(frame); | 1125 m_hostImpl->didDrawAllLayers(frame); |
1116 | 1126 |
1117 EXPECT_EQ(root->drawTransform().m11(), newPageScale); | 1127 EXPECT_EQ(root->drawTransform().m11(), newPageScale); |
1118 EXPECT_EQ(root->drawTransform().m22(), newPageScale); | 1128 EXPECT_EQ(root->drawTransform().m22(), newPageScale); |
(...skipping 22 matching lines...) Expand all Loading... |
1141 IntSize scrollDelta(0, 10); | 1151 IntSize scrollDelta(0, 10); |
1142 IntSize expectedScrollDelta(scrollDelta); | 1152 IntSize expectedScrollDelta(scrollDelta); |
1143 IntSize expectedMaxScroll(child->maxScrollPosition()); | 1153 IntSize expectedMaxScroll(child->maxScrollPosition()); |
1144 EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Whee
l), CCInputHandlerClient::ScrollStarted); | 1154 EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(5, 5), CCInputHandlerClient::Whee
l), CCInputHandlerClient::ScrollStarted); |
1145 m_hostImpl->scrollBy(IntPoint(), scrollDelta); | 1155 m_hostImpl->scrollBy(IntPoint(), scrollDelta); |
1146 m_hostImpl->scrollEnd(); | 1156 m_hostImpl->scrollEnd(); |
1147 | 1157 |
1148 float pageScale = 2; | 1158 float pageScale = 2; |
1149 m_hostImpl->setPageScaleFactorAndLimits(pageScale, 1, pageScale); | 1159 m_hostImpl->setPageScaleFactorAndLimits(pageScale, 1, pageScale); |
1150 | 1160 |
| 1161 m_hostImpl->updateRootScrollLayerImplTransform(); |
| 1162 |
1151 // The scale should apply to the scroll delta. | 1163 // The scale should apply to the scroll delta. |
1152 expectedScrollDelta.scale(pageScale); | 1164 expectedScrollDelta.scale(pageScale); |
1153 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); | 1165 OwnPtr<CCScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas(); |
1154 expectContains(*scrollInfo.get(), scrollLayerId, expectedScrollDelta); | 1166 expectContains(*scrollInfo.get(), scrollLayerId, expectedScrollDelta); |
1155 | 1167 |
1156 // The scroll range should not have changed. | 1168 // The scroll range should not have changed. |
1157 EXPECT_EQ(child->maxScrollPosition(), expectedMaxScroll); | 1169 EXPECT_EQ(child->maxScrollPosition(), expectedMaxScroll); |
1158 | 1170 |
1159 // The page scale delta remains constant because the impl thread did not sca
le. | 1171 // The page scale delta remains constant because the impl thread did not sca
le. |
1160 EXPECT_EQ(child->pageScaleDelta(), 1); | 1172 WebTransformationMatrix identityTransform; |
| 1173 EXPECT_EQ(child->implTransform(), WebTransformationMatrix()); |
1161 } | 1174 } |
1162 | 1175 |
1163 TEST_F(CCLayerTreeHostImplTest, scrollChildBeyondLimit) | 1176 TEST_F(CCLayerTreeHostImplTest, scrollChildBeyondLimit) |
1164 { | 1177 { |
1165 // Scroll a child layer beyond its maximum scroll range and make sure the | 1178 // Scroll a child layer beyond its maximum scroll range and make sure the |
1166 // parent layer is scrolled on the axis on which the child was unable to | 1179 // parent layer is scrolled on the axis on which the child was unable to |
1167 // scroll. | 1180 // scroll. |
1168 IntSize surfaceSize(10, 10); | 1181 IntSize surfaceSize(10, 10); |
1169 OwnPtr<CCLayerImpl> root = createScrollableLayer(1, surfaceSize); | 1182 OwnPtr<CCLayerImpl> root = createScrollableLayer(1, surfaceSize); |
1170 | 1183 |
(...skipping 3038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4209 while (removeRenderPassesCases[testCaseIndex].name) { | 4222 while (removeRenderPassesCases[testCaseIndex].name) { |
4210 RenderPassRemovalTestData testData; | 4223 RenderPassRemovalTestData testData; |
4211 configureRenderPassTestData(removeRenderPassesCases[testCaseIndex].initS
cript, testData, renderer.get()); | 4224 configureRenderPassTestData(removeRenderPassesCases[testCaseIndex].initS
cript, testData, renderer.get()); |
4212 CCLayerTreeHostImpl::removeRenderPasses(CCLayerTreeHostImpl::CullRenderP
assesWithCachedTextures(*renderer), testData); | 4225 CCLayerTreeHostImpl::removeRenderPasses(CCLayerTreeHostImpl::CullRenderP
assesWithCachedTextures(*renderer), testData); |
4213 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); | 4226 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); |
4214 testCaseIndex++; | 4227 testCaseIndex++; |
4215 } | 4228 } |
4216 } | 4229 } |
4217 | 4230 |
4218 } // namespace | 4231 } // namespace |
OLD | NEW |