Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(343)

Unified Diff: third_party/WebKit/Source/web/tests/VisualViewportTest.cpp

Issue 2387883002: Use float for scroll offset. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
diff --git a/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp b/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
index 0786203f890b72cc32a7da82725408b2b5e8f78a..82515c716672f07aaea0c76c2c4698333dd58d6a 100644
--- a/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
+++ b/third_party/WebKit/Source/web/tests/VisualViewportTest.cpp
@@ -46,6 +46,12 @@
ASSERT_EQ((expected).y(), (actual).y()); \
} while (false)
+#define ASSERT_SIZE_EQ(expected, actual) \
+ do { \
+ ASSERT_EQ((expected).width(), (actual).width()); \
+ ASSERT_EQ((expected).height(), (actual).height()); \
+ } while (false)
+
#define EXPECT_POINT_EQ(expected, actual) \
do { \
EXPECT_EQ((expected).x(), (actual).x()); \
@@ -240,18 +246,17 @@ TEST_P(ParameterizedVisualViewportTest,
visualViewport.setScale(2);
// Fully scroll both viewports.
- frameView.layoutViewportScrollableArea()->setScrollPosition(
- DoublePoint(10000, 10000), ProgrammaticScroll);
+ frameView.layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(10000, 10000), ProgrammaticScroll);
visualViewport.move(FloatSize(10000, 10000));
// Sanity check.
ASSERT_POINT_EQ(FloatPoint(400, 300), visualViewport.location());
- ASSERT_POINT_EQ(
- DoublePoint(200, 1400),
- frameView.layoutViewportScrollableArea()->scrollPositionDouble());
+ ASSERT_SIZE_EQ(ScrollOffset(200, 1400),
+ frameView.layoutViewportScrollableArea()->scrollOffset());
- DoublePoint expectedLocation =
- frameView.getScrollableArea()->visibleContentRectDouble().location();
+ IntPoint expectedLocation =
+ frameView.getScrollableArea()->visibleContentRect().location();
// Shrink the WebView, this should cause both viewports to shrink and
// WebView should do whatever it needs to do to preserve the visible
@@ -260,13 +265,13 @@ TEST_P(ParameterizedVisualViewportTest,
EXPECT_POINT_EQ(
expectedLocation,
- frameView.getScrollableArea()->visibleContentRectDouble().location());
+ frameView.getScrollableArea()->visibleContentRect().location());
webViewImpl()->resize(IntSize(800, 600));
EXPECT_POINT_EQ(
expectedLocation,
- frameView.getScrollableArea()->visibleContentRectDouble().location());
+ frameView.getScrollableArea()->visibleContentRect().location());
}
// Test that the VisualViewport works as expected in case of a scaled
@@ -312,9 +317,9 @@ TEST_P(ParameterizedVisualViewportTest, TestResizeAfterVerticalScroll) {
// Scroll main frame to the bottom of the document
webViewImpl()->mainFrame()->setScrollOffset(WebSize(0, 400));
- EXPECT_POINT_EQ(
- IntPoint(0, 400),
- frame()->view()->layoutViewportScrollableArea()->scrollPosition());
+ EXPECT_SIZE_EQ(
+ ScrollOffset(0, 400),
+ frame()->view()->layoutViewportScrollableArea()->scrollOffset());
webViewImpl()->setPageScaleFactor(2.0);
@@ -333,9 +338,9 @@ TEST_P(ParameterizedVisualViewportTest, TestResizeAfterVerticalScroll) {
// After resizing the scale changes 2.0 -> 4.0
EXPECT_FLOAT_SIZE_EQ(FloatSize(50, 25), visualViewport.visibleRect().size());
- EXPECT_POINT_EQ(
- IntPoint(0, 625),
- frame()->view()->layoutViewportScrollableArea()->scrollPosition());
+ EXPECT_SIZE_EQ(
+ ScrollOffset(0, 625),
+ frame()->view()->layoutViewportScrollableArea()->scrollOffset());
EXPECT_FLOAT_POINT_EQ(FloatPoint(0, 75), visualViewport.location());
}
@@ -400,7 +405,7 @@ TEST_P(ParameterizedVisualViewportTest, TestResizeAfterHorizontalScroll) {
// After resizing the scale changes 2.0 -> 4.0
EXPECT_FLOAT_SIZE_EQ(FloatSize(50, 25), visualViewport.visibleRect().size());
- EXPECT_POINT_EQ(IntPoint(0, 0), frame()->view()->scrollPosition());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 0), frame()->view()->scrollOffset());
EXPECT_FLOAT_POINT_EQ(FloatPoint(150, 0), visualViewport.location());
}
@@ -500,8 +505,8 @@ TEST_P(ParameterizedVisualViewportTest, TestVisibleRectInDocument) {
// Scroll the layout viewport. Ensure its offset is reflected in visibleRectInDocument().
FrameView& frameView = *webViewImpl()->mainFrameImpl()->frameView();
- frameView.layoutViewportScrollableArea()->setScrollPosition(
- DoublePoint(40, 100), ProgrammaticScroll);
+ frameView.layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(40, 100), ProgrammaticScroll);
EXPECT_FLOAT_RECT_EQ(FloatRect(50, 115, 50, 200),
visualViewport.visibleRectInDocument());
}
@@ -519,14 +524,13 @@ TEST_P(ParameterizedVisualViewportTest,
navigateTo(m_baseURL + "200-by-800-viewport.html");
FrameView& frameView = *webViewImpl()->mainFrameImpl()->frameView();
- frameView.layoutViewportScrollableArea()->setScrollPosition(
- DoublePoint(0, 10.5), ProgrammaticScroll);
- frameView.layoutViewportScrollableArea()->ScrollableArea::setScrollPosition(
- DoublePoint(10, 30.5), CompositorScroll);
+ frameView.layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(0, 10.5), ProgrammaticScroll);
+ frameView.layoutViewportScrollableArea()->ScrollableArea::setScrollOffset(
+ ScrollOffset(10, 30.5), CompositorScroll);
- EXPECT_EQ(
- 30.5,
- frameView.layoutViewportScrollableArea()->scrollPositionDouble().y());
+ EXPECT_EQ(30.5,
+ frameView.layoutViewportScrollableArea()->scrollOffset().height());
RuntimeEnabledFeatures::setFractionalScrollOffsetsEnabled(
origFractionalOffsetsEnabled);
@@ -757,7 +761,7 @@ TEST_P(ParameterizedVisualViewportTest,
VisualViewport& visualViewport =
frame()->page()->frameHost().visualViewport();
visualViewport.setScale(2);
- visualViewport.move(FloatPoint(50, 60));
+ visualViewport.move(ScrollOffset(50, 60));
// Move and scale the viewport to make sure it gets reset in the navigation.
EXPECT_POINT_EQ(FloatPoint(50, 60), visualViewport.location());
@@ -855,11 +859,11 @@ TEST_P(ParameterizedVisualViewportTest, TestSavedToHistoryItem) {
registerMockedHttpURLLoad("200-by-300.html");
navigateTo(m_baseURL + "200-by-300.html");
- EXPECT_FLOAT_POINT_EQ(FloatPoint(0, 0),
- toLocalFrame(webViewImpl()->page()->mainFrame())
- ->loader()
- .currentItem()
- ->visualViewportScrollPoint());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 0),
+ toLocalFrame(webViewImpl()->page()->mainFrame())
+ ->loader()
+ .currentItem()
+ ->visualViewportScrollOffset());
VisualViewport& visualViewport =
frame()->page()->frameHost().visualViewport();
@@ -872,11 +876,11 @@ TEST_P(ParameterizedVisualViewportTest, TestSavedToHistoryItem) {
visualViewport.setLocation(FloatPoint(10, 20));
- EXPECT_FLOAT_POINT_EQ(FloatPoint(10, 20),
- toLocalFrame(webViewImpl()->page()->mainFrame())
- ->loader()
- .currentItem()
- ->visualViewportScrollPoint());
+ EXPECT_SIZE_EQ(ScrollOffset(10, 20),
+ toLocalFrame(webViewImpl()->page()->mainFrame())
+ ->loader()
+ .currentItem()
+ ->visualViewportScrollOffset());
}
// Test restoring a HistoryItem properly restores the visual viewport's state.
@@ -931,7 +935,7 @@ TEST_F(VisualViewportTest, TestRestoredFromLegacyHistoryItem) {
VisualViewport& visualViewport =
frame()->page()->frameHost().visualViewport();
EXPECT_EQ(2, visualViewport.scale());
- EXPECT_POINT_EQ(IntPoint(100, 150), frame()->view()->scrollPosition());
+ EXPECT_SIZE_EQ(ScrollOffset(100, 150), frame()->view()->scrollOffset());
EXPECT_FLOAT_POINT_EQ(FloatPoint(20, 30),
visualViewport.visibleRect().location());
}
@@ -948,8 +952,8 @@ TEST_P(ParameterizedVisualViewportTest,
navigateTo(m_baseURL + "content-width-1000.html");
FrameView* frameView = webViewImpl()->mainFrameImpl()->frameView();
- frameView->layoutViewportScrollableArea()->setScrollPosition(
- IntPoint(0, 1000), ProgrammaticScroll);
+ frameView->layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(0, 1000), ProgrammaticScroll);
EXPECT_SIZE_EQ(IntSize(1000, 1000), frameView->frameRect().size());
@@ -960,7 +964,7 @@ TEST_P(ParameterizedVisualViewportTest,
Persistent<HistoryItem> firstItem =
webViewImpl()->mainFrameImpl()->frame()->loader().currentItem();
- EXPECT_POINT_EQ(IntPoint(0, 1000), firstItem->scrollPoint());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 1000), firstItem->scrollOffset());
// Now navigate to a page which causes a smaller frameView. Make sure that
// navigating doesn't cause the history item to set a new scroll offset
@@ -971,7 +975,7 @@ TEST_P(ParameterizedVisualViewportTest,
EXPECT_NE(firstItem,
webViewImpl()->mainFrameImpl()->frame()->loader().currentItem());
EXPECT_LT(frameView->frameRect().size().width(), 1000);
- EXPECT_POINT_EQ(IntPoint(0, 1000), firstItem->scrollPoint());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 1000), firstItem->scrollOffset());
}
// Test that the coordinates sent into moveRangeSelection are offset by the
@@ -1005,7 +1009,7 @@ TEST_P(ParameterizedVisualViewportTest,
// the right and down one line.
VisualViewport& visualViewport =
frame()->page()->frameHost().visualViewport();
- visualViewport.move(FloatPoint(60, 25));
+ visualViewport.move(ScrollOffset(60, 25));
mainFrame->toWebLocalFrame()->moveRangeSelection(initialPoint, endPoint);
EXPECT_EQ("t ", mainFrame->toWebLocalFrame()->selectionAsText().utf8());
}
@@ -1026,20 +1030,22 @@ TEST_P(ParameterizedVisualViewportTest,
visualViewport.setLocation(FloatPoint());
webViewImpl()->scrollFocusedEditableElementIntoRect(IntRect(0, 0, 500, 200));
- EXPECT_POINT_EQ(IntPoint(0, frame()->view()->maximumScrollPosition().y()),
- frame()->view()->scrollPosition());
+ EXPECT_SIZE_EQ(
+ ScrollOffset(0, frame()->view()->maximumScrollOffset().height()),
+ frame()->view()->scrollOffset());
EXPECT_FLOAT_POINT_EQ(FloatPoint(150, 200),
visualViewport.visibleRect().location());
// Try it again but with the page zoomed in
- frame()->view()->setScrollPosition(IntPoint(0, 0), ProgrammaticScroll);
+ frame()->view()->setScrollOffset(ScrollOffset(0, 0), ProgrammaticScroll);
webViewImpl()->resizeVisualViewport(IntSize(500, 300));
visualViewport.setLocation(FloatPoint(0, 0));
webViewImpl()->setPageScaleFactor(2);
webViewImpl()->scrollFocusedEditableElementIntoRect(IntRect(0, 0, 500, 200));
- EXPECT_POINT_EQ(IntPoint(0, frame()->view()->maximumScrollPosition().y()),
- frame()->view()->scrollPosition());
+ EXPECT_SIZE_EQ(
+ ScrollOffset(0, frame()->view()->maximumScrollOffset().height()),
+ frame()->view()->scrollOffset());
EXPECT_FLOAT_POINT_EQ(FloatPoint(125, 150),
visualViewport.visibleRect().location());
@@ -1048,14 +1054,14 @@ TEST_P(ParameterizedVisualViewportTest,
navigateTo(m_baseURL + "pinch-viewport-input-field-long-and-wide.html");
webViewImpl()->setInitialFocus(false);
visualViewport.setLocation(FloatPoint());
- frame()->view()->setScrollPosition(IntPoint(0, 0), ProgrammaticScroll);
+ frame()->view()->setScrollOffset(ScrollOffset(0, 0), ProgrammaticScroll);
webViewImpl()->resizeVisualViewport(IntSize(500, 300));
visualViewport.setLocation(FloatPoint(30, 50));
webViewImpl()->setPageScaleFactor(2);
webViewImpl()->scrollFocusedEditableElementIntoRect(IntRect(0, 0, 500, 200));
- EXPECT_POINT_EQ(IntPoint(200 - 30 - 75, 600 - 50 - 65),
- frame()->view()->scrollPosition());
+ EXPECT_SIZE_EQ(ScrollOffset(200 - 30 - 75, 600 - 50 - 65),
+ frame()->view()->scrollOffset());
EXPECT_FLOAT_POINT_EQ(FloatPoint(30, 50),
visualViewport.visibleRect().location());
}
@@ -1207,59 +1213,60 @@ TEST_P(ParameterizedVisualViewportTest, ScrollIntoViewFractionalOffset) {
// The element is already in the view so the scrollIntoView shouldn't move
// the viewport at all.
webViewImpl()->setVisualViewportOffset(WebFloatPoint(250.25f, 100.25f));
- layoutViewportScrollableArea->setScrollPosition(DoublePoint(0, 900.75),
- ProgrammaticScroll);
+ layoutViewportScrollableArea->setScrollOffset(ScrollOffset(0, 900.75),
+ ProgrammaticScroll);
inputBox->scrollIntoViewIfNeeded(false);
- EXPECT_POINT_EQ(DoublePoint(0, 900),
- layoutViewportScrollableArea->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 900),
+ layoutViewportScrollableArea->scrollOffset());
EXPECT_POINT_EQ(FloatPoint(250.25f, 100.25f), visualViewport.location());
// Change the fractional part of the frameview to one that would round down.
- layoutViewportScrollableArea->setScrollPosition(DoublePoint(0, 900.125),
- ProgrammaticScroll);
+ layoutViewportScrollableArea->setScrollOffset(ScrollOffset(0, 900.125),
+ ProgrammaticScroll);
inputBox->scrollIntoViewIfNeeded(false);
- EXPECT_POINT_EQ(DoublePoint(0, 900),
- layoutViewportScrollableArea->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 900),
+ layoutViewportScrollableArea->scrollOffset());
EXPECT_POINT_EQ(FloatPoint(250.25f, 100.25f), visualViewport.location());
// Repeat both tests above with the visual viewport at a high fractional.
webViewImpl()->setVisualViewportOffset(WebFloatPoint(250.875f, 100.875f));
- layoutViewportScrollableArea->setScrollPosition(DoublePoint(0, 900.75),
- ProgrammaticScroll);
+ layoutViewportScrollableArea->setScrollOffset(ScrollOffset(0, 900.75),
+ ProgrammaticScroll);
inputBox->scrollIntoViewIfNeeded(false);
- EXPECT_POINT_EQ(DoublePoint(0, 900),
- layoutViewportScrollableArea->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 900),
+ layoutViewportScrollableArea->scrollOffset());
EXPECT_POINT_EQ(FloatPoint(250.875f, 100.875f), visualViewport.location());
// Change the fractional part of the frameview to one that would round down.
- layoutViewportScrollableArea->setScrollPosition(DoublePoint(0, 900.125),
- ProgrammaticScroll);
+ layoutViewportScrollableArea->setScrollOffset(ScrollOffset(0, 900.125),
+ ProgrammaticScroll);
inputBox->scrollIntoViewIfNeeded(false);
- EXPECT_POINT_EQ(DoublePoint(0, 900),
- layoutViewportScrollableArea->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 900),
+ layoutViewportScrollableArea->scrollOffset());
EXPECT_POINT_EQ(FloatPoint(250.875f, 100.875f), visualViewport.location());
// Both viewports with a 0.5 fraction.
webViewImpl()->setVisualViewportOffset(WebFloatPoint(250.5f, 100.5f));
- layoutViewportScrollableArea->setScrollPosition(DoublePoint(0, 900.5),
- ProgrammaticScroll);
+ layoutViewportScrollableArea->setScrollOffset(ScrollOffset(0, 900.5),
+ ProgrammaticScroll);
inputBox->scrollIntoViewIfNeeded(false);
- EXPECT_POINT_EQ(DoublePoint(0, 900),
- layoutViewportScrollableArea->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 900),
+ layoutViewportScrollableArea->scrollOffset());
EXPECT_POINT_EQ(FloatPoint(250.5f, 100.5f), visualViewport.location());
}
-static IntPoint expectedMaxFrameViewScrollOffset(VisualViewport& visualViewport,
- FrameView& frameView) {
+static ScrollOffset expectedMaxFrameViewScrollOffset(
+ VisualViewport& visualViewport,
+ FrameView& frameView) {
float aspectRatio = visualViewport.visibleRect().width() /
visualViewport.visibleRect().height();
float newHeight = frameView.frameRect().width() / aspectRatio;
- return IntPoint(
+ return ScrollOffset(
frameView.contentsSize().width() - frameView.frameRect().width(),
frameView.contentsSize().height() - newHeight);
}
@@ -1287,13 +1294,13 @@ TEST_F(VisualViewportTest, TestTopControlsAdjustment) {
// Test that the scroll bounds are adjusted appropriately: the visual viewport
// should be shrunk by 20px to 430px. The outer viewport was shrunk to maintain the
// aspect ratio so it's height is 860px.
- visualViewport.move(FloatPoint(10000, 10000));
+ visualViewport.move(ScrollOffset(10000, 10000));
EXPECT_POINT_EQ(FloatPoint(500, 860 - 430), visualViewport.location());
// The outer viewport (FrameView) should be affected as well.
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
- EXPECT_POINT_EQ(expectedMaxFrameViewScrollOffset(visualViewport, frameView),
- frameView.scrollPosition());
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
+ EXPECT_SIZE_EQ(expectedMaxFrameViewScrollOffset(visualViewport, frameView),
+ frameView.scrollOffset());
// Simulate bringing up the top controls by 10.5px.
webViewImpl()->applyViewportDeltas(WebFloatSize(), WebFloatSize(),
@@ -1302,13 +1309,13 @@ TEST_F(VisualViewportTest, TestTopControlsAdjustment) {
visualViewport.visibleRect().size());
// maximumScrollPosition |ceil|s the top controls adjustment.
- visualViewport.move(FloatPoint(10000, 10000));
+ visualViewport.move(ScrollOffset(10000, 10000));
EXPECT_FLOAT_POINT_EQ(FloatPoint(500, 881 - 441), visualViewport.location());
// The outer viewport (FrameView) should be affected as well.
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
- EXPECT_POINT_EQ(expectedMaxFrameViewScrollOffset(visualViewport, frameView),
- frameView.scrollPosition());
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
+ EXPECT_SIZE_EQ(expectedMaxFrameViewScrollOffset(visualViewport, frameView),
+ frameView.scrollOffset());
}
TEST_F(VisualViewportTest, TestTopControlsAdjustmentWithScale) {
@@ -1334,26 +1341,26 @@ TEST_F(VisualViewportTest, TestTopControlsAdjustmentWithScale) {
EXPECT_SIZE_EQ(IntSize(250, 215), visualViewport.visibleRect().size());
// Test that the scroll bounds are adjusted appropriately.
- visualViewport.move(FloatPoint(10000, 10000));
+ visualViewport.move(ScrollOffset(10000, 10000));
EXPECT_POINT_EQ(FloatPoint(750, 860 - 215), visualViewport.location());
// The outer viewport (FrameView) should be affected as well.
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
- IntPoint expected =
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
+ ScrollOffset expected =
expectedMaxFrameViewScrollOffset(visualViewport, frameView);
- EXPECT_POINT_EQ(expected, frameView.scrollPosition());
+ EXPECT_SIZE_EQ(expected, frameView.scrollOffset());
// Scale back out, FrameView max scroll shouldn't have changed. Visual
// viewport should be moved up to accomodate larger view.
webViewImpl()->applyViewportDeltas(WebFloatSize(), WebFloatSize(),
WebFloatSize(), 0.5f, 0);
EXPECT_EQ(1, visualViewport.scale());
- EXPECT_POINT_EQ(expected, frameView.scrollPosition());
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
- EXPECT_POINT_EQ(expected, frameView.scrollPosition());
+ EXPECT_SIZE_EQ(expected, frameView.scrollOffset());
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
+ EXPECT_SIZE_EQ(expected, frameView.scrollOffset());
EXPECT_POINT_EQ(FloatPoint(500, 860 - 430), visualViewport.location());
- visualViewport.move(FloatPoint(10000, 10000));
+ visualViewport.move(ScrollOffset(10000, 10000));
EXPECT_POINT_EQ(FloatPoint(500, 860 - 430), visualViewport.location());
// Scale out, use a scale that causes fractional rects.
@@ -1367,13 +1374,13 @@ TEST_F(VisualViewportTest, TestTopControlsAdjustmentWithScale) {
EXPECT_SIZE_EQ(FloatSize(625, 548.75), visualViewport.visibleRect().size());
// Ensure max scroll offsets are updated properly.
- visualViewport.move(FloatPoint(10000, 10000));
+ visualViewport.move(ScrollOffset(10000, 10000));
EXPECT_FLOAT_POINT_EQ(FloatPoint(375, 877.5 - 548.75),
visualViewport.location());
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
- EXPECT_POINT_EQ(expectedMaxFrameViewScrollOffset(visualViewport, frameView),
- frameView.scrollPosition());
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
+ EXPECT_SIZE_EQ(expectedMaxFrameViewScrollOffset(visualViewport, frameView),
+ frameView.scrollOffset());
}
// Tests that a scroll all the way to the bottom of the page, while hiding the
@@ -1411,20 +1418,20 @@ TEST_F(VisualViewportTest, TestTopControlsAdjustmentAndResize) {
visualViewport.size());
// Scroll all the way to the bottom, hiding the top controls in the process.
- visualViewport.move(FloatPoint(10000, 10000));
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
+ visualViewport.move(ScrollOffset(10000, 10000));
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
webViewImpl()->topControls().setShownRatio(0);
EXPECT_SIZE_EQ(IntSize(250, visualViewportHeight / pageScale),
visualViewport.visibleRect().size());
- IntPoint frameViewExpected =
+ ScrollOffset frameViewExpected =
expectedMaxFrameViewScrollOffset(visualViewport, frameView);
FloatPoint visualViewportExpected =
FloatPoint(750, layoutViewportHeight - visualViewportHeight / pageScale);
EXPECT_POINT_EQ(visualViewportExpected, visualViewport.location());
- EXPECT_POINT_EQ(frameViewExpected, frameView.scrollPosition());
+ EXPECT_SIZE_EQ(frameViewExpected, frameView.scrollOffset());
FloatPoint totalExpected = visualViewportExpected + frameViewExpected;
@@ -1440,7 +1447,7 @@ TEST_F(VisualViewportTest, TestTopControlsAdjustmentAndResize) {
EXPECT_SIZE_EQ(IntSize(1000, layoutViewportHeight),
frameView.frameRect().size());
EXPECT_POINT_EQ(totalExpected,
- frameView.scrollPosition() + visualViewport.location());
+ visualViewport.location() + frameView.scrollOffset());
}
// Tests that a scroll all the way to the bottom while showing the top controls
@@ -1479,14 +1486,14 @@ TEST_F(VisualViewportTest, TestTopControlsShrinkAdjustmentAndResize) {
// process. (This could happen via window.scrollTo during a scroll, for
// example).
webViewImpl()->topControls().setShownRatio(1);
- visualViewport.move(FloatPoint(10000, 10000));
- frameView.scrollBy(IntSize(10000, 10000), UserScroll);
+ visualViewport.move(ScrollOffset(10000, 10000));
+ frameView.scrollBy(ScrollOffset(10000, 10000), UserScroll);
EXPECT_SIZE_EQ(
IntSize(250, (visualViewportHeight - topControlsHeight) / pageScale),
visualViewport.visibleRect().size());
- IntPoint frameViewExpected = IntPoint(
+ ScrollOffset frameViewExpected(
0, contentHeight -
(layoutViewportHeight - topControlsHeight / minPageScale));
FloatPoint visualViewportExpected =
@@ -1494,7 +1501,7 @@ TEST_F(VisualViewportTest, TestTopControlsShrinkAdjustmentAndResize) {
visualViewport.visibleRect().height()));
EXPECT_POINT_EQ(visualViewportExpected, visualViewport.location());
- EXPECT_POINT_EQ(frameViewExpected, frameView.scrollPosition());
+ EXPECT_SIZE_EQ(frameViewExpected, frameView.scrollOffset());
FloatPoint totalExpected = visualViewportExpected + frameViewExpected;
@@ -1513,7 +1520,7 @@ TEST_F(VisualViewportTest, TestTopControlsShrinkAdjustmentAndResize) {
IntSize(1000, layoutViewportHeight - topControlsHeight / minPageScale),
frameView.frameRect().size());
EXPECT_POINT_EQ(totalExpected,
- frameView.scrollPosition() + visualViewport.location());
+ visualViewport.location() + frameView.scrollOffset());
}
// Tests that a resize due to top controls hiding doesn't incorrectly clamp the
@@ -1534,12 +1541,12 @@ TEST_F(VisualViewportTest, TestTopControlHidingResizeDoesntClampMainFrame) {
webViewImpl()->applyViewportDeltas(WebFloatSize(), WebFloatSize(),
WebFloatSize(), 1, -1);
FrameView& frameView = *webViewImpl()->mainFrameImpl()->frameView();
- frameView.setScrollPosition(IntPoint(0, 10000), ProgrammaticScroll);
- EXPECT_EQ(500, frameView.scrollPositionDouble().y());
+ frameView.setScrollOffset(ScrollOffset(0, 10000), ProgrammaticScroll);
+ EXPECT_EQ(500, frameView.scrollOffset().height());
// Now send the resize, make sure the scroll offset doesn't change.
webViewImpl()->resizeWithTopControls(WebSize(1000, 1500), 500, false);
- EXPECT_EQ(500, frameView.scrollPositionDouble().y());
+ EXPECT_EQ(500, frameView.scrollOffset().height());
}
static void configureHiddenScrollbarsSettings(WebSettings* settings) {
@@ -1611,7 +1618,7 @@ TEST_P(ParameterizedVisualViewportTest,
VisualViewport& visualViewport =
frame()->page()->frameHost().visualViewport();
- visualViewport.move(FloatPoint(0, 100));
+ visualViewport.move(ScrollOffset(0, 100));
EXPECT_EQ(100, visualViewport.location().y());
@@ -1779,12 +1786,11 @@ TEST_P(ParameterizedVisualViewportTest, FractionalMaxScrollOffset) {
ScrollableArea* scrollableArea = &visualViewport;
webViewImpl()->setPageScaleFactor(1.0);
- EXPECT_FLOAT_POINT_EQ(DoublePoint(),
- scrollableArea->maximumScrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(), scrollableArea->maximumScrollOffset());
webViewImpl()->setPageScaleFactor(2);
- EXPECT_FLOAT_POINT_EQ(DoublePoint(101. / 2., 201. / 2.),
- scrollableArea->maximumScrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(101. / 2., 201. / 2.),
+ scrollableArea->maximumScrollOffset());
}
// Tests that the slow scrolling after an impl scroll on the visual viewport
@@ -1838,8 +1844,8 @@ TEST_P(ParameterizedVisualViewportTest, AccessibilityHitTestWhileZoomedIn) {
webViewImpl()->setPageScaleFactor(2);
webViewImpl()->setVisualViewportOffset(WebFloatPoint(200, 230));
- frameView.layoutViewportScrollableArea()->setScrollPosition(
- DoublePoint(400, 1100), ProgrammaticScroll);
+ frameView.layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(400, 1100), ProgrammaticScroll);
// FIXME(504057): PaintLayerScrollableArea dirties the compositing state.
forceFullCompositingUpdate();
@@ -1896,8 +1902,8 @@ TEST_P(ParameterizedVisualViewportTest, TestCoordinateTransforms) {
visualViewport.rootFrameToViewport(FloatPoint(50.5, 62.4)));
// Scrolling the main frame should have no effect.
- frameView.layoutViewportScrollableArea()->setScrollPosition(
- DoublePoint(100, 120), ProgrammaticScroll);
+ frameView.layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(100, 120), ProgrammaticScroll);
EXPECT_FLOAT_POINT_EQ(FloatPoint(50, 62), visualViewport.viewportToRootFrame(
FloatPoint(80, 100)));
EXPECT_FLOAT_POINT_EQ(FloatPoint(80, 100),
@@ -1959,7 +1965,7 @@ TEST_P(ParameterizedVisualViewportTest,
FrameView& frameView = *webViewImpl()->mainFrameImpl()->frameView();
EXPECT_FLOAT_POINT_EQ(FloatPoint(50, 50), visualViewport.location());
- EXPECT_FLOAT_POINT_EQ(FloatPoint(0, 0), frameView.scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(0, 0), frameView.scrollOffset());
}
TEST_P(ParameterizedVisualViewportTest, ResizeWithScrollAnchoring) {
@@ -1974,13 +1980,12 @@ TEST_P(ParameterizedVisualViewportTest, ResizeWithScrollAnchoring) {
navigateTo(m_baseURL + "icb-relative-content.html");
FrameView& frameView = *webViewImpl()->mainFrameImpl()->frameView();
- frameView.layoutViewportScrollableArea()->setScrollPosition(
- DoublePoint(700, 500), ProgrammaticScroll);
+ frameView.layoutViewportScrollableArea()->setScrollOffset(
+ ScrollOffset(700, 500), ProgrammaticScroll);
webViewImpl()->resize(IntSize(800, 300));
- EXPECT_POINT_EQ(
- DoublePoint(700, 200),
- frameView.layoutViewportScrollableArea()->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(700, 200),
+ frameView.layoutViewportScrollableArea()->scrollOffset());
RuntimeEnabledFeatures::setScrollAnchoringEnabled(wasScrollAnchoringEnabled);
}
@@ -2005,18 +2010,17 @@ TEST_P(ParameterizedVisualViewportTest, ResizeAnchoringWithRootScroller) {
frame()->document()->setRootScroller(scroller, nonThrow);
webViewImpl()->setPageScaleFactor(3.f);
- frameView.getScrollableArea()->setScrollPosition(DoublePoint(0, 400),
- ProgrammaticScroll);
+ frameView.getScrollableArea()->setScrollOffset(ScrollOffset(0, 400),
+ ProgrammaticScroll);
VisualViewport& visualViewport =
webViewImpl()->page()->frameHost().visualViewport();
- visualViewport.setScrollPosition(DoublePoint(0, 400), ProgrammaticScroll);
+ visualViewport.setScrollOffset(ScrollOffset(0, 400), ProgrammaticScroll);
webViewImpl()->resize(IntSize(800, 500));
- EXPECT_POINT_EQ(
- DoublePoint(),
- frameView.layoutViewportScrollableArea()->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(),
+ frameView.layoutViewportScrollableArea()->scrollOffset());
RuntimeEnabledFeatures::setSetRootScrollerEnabled(wasRootScrollerEnabled);
}
@@ -2045,9 +2049,8 @@ TEST_P(ParameterizedVisualViewportTest, RotationAnchoringWithRootScroller) {
webViewImpl()->resize(IntSize(600, 800));
- EXPECT_POINT_EQ(
- DoublePoint(),
- frameView.layoutViewportScrollableArea()->scrollPositionDouble());
+ EXPECT_SIZE_EQ(ScrollOffset(),
+ frameView.layoutViewportScrollableArea()->scrollOffset());
EXPECT_EQ(600, scroller->scrollTop());
RuntimeEnabledFeatures::setSetRootScrollerEnabled(wasRootScrollerEnabled);

Powered by Google App Engine
This is Rietveld 408576698