Index: Source/core/frame/RootFrameViewportTest.cpp |
diff --git a/Source/core/frame/RootFrameViewportTest.cpp b/Source/core/frame/RootFrameViewportTest.cpp |
index 6b33435751742048d37b518a728b5c0e2e1454ea..259ecd93f42f72d7790818f19c6ad0b7ddc87bf0 100644 |
--- a/Source/core/frame/RootFrameViewportTest.cpp |
+++ b/Source/core/frame/RootFrameViewportTest.cpp |
@@ -26,14 +26,12 @@ |
namespace blink { |
-class ScrollableAreaStub : public ScrollableArea { |
+class ScrollableAreaStub : public NoBaseWillBeGarbageCollectedFinalized<ScrollableAreaStub>, public ScrollableArea { |
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ScrollableAreaStub); |
public: |
- ScrollableAreaStub(const IntSize& viewportSize, const IntSize& contentsSize) |
- : m_userInputScrollableX(true) |
- , m_userInputScrollableY(true) |
- , m_viewportSize(viewportSize) |
- , m_contentsSize(contentsSize) |
+ static PassOwnPtrWillBeRawPtr<ScrollableAreaStub> create(const IntSize& viewportSize, const IntSize& contentsSize) |
{ |
+ return adoptPtrWillBeNoop(new ScrollableAreaStub(viewportSize, contentsSize)); |
} |
void setViewportSize(const IntSize& viewportSize) |
@@ -68,7 +66,20 @@ public: |
m_contentsSize = contentsSize; |
} |
+ DEFINE_INLINE_VIRTUAL_TRACE() |
+ { |
+ ScrollableArea::trace(visitor); |
+ } |
+ |
protected: |
+ ScrollableAreaStub(const IntSize& viewportSize, const IntSize& contentsSize) |
+ : m_userInputScrollableX(true) |
+ , m_userInputScrollableY(true) |
+ , m_viewportSize(viewportSize) |
+ , m_contentsSize(contentsSize) |
+ { |
+ } |
+ |
void setScrollOffset(const IntPoint& offset, ScrollType) override { m_scrollPosition = offset; } |
void setScrollOffset(const DoublePoint& offset, ScrollType) override { m_scrollPosition = offset; } |
bool shouldUseIntegerScrollOffset() const override { return true; } |
@@ -106,9 +117,9 @@ protected: |
class RootFrameViewStub : public ScrollableAreaStub { |
public: |
- RootFrameViewStub(const IntSize& viewportSize, const IntSize& contentsSize) |
- : ScrollableAreaStub(viewportSize, contentsSize) |
+ static PassOwnPtrWillBeRawPtr<RootFrameViewStub> create(const IntSize& viewportSize, const IntSize& contentsSize) |
{ |
+ return adoptPtrWillBeNoop(new RootFrameViewStub(viewportSize, contentsSize)); |
} |
DoublePoint maximumScrollPositionDouble() const override |
@@ -117,16 +128,20 @@ public: |
} |
private: |
+ RootFrameViewStub(const IntSize& viewportSize, const IntSize& contentsSize) |
+ : ScrollableAreaStub(viewportSize, contentsSize) |
+ { |
+ } |
+ |
int visibleWidth() const override { return m_viewportSize.width(); } |
int visibleHeight() const override { return m_viewportSize.height(); } |
}; |
class VisualViewportStub : public ScrollableAreaStub { |
public: |
- VisualViewportStub(const IntSize& viewportSize, const IntSize& contentsSize) |
- : ScrollableAreaStub(viewportSize, contentsSize) |
- , m_scale(1) |
+ static PassOwnPtrWillBeRawPtr<VisualViewportStub> create(const IntSize& viewportSize, const IntSize& contentsSize) |
{ |
+ return adoptPtrWillBeNoop(new VisualViewportStub(viewportSize, contentsSize)); |
} |
DoublePoint maximumScrollPositionDouble() const override |
@@ -141,6 +156,12 @@ public: |
void setScale(float scale) { m_scale = scale; } |
private: |
+ VisualViewportStub(const IntSize& viewportSize, const IntSize& contentsSize) |
+ : ScrollableAreaStub(viewportSize, contentsSize) |
+ , m_scale(1) |
+ { |
+ } |
+ |
int visibleWidth() const override { return m_viewportSize.width() / m_scale; } |
int visibleHeight() const override { return m_viewportSize.height() / m_scale; } |
DoubleRect visibleContentRectDouble(IncludeScrollbarsInRect) const override |
@@ -172,18 +193,17 @@ protected: |
TEST_F(RootFrameViewportTest, UserInputScrollable) |
{ |
IntSize viewportSize(100, 150); |
- RootFrameViewStub layoutViewport(viewportSize, IntSize(200, 300)); |
- VisualViewportStub visualViewport(viewportSize, viewportSize); |
+ OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300)); |
+ OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize); |
- OwnPtr<ScrollableArea> rootFrameViewport = |
- RootFrameViewport::create(visualViewport, layoutViewport); |
+ OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get()); |
- visualViewport.setScale(2); |
+ visualViewport->setScale(2); |
// Disable just the layout viewport's horizontal scrolling, the |
// RootFrameViewport should remain scrollable overall. |
- layoutViewport.setUserInputScrollable(false, true); |
- visualViewport.setUserInputScrollable(true, true); |
+ layoutViewport->setUserInputScrollable(false, true); |
+ visualViewport->setUserInputScrollable(true, true); |
EXPECT_TRUE(rootFrameViewport->userInputScrollable(HorizontalScrollbar)); |
EXPECT_TRUE(rootFrameViewport->userInputScrollable(VerticalScrollbar)); |
@@ -191,30 +211,30 @@ TEST_F(RootFrameViewportTest, UserInputScrollable) |
// Layout viewport shouldn't scroll since it's not horizontally scrollable, |
// but visual viewport should. |
rootFrameViewport->userScroll(ScrollRight, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(50, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 0), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(50, 0), rootFrameViewport->scrollPositionDouble()); |
// Disable just the visual viewport's horizontal scrolling, only the layout |
// viewport should scroll. |
rootFrameViewport->setScrollPosition(DoublePoint(), ProgrammaticScroll); |
- layoutViewport.setUserInputScrollable(true, true); |
- visualViewport.setUserInputScrollable(false, true); |
+ layoutViewport->setUserInputScrollable(true, true); |
+ visualViewport->setUserInputScrollable(false, true); |
rootFrameViewport->userScroll(ScrollRight, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(100, 0), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(100, 0), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(100, 0), rootFrameViewport->scrollPositionDouble()); |
// Disable both viewports' horizontal scrolling, all horizontal scrolling |
// should now be blocked. |
rootFrameViewport->setScrollPosition(DoublePoint(), ProgrammaticScroll); |
- layoutViewport.setUserInputScrollable(false, true); |
- visualViewport.setUserInputScrollable(false, true); |
+ layoutViewport->setUserInputScrollable(false, true); |
+ visualViewport->setUserInputScrollable(false, true); |
rootFrameViewport->userScroll(ScrollRight, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(0, 0), rootFrameViewport->scrollPositionDouble()); |
EXPECT_FALSE(rootFrameViewport->userInputScrollable(HorizontalScrollbar)); |
@@ -222,8 +242,8 @@ TEST_F(RootFrameViewportTest, UserInputScrollable) |
// Vertical scrolling should be unaffected. |
rootFrameViewport->userScroll(ScrollDown, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(0, 150), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 75), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 150), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 75), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(0, 225), rootFrameViewport->scrollPositionDouble()); |
// Try the same checks as above but for the vertical direction. |
@@ -233,8 +253,8 @@ TEST_F(RootFrameViewportTest, UserInputScrollable) |
// Disable just the layout viewport's vertical scrolling, the |
// RootFrameViewport should remain scrollable overall. |
- layoutViewport.setUserInputScrollable(true, false); |
- visualViewport.setUserInputScrollable(true, true); |
+ layoutViewport->setUserInputScrollable(true, false); |
+ visualViewport->setUserInputScrollable(true, true); |
EXPECT_TRUE(rootFrameViewport->userInputScrollable(HorizontalScrollbar)); |
EXPECT_TRUE(rootFrameViewport->userInputScrollable(VerticalScrollbar)); |
@@ -242,30 +262,30 @@ TEST_F(RootFrameViewportTest, UserInputScrollable) |
// Layout viewport shouldn't scroll since it's not vertically scrollable, |
// but visual viewport should. |
rootFrameViewport->userScroll(ScrollDown, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 75), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 75), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(0, 75), rootFrameViewport->scrollPositionDouble()); |
// Disable just the visual viewport's vertical scrolling, only the layout |
// viewport should scroll. |
rootFrameViewport->setScrollPosition(DoublePoint(), ProgrammaticScroll); |
- layoutViewport.setUserInputScrollable(true, true); |
- visualViewport.setUserInputScrollable(true, false); |
+ layoutViewport->setUserInputScrollable(true, true); |
+ visualViewport->setUserInputScrollable(true, false); |
rootFrameViewport->userScroll(ScrollDown, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(0, 150), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 150), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(0, 150), rootFrameViewport->scrollPositionDouble()); |
// Disable both viewports' horizontal scrolling, all vertical scrolling |
// should now be blocked. |
rootFrameViewport->setScrollPosition(DoublePoint(), ProgrammaticScroll); |
- layoutViewport.setUserInputScrollable(true, false); |
- visualViewport.setUserInputScrollable(true, false); |
+ layoutViewport->setUserInputScrollable(true, false); |
+ visualViewport->setUserInputScrollable(true, false); |
rootFrameViewport->userScroll(ScrollDown, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(0, 0), rootFrameViewport->scrollPositionDouble()); |
EXPECT_TRUE(rootFrameViewport->userInputScrollable(HorizontalScrollbar)); |
@@ -273,8 +293,8 @@ TEST_F(RootFrameViewportTest, UserInputScrollable) |
// Horizontal scrolling should be unaffected. |
rootFrameViewport->userScroll(ScrollRight, ScrollByPixel, 300); |
- EXPECT_POINT_EQ(DoublePoint(100, 0), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(50, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(100, 0), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 0), visualViewport->scrollPositionDouble()); |
EXPECT_POINT_EQ(DoublePoint(150, 0), rootFrameViewport->scrollPositionDouble()); |
} |
@@ -284,33 +304,32 @@ TEST_F(RootFrameViewportTest, UserInputScrollable) |
TEST_F(RootFrameViewportTest, TestScrollAnimatorUpdatedBeforeScroll) |
{ |
IntSize viewportSize(100, 150); |
- RootFrameViewStub layoutViewport(viewportSize, IntSize(200, 300)); |
- VisualViewportStub visualViewport(viewportSize, viewportSize); |
+ OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300)); |
+ OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize); |
- OwnPtr<ScrollableArea> rootFrameViewport = |
- RootFrameViewport::create(visualViewport, layoutViewport); |
+ OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get()); |
- visualViewport.setScale(2); |
+ visualViewport->setScale(2); |
- visualViewport.setScrollPosition(DoublePoint(50, 75), ProgrammaticScroll); |
+ visualViewport->setScrollPosition(DoublePoint(50, 75), ProgrammaticScroll); |
EXPECT_POINT_EQ(DoublePoint(50, 75), rootFrameViewport->scrollPositionDouble()); |
// If the scroll animator doesn't update, it will still think it's at (0, 0) and so it |
// may early exit. |
rootFrameViewport->setScrollPosition(DoublePoint(0, 0), ProgrammaticScroll); |
EXPECT_POINT_EQ(DoublePoint(0, 0), rootFrameViewport->scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
// Try again for scroll() |
- visualViewport.setScrollPosition(DoublePoint(50, 75), ProgrammaticScroll); |
+ visualViewport->setScrollPosition(DoublePoint(50, 75), ProgrammaticScroll); |
EXPECT_POINT_EQ(DoublePoint(50, 75), rootFrameViewport->scrollPositionDouble()); |
rootFrameViewport->userScroll(ScrollLeft, ScrollByPixel, 50); |
EXPECT_POINT_EQ(DoublePoint(0, 75), rootFrameViewport->scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 75), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 75), visualViewport->scrollPositionDouble()); |
// Try again for handleWheel. |
- visualViewport.setScrollPosition(DoublePoint(50, 75), ProgrammaticScroll); |
+ visualViewport->setScrollPosition(DoublePoint(50, 75), ProgrammaticScroll); |
EXPECT_POINT_EQ(DoublePoint(50, 75), rootFrameViewport->scrollPositionDouble()); |
PlatformWheelEvent wheelEvent( |
@@ -321,15 +340,15 @@ TEST_F(RootFrameViewportTest, TestScrollAnimatorUpdatedBeforeScroll) |
false, false, false, false); |
rootFrameViewport->handleWheel(wheelEvent); |
EXPECT_POINT_EQ(DoublePoint(0, 0), rootFrameViewport->scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
// Make sure the layout viewport is also accounted for. |
- layoutViewport.setScrollPosition(DoublePoint(100, 150), ProgrammaticScroll); |
+ layoutViewport->setScrollPosition(DoublePoint(100, 150), ProgrammaticScroll); |
EXPECT_POINT_EQ(DoublePoint(100, 150), rootFrameViewport->scrollPositionDouble()); |
rootFrameViewport->userScroll(ScrollLeft, ScrollByPixel, 100); |
EXPECT_POINT_EQ(DoublePoint(0, 150), rootFrameViewport->scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 150), layoutViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 150), layoutViewport->scrollPositionDouble()); |
} |
// Test that the scrollIntoView correctly scrolls the main frame |
@@ -337,111 +356,109 @@ TEST_F(RootFrameViewportTest, TestScrollAnimatorUpdatedBeforeScroll) |
TEST_F(RootFrameViewportTest, ScrollIntoView) |
{ |
IntSize viewportSize(100, 150); |
- RootFrameViewStub layoutViewport(viewportSize, IntSize(200, 300)); |
- VisualViewportStub visualViewport(viewportSize, viewportSize); |
+ OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300)); |
+ OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize); |
- OwnPtr<ScrollableArea> rootFrameViewport = |
- RootFrameViewport::create(visualViewport, layoutViewport); |
+ OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get()); |
// Test that the visual viewport is scrolled if the viewport has been |
// resized (as is the case when the ChromeOS keyboard comes up) but not |
// scaled. |
- visualViewport.setViewportSize(IntSize(100, 100)); |
+ visualViewport->setViewportSize(IntSize(100, 100)); |
rootFrameViewport->scrollIntoView( |
LayoutRect(100, 250, 50, 50), |
ScrollAlignment::alignToEdgeIfNeeded, |
ScrollAlignment::alignToEdgeIfNeeded); |
- EXPECT_POINT_EQ(DoublePoint(50, 150), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 50), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 150), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 50), visualViewport->scrollPositionDouble()); |
rootFrameViewport->scrollIntoView( |
LayoutRect(25, 75, 50, 50), |
ScrollAlignment::alignToEdgeIfNeeded, |
ScrollAlignment::alignToEdgeIfNeeded); |
- EXPECT_POINT_EQ(DoublePoint(25, 25), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 50), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(25, 25), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 50), visualViewport->scrollPositionDouble()); |
// Reset the pinch viewport's size, scale the page and repeat the test |
- visualViewport.setViewportSize(IntSize(100, 150)); |
- visualViewport.setScale(2); |
+ visualViewport->setViewportSize(IntSize(100, 150)); |
+ visualViewport->setScale(2); |
rootFrameViewport->setScrollPosition(DoublePoint(), ProgrammaticScroll); |
rootFrameViewport->scrollIntoView( |
LayoutRect(50, 75, 50, 75), |
ScrollAlignment::alignToEdgeIfNeeded, |
ScrollAlignment::alignToEdgeIfNeeded); |
- EXPECT_POINT_EQ(DoublePoint(50, 75), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 75), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
rootFrameViewport->scrollIntoView( |
LayoutRect(190, 290, 10, 10), |
ScrollAlignment::alignToEdgeIfNeeded, |
ScrollAlignment::alignToEdgeIfNeeded); |
- EXPECT_POINT_EQ(DoublePoint(100, 150), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(50, 75), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(100, 150), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 75), visualViewport->scrollPositionDouble()); |
// Scrolling into view the viewport rect itself should be a no-op. |
- visualViewport.setViewportSize(IntSize(100, 100)); |
- visualViewport.setScale(1.5f); |
- visualViewport.setScrollPosition(DoublePoint(0, 10), ProgrammaticScroll); |
- layoutViewport.setScrollPosition(DoublePoint(50, 50), ProgrammaticScroll); |
+ visualViewport->setViewportSize(IntSize(100, 100)); |
+ visualViewport->setScale(1.5f); |
+ visualViewport->setScrollPosition(DoublePoint(0, 10), ProgrammaticScroll); |
+ layoutViewport->setScrollPosition(DoublePoint(50, 50), ProgrammaticScroll); |
rootFrameViewport->setScrollPosition(rootFrameViewport->scrollPositionDouble(), ProgrammaticScroll); |
rootFrameViewport->scrollIntoView( |
LayoutRect(rootFrameViewport->visibleContentRectDouble(ExcludeScrollbars)), |
ScrollAlignment::alignToEdgeIfNeeded, |
ScrollAlignment::alignToEdgeIfNeeded); |
- EXPECT_POINT_EQ(DoublePoint(50, 50), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 10), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 50), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 10), visualViewport->scrollPositionDouble()); |
rootFrameViewport->scrollIntoView( |
LayoutRect(rootFrameViewport->visibleContentRectDouble(ExcludeScrollbars)), |
ScrollAlignment::alignCenterAlways, |
ScrollAlignment::alignCenterAlways); |
- EXPECT_POINT_EQ(DoublePoint(50, 50), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 10), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 50), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 10), visualViewport->scrollPositionDouble()); |
rootFrameViewport->scrollIntoView( |
LayoutRect(rootFrameViewport->visibleContentRectDouble(ExcludeScrollbars)), |
ScrollAlignment::alignTopAlways, |
ScrollAlignment::alignTopAlways); |
- EXPECT_POINT_EQ(DoublePoint(50, 50), layoutViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 10), visualViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 50), layoutViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 10), visualViewport->scrollPositionDouble()); |
} |
// Tests that the setScrollPosition method works correctly with both viewports. |
TEST_F(RootFrameViewportTest, SetScrollPosition) |
{ |
IntSize viewportSize(500, 500); |
- RootFrameViewStub layoutViewport(viewportSize, IntSize(1000, 2000)); |
- VisualViewportStub visualViewport(viewportSize, viewportSize); |
+ OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(1000, 2000)); |
+ OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize); |
- OwnPtr<ScrollableArea> rootFrameViewport = |
- RootFrameViewport::create(visualViewport, layoutViewport); |
+ OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get()); |
- visualViewport.setScale(2); |
+ visualViewport->setScale(2); |
// Ensure that the layout viewport scrolls first. |
rootFrameViewport->setScrollPosition(DoublePoint(100, 100), ProgrammaticScroll); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(100, 100), layoutViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(100, 100), layoutViewport->scrollPositionDouble()); |
// Scroll to the layout viewport's extent, the visual viewport should scroll the |
// remainder. |
rootFrameViewport->setScrollPosition(DoublePoint(700, 1700), ProgrammaticScroll); |
- EXPECT_POINT_EQ(DoublePoint(200, 200), visualViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(500, 1500), layoutViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(200, 200), visualViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(500, 1500), layoutViewport->scrollPositionDouble()); |
// Only the visual viewport should scroll further. Make sure it doesn't scroll |
// out of bounds. |
rootFrameViewport->setScrollPosition(DoublePoint(780, 1780), ProgrammaticScroll); |
- EXPECT_POINT_EQ(DoublePoint(250, 250), visualViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(500, 1500), layoutViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(250, 250), visualViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(500, 1500), layoutViewport->scrollPositionDouble()); |
// Scroll all the way back. |
rootFrameViewport->setScrollPosition(DoublePoint(0, 0), ProgrammaticScroll); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), visualViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(0, 0), layoutViewport->scrollPositionDouble()); |
} |
// Tests that the visible rect (i.e. visual viewport rect) is correctly |
@@ -449,11 +466,10 @@ TEST_F(RootFrameViewportTest, SetScrollPosition) |
TEST_F(RootFrameViewportTest, VisibleContentRect) |
{ |
IntSize viewportSize(500, 401); |
- RootFrameViewStub layoutViewport(viewportSize, IntSize(1000, 2000)); |
- VisualViewportStub visualViewport(viewportSize, viewportSize); |
+ OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(1000, 2000)); |
+ OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize); |
- OwnPtr<ScrollableArea> rootFrameViewport = |
- RootFrameViewport::create(visualViewport, layoutViewport); |
+ OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get()); |
rootFrameViewport->setScrollPosition(DoublePoint(100, 75), ProgrammaticScroll); |
@@ -462,7 +478,7 @@ TEST_F(RootFrameViewportTest, VisibleContentRect) |
EXPECT_SIZE_EQ(DoubleSize(500, 401), rootFrameViewport->visibleContentRect().size()); |
EXPECT_SIZE_EQ(DoubleSize(500, 401), rootFrameViewport->visibleContentRectDouble().size()); |
- visualViewport.setScale(2); |
+ visualViewport->setScale(2); |
EXPECT_POINT_EQ(DoublePoint(100, 75), rootFrameViewport->visibleContentRect().location()); |
EXPECT_POINT_EQ(DoublePoint(100, 75), rootFrameViewport->visibleContentRectDouble().location()); |
@@ -475,13 +491,12 @@ TEST_F(RootFrameViewportTest, VisibleContentRect) |
TEST_F(RootFrameViewportTest, BasicWheelEvent) |
{ |
IntSize viewportSize(100, 100); |
- RootFrameViewStub layoutViewport(viewportSize, IntSize(200, 300)); |
- VisualViewportStub visualViewport(viewportSize, viewportSize); |
+ OwnPtrWillBeRawPtr<RootFrameViewStub> layoutViewport = RootFrameViewStub::create(viewportSize, IntSize(200, 300)); |
+ OwnPtrWillBeRawPtr<VisualViewportStub> visualViewport = VisualViewportStub::create(viewportSize, viewportSize); |
- OwnPtr<ScrollableArea> rootFrameViewport = |
- RootFrameViewport::create(visualViewport, layoutViewport); |
+ OwnPtrWillBeRawPtr<ScrollableArea> rootFrameViewport = RootFrameViewport::create(*visualViewport.get(), *layoutViewport.get()); |
- visualViewport.setScale(2); |
+ visualViewport->setScale(2); |
PlatformWheelEvent wheelEvent( |
IntPoint(10, 10), IntPoint(10, 10), |
@@ -493,8 +508,8 @@ TEST_F(RootFrameViewportTest, BasicWheelEvent) |
ScrollResult result = rootFrameViewport->handleWheel(wheelEvent); |
EXPECT_TRUE(result.didScroll()); |
- EXPECT_POINT_EQ(DoublePoint(50, 50), visualViewport.scrollPositionDouble()); |
- EXPECT_POINT_EQ(DoublePoint(100, 200), layoutViewport.scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(50, 50), visualViewport->scrollPositionDouble()); |
+ EXPECT_POINT_EQ(DoublePoint(100, 200), layoutViewport->scrollPositionDouble()); |
EXPECT_EQ(350, result.unusedScrollDeltaX); |
EXPECT_EQ(250, result.unusedScrollDeltaY); |
} |