| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "core/layout/LayoutInline.h" | 5 #include "core/layout/LayoutInline.h" |
| 6 #include "core/layout/LayoutTestHelper.h" | 6 #include "core/layout/LayoutTestHelper.h" |
| 7 #include "core/layout/LayoutView.h" | 7 #include "core/layout/LayoutView.h" |
| 8 #include "platform/geometry/TransformState.h" | 8 #include "platform/geometry/TransformState.h" |
| 9 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" | 9 #include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); | 541 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); |
| 542 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); | 542 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); |
| 543 LayoutBox* body = container->parentBox(); | 543 LayoutBox* body = container->parentBox(); |
| 544 LayoutBox* html = body->parentBox(); | 544 LayoutBox* html = body->parentBox(); |
| 545 LayoutBox* view = html->parentBox(); | 545 LayoutBox* view = html->parentBox(); |
| 546 ASSERT_TRUE(view->isLayoutView()); | 546 ASSERT_TRUE(view->isLayoutView()); |
| 547 | 547 |
| 548 document().view()->layoutViewportScrollableArea()->setScrollOffset( | 548 document().view()->layoutViewportScrollableArea()->setScrollOffset( |
| 549 ScrollOffset(0.0, 50), ProgrammaticScroll); | 549 ScrollOffset(0.0, 50), ProgrammaticScroll); |
| 550 document().view()->updateAllLifecyclePhases(); | 550 document().view()->updateAllLifecyclePhases(); |
| 551 EXPECT_EQ(50, document() | 551 EXPECT_EQ(50, |
| 552 .view() | 552 document() |
| 553 ->layoutViewportScrollableArea() | 553 .view() |
| 554 ->scrollOffsetInt() | 554 ->layoutViewportScrollableArea() |
| 555 .height()); | 555 ->scrollOffsetInt() |
| 556 .height()); |
| 556 | 557 |
| 557 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); | 558 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); |
| 558 EXPECT_EQ(adjustForFrameScroll(FloatPoint(200, 250)), mappedPoint); | 559 EXPECT_EQ(adjustForFrameScroll(FloatPoint(200, 250)), mappedPoint); |
| 559 mappedPoint = mapAncestorToLocal(target, view, mappedPoint); | 560 mappedPoint = mapAncestorToLocal(target, view, mappedPoint); |
| 560 EXPECT_EQ(FloatPoint(), mappedPoint); | 561 EXPECT_EQ(FloatPoint(), mappedPoint); |
| 561 | 562 |
| 562 mappedPoint = mapLocalToAncestor(target, container, FloatPoint()); | 563 mappedPoint = mapLocalToAncestor(target, container, FloatPoint()); |
| 563 EXPECT_EQ(FloatPoint(100, 100), mappedPoint); | 564 EXPECT_EQ(FloatPoint(100, 100), mappedPoint); |
| 564 mappedPoint = mapAncestorToLocal(target, container, FloatPoint(100, 100)); | 565 mappedPoint = mapAncestorToLocal(target, container, FloatPoint(100, 100)); |
| 565 EXPECT_EQ(FloatPoint(), mappedPoint); | 566 EXPECT_EQ(FloatPoint(), mappedPoint); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 576 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); | 577 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); |
| 577 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); | 578 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); |
| 578 LayoutBox* body = container->parentBox(); | 579 LayoutBox* body = container->parentBox(); |
| 579 LayoutBox* html = body->parentBox(); | 580 LayoutBox* html = body->parentBox(); |
| 580 LayoutBox* view = html->parentBox(); | 581 LayoutBox* view = html->parentBox(); |
| 581 ASSERT_TRUE(view->isLayoutView()); | 582 ASSERT_TRUE(view->isLayoutView()); |
| 582 | 583 |
| 583 document().view()->layoutViewportScrollableArea()->setScrollOffset( | 584 document().view()->layoutViewportScrollableArea()->setScrollOffset( |
| 584 ScrollOffset(0.0, 50), ProgrammaticScroll); | 585 ScrollOffset(0.0, 50), ProgrammaticScroll); |
| 585 document().view()->updateAllLifecyclePhases(); | 586 document().view()->updateAllLifecyclePhases(); |
| 586 EXPECT_EQ(50, document() | 587 EXPECT_EQ(50, |
| 587 .view() | 588 document() |
| 588 ->layoutViewportScrollableArea() | 589 .view() |
| 589 ->scrollOffsetInt() | 590 ->layoutViewportScrollableArea() |
| 590 .height()); | 591 ->scrollOffsetInt() |
| 592 .height()); |
| 591 | 593 |
| 592 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); | 594 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); |
| 593 EXPECT_EQ(adjustForFrameScroll(FloatPoint(200, 250)), mappedPoint); | 595 EXPECT_EQ(adjustForFrameScroll(FloatPoint(200, 250)), mappedPoint); |
| 594 mappedPoint = mapAncestorToLocal(target, view, mappedPoint); | 596 mappedPoint = mapAncestorToLocal(target, view, mappedPoint); |
| 595 EXPECT_EQ(FloatPoint(), mappedPoint); | 597 EXPECT_EQ(FloatPoint(), mappedPoint); |
| 596 | 598 |
| 597 mappedPoint = mapLocalToAncestor(target, container, FloatPoint()); | 599 mappedPoint = mapLocalToAncestor(target, container, FloatPoint()); |
| 598 EXPECT_EQ(FloatPoint(100, 150), mappedPoint); | 600 EXPECT_EQ(FloatPoint(100, 150), mappedPoint); |
| 599 mappedPoint = mapAncestorToLocal(target, container, FloatPoint(100, 150)); | 601 mappedPoint = mapAncestorToLocal(target, container, FloatPoint(100, 150)); |
| 600 EXPECT_EQ(FloatPoint(), mappedPoint); | 602 EXPECT_EQ(FloatPoint(), mappedPoint); |
| 601 } | 603 } |
| 602 | 604 |
| 603 TEST_P(MapCoordinatesTest, FixedPosInTransform) { | 605 TEST_P(MapCoordinatesTest, FixedPosInTransform) { |
| 604 setBodyInnerHTML( | 606 setBodyInnerHTML( |
| 605 "<style>#container { transform: translateY(100px); position: absolute; " | 607 "<style>#container { transform: translateY(100px); position: absolute; " |
| 606 "left: 0; top: 100px; }" | 608 "left: 0; top: 100px; }" |
| 607 ".fixed { position: fixed; top: 0; }" | 609 ".fixed { position: fixed; top: 0; }" |
| 608 ".spacer { height: 2000px; } </style>" | 610 ".spacer { height: 2000px; } </style>" |
| 609 "<div id='container'><div class='fixed' id='target'></div></div>" | 611 "<div id='container'><div class='fixed' id='target'></div></div>" |
| 610 "<div class='spacer'></div>"); | 612 "<div class='spacer'></div>"); |
| 611 | 613 |
| 612 document().view()->layoutViewportScrollableArea()->setScrollOffset( | 614 document().view()->layoutViewportScrollableArea()->setScrollOffset( |
| 613 ScrollOffset(0.0, 50), ProgrammaticScroll); | 615 ScrollOffset(0.0, 50), ProgrammaticScroll); |
| 614 document().view()->updateAllLifecyclePhases(); | 616 document().view()->updateAllLifecyclePhases(); |
| 615 EXPECT_EQ(50, document() | 617 EXPECT_EQ(50, |
| 616 .view() | 618 document() |
| 617 ->layoutViewportScrollableArea() | 619 .view() |
| 618 ->scrollOffsetInt() | 620 ->layoutViewportScrollableArea() |
| 619 .height()); | 621 ->scrollOffsetInt() |
| 622 .height()); |
| 620 | 623 |
| 621 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); | 624 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); |
| 622 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); | 625 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); |
| 623 LayoutBox* body = container->parentBox(); | 626 LayoutBox* body = container->parentBox(); |
| 624 LayoutBox* html = body->parentBox(); | 627 LayoutBox* html = body->parentBox(); |
| 625 LayoutBox* view = html->parentBox(); | 628 LayoutBox* view = html->parentBox(); |
| 626 ASSERT_TRUE(view->isLayoutView()); | 629 ASSERT_TRUE(view->isLayoutView()); |
| 627 | 630 |
| 628 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); | 631 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); |
| 629 EXPECT_EQ(adjustForFrameScroll(FloatPoint(0, 100)), mappedPoint); | 632 EXPECT_EQ(adjustForFrameScroll(FloatPoint(0, 100)), mappedPoint); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 646 "<style>#container { contain: paint; position: absolute; left: 0; top: " | 649 "<style>#container { contain: paint; position: absolute; left: 0; top: " |
| 647 "100px; }" | 650 "100px; }" |
| 648 ".fixed { position: fixed; top: 0; }" | 651 ".fixed { position: fixed; top: 0; }" |
| 649 ".spacer { height: 2000px; } </style>" | 652 ".spacer { height: 2000px; } </style>" |
| 650 "<div id='container'><div class='fixed' id='target'></div></div>" | 653 "<div id='container'><div class='fixed' id='target'></div></div>" |
| 651 "<div class='spacer'></div>"); | 654 "<div class='spacer'></div>"); |
| 652 | 655 |
| 653 document().view()->layoutViewportScrollableArea()->setScrollOffset( | 656 document().view()->layoutViewportScrollableArea()->setScrollOffset( |
| 654 ScrollOffset(0.0, 50), ProgrammaticScroll); | 657 ScrollOffset(0.0, 50), ProgrammaticScroll); |
| 655 document().view()->updateAllLifecyclePhases(); | 658 document().view()->updateAllLifecyclePhases(); |
| 656 EXPECT_EQ(50, document() | 659 EXPECT_EQ(50, |
| 657 .view() | 660 document() |
| 658 ->layoutViewportScrollableArea() | 661 .view() |
| 659 ->scrollOffsetInt() | 662 ->layoutViewportScrollableArea() |
| 660 .height()); | 663 ->scrollOffsetInt() |
| 664 .height()); |
| 661 | 665 |
| 662 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); | 666 LayoutBox* target = toLayoutBox(getLayoutObjectByElementId("target")); |
| 663 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); | 667 LayoutBox* container = toLayoutBox(getLayoutObjectByElementId("container")); |
| 664 LayoutBox* body = container->parentBox(); | 668 LayoutBox* body = container->parentBox(); |
| 665 LayoutBox* html = body->parentBox(); | 669 LayoutBox* html = body->parentBox(); |
| 666 LayoutBox* view = html->parentBox(); | 670 LayoutBox* view = html->parentBox(); |
| 667 ASSERT_TRUE(view->isLayoutView()); | 671 ASSERT_TRUE(view->isLayoutView()); |
| 668 | 672 |
| 669 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); | 673 FloatPoint mappedPoint = mapLocalToAncestor(target, view, FloatPoint()); |
| 670 EXPECT_EQ(adjustForFrameScroll(FloatPoint(0, 100)), mappedPoint); | 674 EXPECT_EQ(adjustForFrameScroll(FloatPoint(0, 100)), mappedPoint); |
| (...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1645 LayoutUnit::epsilon()); | 1649 LayoutUnit::epsilon()); |
| 1646 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).y(), | 1650 EXPECT_NEAR(50.0, matrix.projectPoint(FloatPoint(100.0, 50.0)).y(), |
| 1647 LayoutUnit::epsilon()); | 1651 LayoutUnit::epsilon()); |
| 1648 EXPECT_NEAR(25.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).x(), | 1652 EXPECT_NEAR(25.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).x(), |
| 1649 LayoutUnit::epsilon()); | 1653 LayoutUnit::epsilon()); |
| 1650 EXPECT_NEAR(100.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).y(), | 1654 EXPECT_NEAR(100.0, matrix.projectPoint(FloatPoint(50.0, 100.0)).y(), |
| 1651 LayoutUnit::epsilon()); | 1655 LayoutUnit::epsilon()); |
| 1652 } | 1656 } |
| 1653 | 1657 |
| 1654 } // namespace blink | 1658 } // namespace blink |
| OLD | NEW |