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

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 225303014: [Pinch-to-zoom] Moved scale factor into PinchViewport (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixed layout test breakage Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « Source/web/tests/ProgrammaticScrollTest.cpp ('k') | Source/web/tests/WebInputEventConversionTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698