| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 945 FrameTestHelpers::WebViewHelper webViewHelper; | 945 FrameTestHelpers::WebViewHelper webViewHelper; |
| 946 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); | 946 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); |
| 947 | 947 |
| 948 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 948 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 949 webViewHelper.webView()->layout(); | 949 webViewHelper.webView()->layout(); |
| 950 | 950 |
| 951 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); | 951 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); |
| 952 | 952 |
| 953 // Device scale factor should be independent of page scale. | 953 // Device scale factor should be independent of page scale. |
| 954 webViewHelper.webView()->setPageScaleFactorLimits(1, 2); | 954 webViewHelper.webView()->setPageScaleFactorLimits(1, 2); |
| 955 webViewHelper.webView()->setPageScaleFactorPreservingScrollOffset(0.5); | 955 webViewHelper.webView()->setPinchViewportScaleFactor(0.5); |
| 956 webViewHelper.webView()->layout(); | 956 webViewHelper.webView()->layout(); |
| 957 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); | 957 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
| 958 | 958 |
| 959 // Force the layout to happen before leaving the test. | 959 // Force the layout to happen before leaving the test. |
| 960 webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8(); | 960 webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8(); |
| 961 } | 961 } |
| 962 | 962 |
| 963 TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumScale) | 963 TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumScale) |
| 964 { | 964 { |
| 965 UseMockScrollbarSettings mockScrollbarSettings; | 965 UseMockScrollbarSettings mockScrollbarSettings; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 977 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 977 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 978 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 978 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 979 | 979 |
| 980 int defaultFixedLayoutWidth = 980; | 980 int defaultFixedLayoutWidth = 980; |
| 981 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; | 981 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; |
| 982 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); | 982 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); |
| 983 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); | 983 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); |
| 984 | 984 |
| 985 // Assume the user has pinch zoomed to page scale factor 2. | 985 // Assume the user has pinch zoomed to page scale factor 2. |
| 986 float userPinchPageScaleFactor = 2; | 986 float userPinchPageScaleFactor = 2; |
| 987 webViewHelper.webView()->setPageScaleFactorPreservingScrollOffset(userPinchP
ageScaleFactor); | 987 webViewHelper.webView()->setPinchViewportScaleFactor(userPinchPageScaleFacto
r); |
| 988 webViewHelper.webView()->layout(); | 988 webViewHelper.webView()->layout(); |
| 989 | 989 |
| 990 // Make sure we don't reset to initial scale if the page continues to load. | 990 // Make sure we don't reset to initial scale if the page continues to load. |
| 991 webViewHelper.webViewImpl()->didCommitLoad(false, false); | 991 webViewHelper.webViewImpl()->didCommitLoad(false, false); |
| 992 webViewHelper.webViewImpl()->didChangeContentsSize(); | 992 webViewHelper.webViewImpl()->didChangeContentsSize(); |
| 993 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 993 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| 994 | 994 |
| 995 // Make sure we don't reset to initial scale if the viewport size changes. | 995 // Make sure we don't reset to initial scale if the viewport size changes. |
| 996 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); | 996 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); |
| 997 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 997 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1014 webViewHelper.initializeAndLoad(m_baseURL + "wide_document.html", true, 0, &
client, enableViewportSettings); | 1014 webViewHelper.initializeAndLoad(m_baseURL + "wide_document.html", true, 0, &
client, enableViewportSettings); |
| 1015 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1015 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1016 | 1016 |
| 1017 int wideDocumentWidth = 1500; | 1017 int wideDocumentWidth = 1500; |
| 1018 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; | 1018 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; |
| 1019 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); | 1019 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); |
| 1020 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); | 1020 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); |
| 1021 | 1021 |
| 1022 // Assume the user has pinch zoomed to page scale factor 2. | 1022 // Assume the user has pinch zoomed to page scale factor 2. |
| 1023 float userPinchPageScaleFactor = 2; | 1023 float userPinchPageScaleFactor = 2; |
| 1024 webViewHelper.webView()->setPageScaleFactorPreservingScrollOffset(userPinchP
ageScaleFactor); | 1024 webViewHelper.webView()->setPinchViewportScaleFactor(userPinchPageScaleFacto
r); |
| 1025 webViewHelper.webView()->layout(); | 1025 webViewHelper.webView()->layout(); |
| 1026 | 1026 |
| 1027 // Make sure we don't reset to initial scale if the page continues to load. | 1027 // Make sure we don't reset to initial scale if the page continues to load. |
| 1028 webViewHelper.webViewImpl()->didCommitLoad(false, false); | 1028 webViewHelper.webViewImpl()->didCommitLoad(false, false); |
| 1029 webViewHelper.webViewImpl()->didChangeContentsSize(); | 1029 webViewHelper.webViewImpl()->didChangeContentsSize(); |
| 1030 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 1030 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| 1031 | 1031 |
| 1032 // Make sure we don't reset to initial scale if the viewport size changes. | 1032 // Make sure we don't reset to initial scale if the viewport size changes. |
| 1033 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); | 1033 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); |
| 1034 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 1034 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1587 // Small viewport to ensure there are always scrollbars. | 1587 // Small viewport to ensure there are always scrollbars. |
| 1588 int viewportWidth = 64; | 1588 int viewportWidth = 64; |
| 1589 int viewportHeight = 48; | 1589 int viewportHeight = 48; |
| 1590 | 1590 |
| 1591 FrameTestHelpers::WebViewHelper webViewHelper; | 1591 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1592 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1592 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1593 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1593 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1594 webViewHelper.webView()->layout(); | 1594 webViewHelper.webView()->layout(); |
| 1595 | 1595 |
| 1596 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 1596 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 1597 webViewHelper.webViewImpl()->setPageScaleFactor(3, WebPoint()); | 1597 webViewHelper.webViewImpl()->setPinchViewportScaleFactor(3); |
| 1598 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); | 1598 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); |
| 1599 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 1599 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 1600 } | 1600 } |
| 1601 | 1601 |
| 1602 TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) | 1602 TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) |
| 1603 { | 1603 { |
| 1604 UseMockScrollbarSettings mockScrollbarSettings; | 1604 UseMockScrollbarSettings mockScrollbarSettings; |
| 1605 | 1605 |
| 1606 registerMockedHttpURLLoad("fixed_layout.html"); | 1606 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1607 | 1607 |
| 1608 FixedLayoutTestWebViewClient client; | 1608 FixedLayoutTestWebViewClient client; |
| 1609 client.m_screenInfo.deviceScaleFactor = 1; | 1609 client.m_screenInfo.deviceScaleFactor = 1; |
| 1610 int viewportWidth = 640; | 1610 int viewportWidth = 640; |
| 1611 int viewportHeight = 480; | 1611 int viewportHeight = 480; |
| 1612 | 1612 |
| 1613 FrameTestHelpers::WebViewHelper webViewHelper; | 1613 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1614 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1614 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1615 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1615 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1616 webViewHelper.webView()->layout(); | 1616 webViewHelper.webView()->layout(); |
| 1617 | 1617 |
| 1618 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 1618 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 1619 webViewHelper.webViewImpl()->setPageScaleFactor(30, WebPoint()); | 1619 webViewHelper.webViewImpl()->setPinchViewportScaleFactor(30); |
| 1620 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); | 1620 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); |
| 1621 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 1621 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 1622 | 1622 |
| 1623 } | 1623 } |
| 1624 | 1624 |
| 1625 TEST_F(WebFrameTest, setPageScaleFactorBeforeFrameHasView) | 1625 TEST_F(WebFrameTest, setPageScaleFactorBeforeFrameHasView) |
| 1626 { | 1626 { |
| 1627 registerMockedHttpURLLoad("fixed_layout.html"); | 1627 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1628 | 1628 |
| 1629 float pageScaleFactor = 3; | 1629 float pageScaleFactor = 3; |
| 1630 FrameTestHelpers::WebViewHelper webViewHelper; | 1630 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1631 webViewHelper.initializeAndLoad("about:html", true, 0, 0); | 1631 webViewHelper.initializeAndLoad("about:html", true, 0, 0); |
| 1632 webViewHelper.webView()->setPageScaleFactor(pageScaleFactor, WebPoint()); | 1632 webViewHelper.webView()->setPinchViewportScaleFactor(pageScaleFactor); |
| 1633 | 1633 |
| 1634 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "fixed_layout.html"); | 1634 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "fixed_layout.html"); |
| 1635 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 1635 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
| 1636 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); | 1636 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); |
| 1637 EXPECT_EQ(pageScaleFactor, view->visibleContentScaleFactor()); | 1637 EXPECT_EQ(pageScaleFactor, view->visibleContentScaleFactor()); |
| 1638 } | 1638 } |
| 1639 | 1639 |
| 1640 TEST_F(WebFrameTest, pageScaleFactorWrittenToHistoryItem) | 1640 TEST_F(WebFrameTest, pageScaleFactorWrittenToHistoryItem) |
| 1641 { | 1641 { |
| 1642 UseMockScrollbarSettings mockScrollbarSettings; | 1642 UseMockScrollbarSettings mockScrollbarSettings; |
| 1643 registerMockedHttpURLLoad("fixed_layout.html"); | 1643 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1644 | 1644 |
| 1645 FixedLayoutTestWebViewClient client; | 1645 FixedLayoutTestWebViewClient client; |
| 1646 client.m_screenInfo.deviceScaleFactor = 1; | 1646 client.m_screenInfo.deviceScaleFactor = 1; |
| 1647 int viewportWidth = 640; | 1647 int viewportWidth = 640; |
| 1648 int viewportHeight = 480; | 1648 int viewportHeight = 480; |
| 1649 | 1649 |
| 1650 FrameTestHelpers::WebViewHelper webViewHelper; | 1650 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1651 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1651 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1652 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1652 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1653 webViewHelper.webView()->layout(); | 1653 webViewHelper.webView()->layout(); |
| 1654 | 1654 |
| 1655 webViewHelper.webView()->setPageScaleFactor(3, WebPoint()); | 1655 webViewHelper.webView()->setPinchViewportScaleFactor(3); |
| 1656 EXPECT_EQ(3, webViewHelper.webViewImpl()->page()->mainFrame()->loader().curr
entItem()->pageScaleFactor()); | 1656 EXPECT_EQ(3, webViewHelper.webViewImpl()->page()->mainFrame()->loader().curr
entItem()->pageScaleFactor()); |
| 1657 } | 1657 } |
| 1658 | 1658 |
| 1659 TEST_F(WebFrameTest, initialScaleWrittenToHistoryItem) | 1659 TEST_F(WebFrameTest, initialScaleWrittenToHistoryItem) |
| 1660 { | 1660 { |
| 1661 UseMockScrollbarSettings mockScrollbarSettings; | 1661 UseMockScrollbarSettings mockScrollbarSettings; |
| 1662 registerMockedHttpURLLoad("fixed_layout.html"); | 1662 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1663 | 1663 |
| 1664 FixedLayoutTestWebViewClient client; | 1664 FixedLayoutTestWebViewClient client; |
| 1665 client.m_screenInfo.deviceScaleFactor = 1; | 1665 client.m_screenInfo.deviceScaleFactor = 1; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1689 | 1689 |
| 1690 FrameTestHelpers::WebViewHelper webViewHelper; | 1690 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1691 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt, enableViewportSettings); | 1691 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt, enableViewportSettings); |
| 1692 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1692 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1693 webViewHelper.webView()->layout(); | 1693 webViewHelper.webView()->layout(); |
| 1694 | 1694 |
| 1695 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); | 1695 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); |
| 1696 int viewportWidthMinusScrollbar = viewportWidth - (view->verticalScrollbar()
->isOverlayScrollbar() ? 0 : 15); | 1696 int viewportWidthMinusScrollbar = viewportWidth - (view->verticalScrollbar()
->isOverlayScrollbar() ? 0 : 15); |
| 1697 int viewportHeightMinusScrollbar = viewportHeight - (view->horizontalScrollb
ar()->isOverlayScrollbar() ? 0 : 15); | 1697 int viewportHeightMinusScrollbar = viewportHeight - (view->horizontalScrollb
ar()->isOverlayScrollbar() ? 0 : 15); |
| 1698 | 1698 |
| 1699 webViewHelper.webView()->setPageScaleFactor(2, WebPoint()); | 1699 webViewHelper.webView()->setPinchViewportScaleFactor(2); |
| 1700 | 1700 |
| 1701 WebCore::IntSize unscaledSize = view->unscaledVisibleContentSize(WebCore::In
cludeScrollbars); | 1701 WebCore::IntSize unscaledSize = view->unscaledVisibleContentSize(WebCore::In
cludeScrollbars); |
| 1702 EXPECT_EQ(viewportWidth, unscaledSize.width()); | 1702 EXPECT_EQ(viewportWidth, unscaledSize.width()); |
| 1703 EXPECT_EQ(viewportHeight, unscaledSize.height()); | 1703 EXPECT_EQ(viewportHeight, unscaledSize.height()); |
| 1704 | 1704 |
| 1705 WebCore::IntSize unscaledSizeMinusScrollbar = view->unscaledVisibleContentSi
ze(WebCore::ExcludeScrollbars); | 1705 WebCore::IntSize unscaledSizeMinusScrollbar = view->unscaledVisibleContentSi
ze(WebCore::ExcludeScrollbars); |
| 1706 EXPECT_EQ(viewportWidthMinusScrollbar, unscaledSizeMinusScrollbar.width()); | 1706 EXPECT_EQ(viewportWidthMinusScrollbar, unscaledSizeMinusScrollbar.width()); |
| 1707 EXPECT_EQ(viewportHeightMinusScrollbar, unscaledSizeMinusScrollbar.height())
; | 1707 EXPECT_EQ(viewportHeightMinusScrollbar, unscaledSizeMinusScrollbar.height())
; |
| 1708 | 1708 |
| 1709 WebCore::IntSize scaledSize = view->visibleContentRect().size(); | 1709 WebCore::IntSize scaledSize = view->visibleContentRect().size(); |
| 1710 EXPECT_EQ(ceil(viewportWidthMinusScrollbar / 2.0), scaledSize.width()); | 1710 EXPECT_EQ(ceil(viewportWidthMinusScrollbar / 2.0), scaledSize.width()); |
| 1711 EXPECT_EQ(ceil(viewportHeightMinusScrollbar / 2.0), scaledSize.height()); | 1711 EXPECT_EQ(ceil(viewportHeightMinusScrollbar / 2.0), scaledSize.height()); |
| 1712 } | 1712 } |
| 1713 | 1713 |
| 1714 TEST_F(WebFrameTest, pageScaleFactorDoesNotApplyCssTransform) | 1714 TEST_F(WebFrameTest, pageScaleFactorDoesNotApplyCssTransform) |
| 1715 { | 1715 { |
| 1716 UseMockScrollbarSettings mockScrollbarSettings; | 1716 UseMockScrollbarSettings mockScrollbarSettings; |
| 1717 registerMockedHttpURLLoad("fixed_layout.html"); | 1717 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1718 | 1718 |
| 1719 FixedLayoutTestWebViewClient client; | 1719 FixedLayoutTestWebViewClient client; |
| 1720 client.m_screenInfo.deviceScaleFactor = 1; | 1720 client.m_screenInfo.deviceScaleFactor = 1; |
| 1721 int viewportWidth = 640; | 1721 int viewportWidth = 640; |
| 1722 int viewportHeight = 480; | 1722 int viewportHeight = 480; |
| 1723 | 1723 |
| 1724 FrameTestHelpers::WebViewHelper webViewHelper; | 1724 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1725 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1725 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1726 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1726 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1727 webViewHelper.webView()->layout(); | 1727 webViewHelper.webView()->layout(); |
| 1728 | 1728 |
| 1729 webViewHelper.webView()->setPageScaleFactor(2, WebPoint()); | 1729 webViewHelper.webView()->setPinchViewportScaleFactor(2); |
| 1730 | 1730 |
| 1731 EXPECT_EQ(980, webViewHelper.webViewImpl()->page()->mainFrame()->contentRend
erer()->unscaledDocumentRect().width()); | 1731 EXPECT_EQ(980, webViewHelper.webViewImpl()->page()->mainFrame()->contentRend
erer()->unscaledDocumentRect().width()); |
| 1732 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 1732 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 1733 } | 1733 } |
| 1734 | 1734 |
| 1735 TEST_F(WebFrameTest, targetDensityDpiHigh) | 1735 TEST_F(WebFrameTest, targetDensityDpiHigh) |
| 1736 { | 1736 { |
| 1737 UseMockScrollbarSettings mockScrollbarSettings; | 1737 UseMockScrollbarSettings mockScrollbarSettings; |
| 1738 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); | 1738 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
| 1739 | 1739 |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1991 registerMockedHttpURLLoad(url); | 1991 registerMockedHttpURLLoad(url); |
| 1992 | 1992 |
| 1993 const float aspectRatio = static_cast<float>(viewportSize.width) / viewp
ortSize.height; | 1993 const float aspectRatio = static_cast<float>(viewportSize.width) / viewp
ortSize.height; |
| 1994 | 1994 |
| 1995 FrameTestHelpers::WebViewHelper webViewHelper; | 1995 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1996 webViewHelper.initializeAndLoad(m_baseURL + url, true, 0, 0, enableViewp
ortSettings); | 1996 webViewHelper.initializeAndLoad(m_baseURL + url, true, 0, 0, enableViewp
ortSettings); |
| 1997 | 1997 |
| 1998 // Origin scrollOffsets preserved under resize. | 1998 // Origin scrollOffsets preserved under resize. |
| 1999 { | 1999 { |
| 2000 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height)); | 2000 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height)); |
| 2001 webViewHelper.webViewImpl()->setPageScaleFactor(initialPageScaleFact
or, WebPoint()); | 2001 webViewHelper.webViewImpl()->setPinchViewportScaleFactor(initialPage
ScaleFactor); |
| 2002 ASSERT_EQ(viewportSize, webViewHelper.webViewImpl()->size()); | 2002 ASSERT_EQ(viewportSize, webViewHelper.webViewImpl()->size()); |
| 2003 ASSERT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); | 2003 ASSERT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); |
| 2004 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.height, vie
wportSize.width)); | 2004 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.height, vie
wportSize.width)); |
| 2005 float expectedPageScaleFactor = initialPageScaleFactor * (shouldScal
eRelativeToViewportWidth ? 1 / aspectRatio : 1); | 2005 float expectedPageScaleFactor = initialPageScaleFactor * (shouldScal
eRelativeToViewportWidth ? 1 / aspectRatio : 1); |
| 2006 EXPECT_NEAR(expectedPageScaleFactor, webViewHelper.webViewImpl()->pa
geScaleFactor(), 0.05f); | 2006 EXPECT_NEAR(expectedPageScaleFactor, webViewHelper.webViewImpl()->pa
geScaleFactor(), 0.05f); |
| 2007 EXPECT_EQ(WebSize(), webViewHelper.webViewImpl()->mainFrame()->scrol
lOffset()); | 2007 EXPECT_EQ(WebSize(), webViewHelper.webViewImpl()->mainFrame()->scrol
lOffset()); |
| 2008 } | 2008 } |
| 2009 | 2009 |
| 2010 // Resizing just the height should not affect pageScaleFactor or scrollO
ffset. | 2010 // Resizing just the height should not affect pageScaleFactor or scrollO
ffset. |
| 2011 { | 2011 { |
| 2012 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height)); | 2012 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height)); |
| 2013 webViewHelper.webViewImpl()->setPageScaleFactor(initialPageScaleFact
or, WebPoint(scrollOffset.width, scrollOffset.height)); | 2013 webViewHelper.webViewImpl()->setPinchViewportScaleFactor(initialPage
ScaleFactor); |
| 2014 webViewHelper.webViewImpl()->setMainFrameScrollOffset(WebPoint(scrol
lOffset.width, scrollOffset.height)); |
| 2014 webViewHelper.webViewImpl()->layout(); | 2015 webViewHelper.webViewImpl()->layout(); |
| 2015 const WebSize expectedScrollOffset = webViewHelper.webViewImpl()->ma
inFrame()->scrollOffset(); | 2016 const WebSize expectedScrollOffset = webViewHelper.webViewImpl()->ma
inFrame()->scrollOffset(); |
| 2016 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height * 0.8f)); | 2017 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height * 0.8f)); |
| 2017 EXPECT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); | 2018 EXPECT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); |
| 2018 EXPECT_EQ(expectedScrollOffset, webViewHelper.webViewImpl()->mainFra
me()->scrollOffset()); | 2019 EXPECT_EQ(expectedScrollOffset, webViewHelper.webViewImpl()->mainFra
me()->scrollOffset()); |
| 2019 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height * 0.8f)); | 2020 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height * 0.8f)); |
| 2020 EXPECT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); | 2021 EXPECT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); |
| 2021 EXPECT_EQ(expectedScrollOffset, webViewHelper.webViewImpl()->mainFra
me()->scrollOffset()); | 2022 EXPECT_EQ(expectedScrollOffset, webViewHelper.webViewImpl()->mainFra
me()->scrollOffset()); |
| 2022 } | 2023 } |
| 2023 | 2024 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2103 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); | 2104 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); |
| 2104 // FIXME: This test breaks if the viewport is enabled before loading the pag
e due to the paint | 2105 // FIXME: This test breaks if the viewport is enabled before loading the pag
e due to the paint |
| 2105 // calls below not working on composited layers. For some reason, enabling t
he viewport here | 2106 // calls below not working on composited layers. For some reason, enabling t
he viewport here |
| 2106 // doesn't cause compositing | 2107 // doesn't cause compositing |
| 2107 webViewHelper.webView()->settings()->setViewportEnabled(true); | 2108 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 2108 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2109 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2109 webViewHelper.webView()->layout(); | 2110 webViewHelper.webView()->layout(); |
| 2110 | 2111 |
| 2111 // Set <1 page scale so that the clip rect should be larger than | 2112 // Set <1 page scale so that the clip rect should be larger than |
| 2112 // the viewport size as passed into resize(). | 2113 // the viewport size as passed into resize(). |
| 2113 webViewHelper.webView()->setPageScaleFactor(0.5, WebPoint()); | 2114 webViewHelper.webView()->setPinchViewportScaleFactor(0.5); |
| 2114 | 2115 |
| 2115 SkBitmap bitmap; | 2116 SkBitmap bitmap; |
| 2116 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); | 2117 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); |
| 2117 bitmap.eraseColor(0); | 2118 bitmap.eraseColor(0); |
| 2118 SkCanvas canvas(bitmap); | 2119 SkCanvas canvas(bitmap); |
| 2119 | 2120 |
| 2120 WebCore::GraphicsContext context(&canvas); | 2121 WebCore::GraphicsContext context(&canvas); |
| 2121 context.setTrackOpaqueRegion(true); | 2122 context.setTrackOpaqueRegion(true); |
| 2122 | 2123 |
| 2123 EXPECT_EQ_RECT(WebCore::IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()
); | 2124 EXPECT_EQ_RECT(WebCore::IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()
); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 2144 | 2145 |
| 2145 FrameTestHelpers::WebViewHelper webViewHelper; | 2146 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2146 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 2147 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 2147 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2148 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2148 webViewHelper.webView()->layout(); | 2149 webViewHelper.webView()->layout(); |
| 2149 | 2150 |
| 2150 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); | 2151 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); |
| 2151 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); | 2152 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); |
| 2152 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); | 2153 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); |
| 2153 | 2154 |
| 2154 webViewHelper.webView()->setPageScaleFactor(10, WebPoint()); | 2155 webViewHelper.webView()->setPinchViewportScaleFactor(10); |
| 2155 | 2156 |
| 2156 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); | 2157 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); |
| 2157 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); | 2158 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); |
| 2158 } | 2159 } |
| 2159 | 2160 |
| 2160 TEST_F(WebFrameTest, CanOverrideScaleLimits) | 2161 TEST_F(WebFrameTest, CanOverrideScaleLimits) |
| 2161 { | 2162 { |
| 2162 UseMockScrollbarSettings mockScrollbarSettings; | 2163 UseMockScrollbarSettings mockScrollbarSettings; |
| 2163 | 2164 |
| 2164 registerMockedHttpURLLoad("no_scale_for_you.html"); | 2165 registerMockedHttpURLLoad("no_scale_for_you.html"); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2211 EXPECT_TRUE(view->renderView()->compositor()->layerForVerticalScrollbar()); | 2212 EXPECT_TRUE(view->renderView()->compositor()->layerForVerticalScrollbar()); |
| 2212 | 2213 |
| 2213 webViewHelper.webView()->resize(WebSize(viewWidth * 10, viewHeight * 10)); | 2214 webViewHelper.webView()->resize(WebSize(viewWidth * 10, viewHeight * 10)); |
| 2214 webViewHelper.webView()->layout(); | 2215 webViewHelper.webView()->layout(); |
| 2215 EXPECT_FALSE(view->renderView()->compositor()->layerForHorizontalScrollbar()
); | 2216 EXPECT_FALSE(view->renderView()->compositor()->layerForHorizontalScrollbar()
); |
| 2216 EXPECT_FALSE(view->renderView()->compositor()->layerForVerticalScrollbar()); | 2217 EXPECT_FALSE(view->renderView()->compositor()->layerForVerticalScrollbar()); |
| 2217 } | 2218 } |
| 2218 | 2219 |
| 2219 void setScaleAndScrollAndLayout(blink::WebView* webView, WebPoint scroll, float
scale) | 2220 void setScaleAndScrollAndLayout(blink::WebView* webView, WebPoint scroll, float
scale) |
| 2220 { | 2221 { |
| 2221 webView->setPageScaleFactor(scale, WebPoint(scroll.x, scroll.y)); | 2222 webView->setPinchViewportScaleFactor(scale); |
| 2223 webView->setMainFrameScrollOffset(WebPoint(scroll.x, scroll.y)); |
| 2222 webView->layout(); | 2224 webView->layout(); |
| 2223 } | 2225 } |
| 2224 | 2226 |
| 2225 TEST_F(WebFrameTest, DivAutoZoomParamsTest) | 2227 TEST_F(WebFrameTest, DivAutoZoomParamsTest) |
| 2226 { | 2228 { |
| 2227 registerMockedHttpURLLoad("get_scale_for_auto_zoom_into_div_test.html"); | 2229 registerMockedHttpURLLoad("get_scale_for_auto_zoom_into_div_test.html"); |
| 2228 | 2230 |
| 2229 const float deviceScaleFactor = 2.0f; | 2231 const float deviceScaleFactor = 2.0f; |
| 2230 int viewportWidth = 640 / deviceScaleFactor; | 2232 int viewportWidth = 640 / deviceScaleFactor; |
| 2231 int viewportHeight = 1280 / deviceScaleFactor; | 2233 int viewportHeight = 1280 / deviceScaleFactor; |
| 2232 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2234 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2233 FrameTestHelpers::WebViewHelper webViewHelper; | 2235 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2234 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_di
v_test.html"); | 2236 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_di
v_test.html"); |
| 2235 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2237 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 2236 webViewHelper.webView()->setPageScaleFactorLimits(0.01f, 4); | 2238 webViewHelper.webView()->setPageScaleFactorLimits(0.01f, 4); |
| 2237 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); | 2239 webViewHelper.webView()->setPinchViewportScaleFactor(0.5f); |
| 2238 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2240 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2239 webViewHelper.webView()->layout(); | 2241 webViewHelper.webView()->layout(); |
| 2240 | 2242 |
| 2241 WebRect wideDiv(200, 100, 400, 150); | 2243 WebRect wideDiv(200, 100, 400, 150); |
| 2242 WebRect tallDiv(200, 300, 400, 800); | 2244 WebRect tallDiv(200, 300, 400, 800); |
| 2243 WebRect doubleTapPointWide(wideDiv.x + 50, wideDiv.y + 50, touchPointPadding
, touchPointPadding); | 2245 WebRect doubleTapPointWide(wideDiv.x + 50, wideDiv.y + 50, touchPointPadding
, touchPointPadding); |
| 2244 WebRect doubleTapPointTall(tallDiv.x + 50, tallDiv.y + 50, touchPointPadding
, touchPointPadding); | 2246 WebRect doubleTapPointTall(tallDiv.x + 50, tallDiv.y + 50, touchPointPadding
, touchPointPadding); |
| 2245 WebRect wideBlockBounds; | 2247 WebRect wideBlockBounds; |
| 2246 WebRect tallBlockBounds; | 2248 WebRect tallBlockBounds; |
| 2247 float scale; | 2249 float scale; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2308 | 2310 |
| 2309 const float deviceScaleFactor = 2.0f; | 2311 const float deviceScaleFactor = 2.0f; |
| 2310 int viewportWidth = 640 / deviceScaleFactor; | 2312 int viewportWidth = 640 / deviceScaleFactor; |
| 2311 int viewportHeight = 1280 / deviceScaleFactor; | 2313 int viewportHeight = 1280 / deviceScaleFactor; |
| 2312 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2314 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2313 FrameTestHelpers::WebViewHelper webViewHelper; | 2315 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2314 webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test
.html"); | 2316 webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test
.html"); |
| 2315 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2317 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2316 webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4); | 2318 webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4); |
| 2317 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2319 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 2318 webViewHelper.webView()->setPageScaleFactor(1.0f, WebPoint(0, 0)); | 2320 webViewHelper.webView()->setPinchViewportScaleFactor(1.0f); |
| 2319 webViewHelper.webView()->layout(); | 2321 webViewHelper.webView()->layout(); |
| 2320 | 2322 |
| 2321 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 2323 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 2322 | 2324 |
| 2323 float doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimu
mPageScaleFactor() * doubleTapZoomAlreadyLegibleRatio; | 2325 float doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimu
mPageScaleFactor() * doubleTapZoomAlreadyLegibleRatio; |
| 2324 | 2326 |
| 2325 WebRect div(0, 100, viewportWidth, 150); | 2327 WebRect div(0, 100, viewportWidth, 150); |
| 2326 WebPoint point(div.x + 50, div.y + 50); | 2328 WebPoint point(div.x + 50, div.y + 50); |
| 2327 float scale; | 2329 float scale; |
| 2328 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); | 2330 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2341 registerMockedHttpURLLoad("very_tall_div.html"); | 2343 registerMockedHttpURLLoad("very_tall_div.html"); |
| 2342 | 2344 |
| 2343 const float deviceScaleFactor = 2.0f; | 2345 const float deviceScaleFactor = 2.0f; |
| 2344 int viewportWidth = 640 / deviceScaleFactor; | 2346 int viewportWidth = 640 / deviceScaleFactor; |
| 2345 int viewportHeight = 1280 / deviceScaleFactor; | 2347 int viewportHeight = 1280 / deviceScaleFactor; |
| 2346 FrameTestHelpers::WebViewHelper webViewHelper; | 2348 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2347 webViewHelper.initializeAndLoad(m_baseURL + "very_tall_div.html", true, 0, 0
, enableViewportSettings); | 2349 webViewHelper.initializeAndLoad(m_baseURL + "very_tall_div.html", true, 0, 0
, enableViewportSettings); |
| 2348 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2350 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2349 webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4); | 2351 webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4); |
| 2350 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2352 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 2351 webViewHelper.webView()->setPageScaleFactor(1.0f, WebPoint(0, 0)); | 2353 webViewHelper.webView()->setPinchViewportScaleFactor(1.0f); |
| 2352 webViewHelper.webView()->layout(); | 2354 webViewHelper.webView()->layout(); |
| 2353 | 2355 |
| 2354 WebRect div(200, 300, 400, 5000); | 2356 WebRect div(200, 300, 400, 5000); |
| 2355 WebPoint point(div.x + 50, div.y + 3000); | 2357 WebPoint point(div.x + 50, div.y + 3000); |
| 2356 float scale; | 2358 float scale; |
| 2357 WebPoint scroll; | 2359 WebPoint scroll; |
| 2358 | 2360 |
| 2359 WebRect blockBounds = webViewHelper.webViewImpl()->computeBlockBounds(WebRec
t(point.x, point.y, 0, 0), true); | 2361 WebRect blockBounds = webViewHelper.webViewImpl()->computeBlockBounds(WebRec
t(point.x, point.y, 0, 0), true); |
| 2360 webViewHelper.webViewImpl()->computeScaleAndScrollForBlockRect(point, blockB
ounds, 0, 1.0f, scale, scroll); | 2362 webViewHelper.webViewImpl()->computeScaleAndScrollForBlockRect(point, blockB
ounds, 0, 1.0f, scale, scroll); |
| 2361 EXPECT_EQ(scale, 1.0f); | 2363 EXPECT_EQ(scale, 1.0f); |
| 2362 EXPECT_EQ(scroll.y, 2660); | 2364 EXPECT_EQ(scroll.y, 2660); |
| 2363 } | 2365 } |
| 2364 | 2366 |
| 2365 TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest) | 2367 TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest) |
| 2366 { | 2368 { |
| 2367 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); | 2369 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); |
| 2368 | 2370 |
| 2369 const float deviceScaleFactor = 2.0f; | 2371 const float deviceScaleFactor = 2.0f; |
| 2370 int viewportWidth = 640 / deviceScaleFactor; | 2372 int viewportWidth = 640 / deviceScaleFactor; |
| 2371 int viewportHeight = 1280 / deviceScaleFactor; | 2373 int viewportHeight = 1280 / deviceScaleFactor; |
| 2372 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2374 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2373 FrameTestHelpers::WebViewHelper webViewHelper; | 2375 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2374 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); | 2376 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); |
| 2375 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2377 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2376 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); | 2378 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); |
| 2377 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2379 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 2378 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); | 2380 webViewHelper.webView()->setPinchViewportScaleFactor(0.5f); |
| 2379 webViewHelper.webView()->layout(); | 2381 webViewHelper.webView()->layout(); |
| 2380 | 2382 |
| 2381 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 2383 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 2382 | 2384 |
| 2383 WebRect topDiv(200, 100, 200, 150); | 2385 WebRect topDiv(200, 100, 200, 150); |
| 2384 WebRect bottomDiv(200, 300, 200, 150); | 2386 WebRect bottomDiv(200, 300, 200, 150); |
| 2385 WebPoint topPoint(topDiv.x + 50, topDiv.y + 50); | 2387 WebPoint topPoint(topDiv.x + 50, topDiv.y + 50); |
| 2386 WebPoint bottomPoint(bottomDiv.x + 50, bottomDiv.y + 50); | 2388 WebPoint bottomPoint(bottomDiv.x + 50, bottomDiv.y + 50); |
| 2387 float scale; | 2389 float scale; |
| 2388 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); | 2390 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2556 | 2558 |
| 2557 const float deviceScaleFactor = 2.0f; | 2559 const float deviceScaleFactor = 2.0f; |
| 2558 int viewportWidth = 640 / deviceScaleFactor; | 2560 int viewportWidth = 640 / deviceScaleFactor; |
| 2559 int viewportHeight = 1280 / deviceScaleFactor; | 2561 int viewportHeight = 1280 / deviceScaleFactor; |
| 2560 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2562 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2561 FrameTestHelpers::WebViewHelper webViewHelper; | 2563 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2562 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); | 2564 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); |
| 2563 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2565 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2564 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); | 2566 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); |
| 2565 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2567 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 2566 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); | 2568 webViewHelper.webView()->setPinchViewportScaleFactor(0.5f); |
| 2567 webViewHelper.webView()->layout(); | 2569 webViewHelper.webView()->layout(); |
| 2568 | 2570 |
| 2569 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 2571 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 2570 | 2572 |
| 2571 WebRect viewportRect(0, 0, viewportWidth, viewportHeight); | 2573 WebRect viewportRect(0, 0, viewportWidth, viewportHeight); |
| 2572 WebRect topDiv(200, 100, 200, 150); | 2574 WebRect topDiv(200, 100, 200, 150); |
| 2573 WebRect bottomDiv(200, 300, 200, 150); | 2575 WebRect bottomDiv(200, 300, 200, 150); |
| 2574 float scale; | 2576 float scale; |
| 2575 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); | 2577 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); |
| 2576 | 2578 |
| 2577 simulateMultiTargetZoom(webViewHelper.webViewImpl(), topDiv, scale); | 2579 simulateMultiTargetZoom(webViewHelper.webViewImpl(), topDiv, scale); |
| 2578 EXPECT_FLOAT_EQ(1, scale); | 2580 EXPECT_FLOAT_EQ(1, scale); |
| 2579 simulateMultiTargetZoom(webViewHelper.webViewImpl(), bottomDiv, scale); | 2581 simulateMultiTargetZoom(webViewHelper.webViewImpl(), bottomDiv, scale); |
| 2580 EXPECT_FLOAT_EQ(1, scale); | 2582 EXPECT_FLOAT_EQ(1, scale); |
| 2581 simulateMultiTargetZoom(webViewHelper.webViewImpl(), viewportRect, scale); | 2583 simulateMultiTargetZoom(webViewHelper.webViewImpl(), viewportRect, scale); |
| 2582 EXPECT_FLOAT_EQ(1, scale); | 2584 EXPECT_FLOAT_EQ(1, scale); |
| 2583 webViewHelper.webViewImpl()->setPageScaleFactor(webViewHelper.webViewImpl()-
>minimumPageScaleFactor(), WebPoint(0, 0)); | 2585 webViewHelper.webViewImpl()->setPinchViewportScaleFactor(webViewHelper.webVi
ewImpl()->minimumPageScaleFactor()); |
| 2584 simulateMultiTargetZoom(webViewHelper.webViewImpl(), topDiv, scale); | 2586 simulateMultiTargetZoom(webViewHelper.webViewImpl(), topDiv, scale); |
| 2585 EXPECT_FLOAT_EQ(1, scale); | 2587 EXPECT_FLOAT_EQ(1, scale); |
| 2586 } | 2588 } |
| 2587 | 2589 |
| 2588 TEST_F(WebFrameTest, DivScrollIntoEditableTest) | 2590 TEST_F(WebFrameTest, DivScrollIntoEditableTest) |
| 2589 { | 2591 { |
| 2590 registerMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); | 2592 registerMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); |
| 2591 | 2593 |
| 2592 int viewportWidth = 450; | 2594 int viewportWidth = 450; |
| 2593 int viewportHeight = 300; | 2595 int viewportHeight = 300; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2700 const int pageHeight = 480; | 2702 const int pageHeight = 480; |
| 2701 | 2703 |
| 2702 registerMockedHttpURLLoad(firstURL); | 2704 registerMockedHttpURLLoad(firstURL); |
| 2703 registerMockedHttpURLLoad(secondURL); | 2705 registerMockedHttpURLLoad(secondURL); |
| 2704 registerMockedHttpURLLoad(thirdURL); | 2706 registerMockedHttpURLLoad(thirdURL); |
| 2705 | 2707 |
| 2706 FrameTestHelpers::WebViewHelper webViewHelper; | 2708 FrameTestHelpers::WebViewHelper webViewHelper; |
| 2707 webViewHelper.initializeAndLoad(m_baseURL + firstURL, true); | 2709 webViewHelper.initializeAndLoad(m_baseURL + firstURL, true); |
| 2708 webViewHelper.webViewImpl()->resize(WebSize(pageWidth, pageHeight)); | 2710 webViewHelper.webViewImpl()->resize(WebSize(pageWidth, pageHeight)); |
| 2709 webViewHelper.webViewImpl()->mainFrame()->setScrollOffset(WebSize(pageWidth
/ 4, pageHeight / 4)); | 2711 webViewHelper.webViewImpl()->mainFrame()->setScrollOffset(WebSize(pageWidth
/ 4, pageHeight / 4)); |
| 2710 webViewHelper.webViewImpl()->setPageScaleFactorPreservingScrollOffset(pageSc
aleFactor); | 2712 webViewHelper.webViewImpl()->setPinchViewportScaleFactor(pageScaleFactor); |
| 2711 | 2713 |
| 2712 WebSize previousOffset = webViewHelper.webViewImpl()->mainFrame()->scrollOff
set(); | 2714 WebSize previousOffset = webViewHelper.webViewImpl()->mainFrame()->scrollOff
set(); |
| 2713 float previousScale = webViewHelper.webViewImpl()->pageScaleFactor(); | 2715 float previousScale = webViewHelper.webViewImpl()->pageScaleFactor(); |
| 2714 | 2716 |
| 2715 // Reload the page using the cache. | 2717 // Reload the page using the cache. |
| 2716 webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_bas
eURL + secondURL), false); | 2718 webViewHelper.webViewImpl()->mainFrame()->reloadWithOverrideURL(toKURL(m_bas
eURL + secondURL), false); |
| 2717 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 2719 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
| 2718 ASSERT_EQ(previousOffset, webViewHelper.webViewImpl()->mainFrame()->scrollOf
fset()); | 2720 ASSERT_EQ(previousOffset, webViewHelper.webViewImpl()->mainFrame()->scrollOf
fset()); |
| 2719 ASSERT_EQ(previousScale, webViewHelper.webViewImpl()->pageScaleFactor()); | 2721 ASSERT_EQ(previousScale, webViewHelper.webViewImpl()->pageScaleFactor()); |
| 2720 | 2722 |
| (...skipping 1321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4042 webViewHelper.webView()->layout(); | 4044 webViewHelper.webView()->layout(); |
| 4043 | 4045 |
| 4044 client.resetTriggered(); | 4046 client.resetTriggered(); |
| 4045 webViewHelper.webView()->handleInputEvent(fatTap(80, 80)); | 4047 webViewHelper.webView()->handleInputEvent(fatTap(80, 80)); |
| 4046 EXPECT_TRUE(client.triggered()); | 4048 EXPECT_TRUE(client.triggered()); |
| 4047 | 4049 |
| 4048 client.resetTriggered(); | 4050 client.resetTriggered(); |
| 4049 webViewHelper.webView()->handleInputEvent(fatTap(230, 190)); | 4051 webViewHelper.webView()->handleInputEvent(fatTap(230, 190)); |
| 4050 EXPECT_TRUE(client.triggered()); | 4052 EXPECT_TRUE(client.triggered()); |
| 4051 | 4053 |
| 4052 webViewHelper.webView()->setPageScaleFactor(3.0f, WebPoint(0, 0)); | 4054 webViewHelper.webView()->setPinchViewportScaleFactor(3.0f); |
| 4053 webViewHelper.webView()->layout(); | 4055 webViewHelper.webView()->layout(); |
| 4054 | 4056 |
| 4055 client.resetTriggered(); | 4057 client.resetTriggered(); |
| 4056 webViewHelper.webView()->handleInputEvent(fatTap(240, 240)); | 4058 webViewHelper.webView()->handleInputEvent(fatTap(240, 240)); |
| 4057 EXPECT_TRUE(client.triggered()); | 4059 EXPECT_TRUE(client.triggered()); |
| 4058 | 4060 |
| 4059 client.resetTriggered(); | 4061 client.resetTriggered(); |
| 4060 webViewHelper.webView()->handleInputEvent(fatTap(690, 570)); | 4062 webViewHelper.webView()->handleInputEvent(fatTap(690, 570)); |
| 4061 EXPECT_FALSE(client.triggered()); | 4063 EXPECT_FALSE(client.triggered()); |
| 4062 } | 4064 } |
| (...skipping 1404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5467 EXPECT_EQ(2U, container->percentHeightDescendants()->size()); | 5469 EXPECT_EQ(2U, container->percentHeightDescendants()->size()); |
| 5468 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA
nonymous)); | 5470 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA
nonymous)); |
| 5469 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir
ectChild)); | 5471 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir
ectChild)); |
| 5470 | 5472 |
| 5471 WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB
lock(); | 5473 WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB
lock(); |
| 5472 EXPECT_TRUE(anonymousBlock->isAnonymous()); | 5474 EXPECT_TRUE(anonymousBlock->isAnonymous()); |
| 5473 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); | 5475 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); |
| 5474 } | 5476 } |
| 5475 | 5477 |
| 5476 } // namespace | 5478 } // namespace |
| OLD | NEW |