| 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()->setPageScaleFactor(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()->setPageScaleFactor(userPinchPageScaleFactor); | 
| 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()->setPageScaleFactor(userPinchPageScaleFactor); | 
| 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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(initialPageScaleFact
      or); | 
| 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()->setPageScaleFactor(initialPageScaleFact
      or); | 
|  | 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()->setPageScaleFactor(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()->setPageScaleFactor(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->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(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()->setPageScaleFactor(webViewHelper.webViewImpl()-
      >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()->setPageScaleFactor(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()->setPageScaleFactor(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 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5394     EXPECT_EQ(2U, container->percentHeightDescendants()->size()); | 5396     EXPECT_EQ(2U, container->percentHeightDescendants()->size()); | 
| 5395     EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA
      nonymous)); | 5397     EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA
      nonymous)); | 
| 5396     EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir
      ectChild)); | 5398     EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir
      ectChild)); | 
| 5397 | 5399 | 
| 5398     WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB
      lock(); | 5400     WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB
      lock(); | 
| 5399     EXPECT_TRUE(anonymousBlock->isAnonymous()); | 5401     EXPECT_TRUE(anonymousBlock->isAnonymous()); | 
| 5400     EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); | 5402     EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); | 
| 5401 } | 5403 } | 
| 5402 | 5404 | 
| 5403 } // namespace | 5405 } // namespace | 
| OLD | NEW | 
|---|