| Index: Source/WebKit/chromium/tests/WebFrameTest.cpp
|
| diff --git a/Source/WebKit/chromium/tests/WebFrameTest.cpp b/Source/WebKit/chromium/tests/WebFrameTest.cpp
|
| index 306f31a60fdec8b72b1ab0816256328c96e2004c..832a369efb16998531832a39486b8d6967b69baf 100644
|
| --- a/Source/WebKit/chromium/tests/WebFrameTest.cpp
|
| +++ b/Source/WebKit/chromium/tests/WebFrameTest.cpp
|
| @@ -366,7 +366,70 @@ TEST_F(WebFrameTest, setInitializeAtMinimumPageScaleToFalse)
|
| EXPECT_EQ(1.0f, m_webView->pageScaleFactor());
|
| }
|
|
|
| -TEST_F(WebFrameTest, PageViewportInitialScaleOverridesInitializeAtMinimumScale)
|
| +TEST_F(WebFrameTest, SetInitializeAtMinimumPageScaleToFalseAndNoWideViewport)
|
| +{
|
| + registerMockedHttpURLLoad("large-div.html");
|
| +
|
| + FixedLayoutTestWebViewClient client;
|
| + client.m_screenInfo.deviceScaleFactor = 1;
|
| + int viewportWidth = 640;
|
| + int viewportHeight = 480;
|
| +
|
| + m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "large-div.html", true, 0, &client);
|
| + m_webView->enableFixedLayoutMode(true);
|
| + m_webView->settings()->setViewportEnabled(true);
|
| + m_webView->settings()->setInitializeAtMinimumPageScale(false);
|
| + m_webView->settings()->setUseWideViewport(false);
|
| + m_webView->resize(WebSize(viewportWidth, viewportHeight));
|
| +
|
| + // The page must be displayed at 100% zoom, despite that it hosts a wide div element.
|
| + EXPECT_EQ(1.0f, m_webView->pageScaleFactor());
|
| +}
|
| +
|
| +TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth)
|
| +{
|
| + registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
|
| +
|
| + FixedLayoutTestWebViewClient client;
|
| + client.m_screenInfo.deviceScaleFactor = 1;
|
| + int viewportWidth = 640;
|
| + int viewportHeight = 480;
|
| +
|
| + m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client);
|
| + m_webView->enableFixedLayoutMode(true);
|
| + m_webView->settings()->setViewportEnabled(true);
|
| + m_webView->settings()->setUseWideViewport(false);
|
| + m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true);
|
| + m_webView->resize(WebSize(viewportWidth, viewportHeight));
|
| +
|
| + // The page sets viewport width to 3000, but with UseWideViewport == false is must be ignored.
|
| + WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
|
| + EXPECT_EQ(viewportWidth, webViewImpl->mainFrameImpl()->frameView()->contentsSize().width());
|
| +}
|
| +
|
| +TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccountsScale)
|
| +{
|
| + registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
|
| +
|
| + FixedLayoutTestWebViewClient client;
|
| + client.m_screenInfo.deviceScaleFactor = 1;
|
| + int viewportWidth = 640;
|
| + int viewportHeight = 480;
|
| +
|
| + m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client);
|
| + m_webView->enableFixedLayoutMode(true);
|
| + m_webView->settings()->setViewportEnabled(true);
|
| + m_webView->settings()->setUseWideViewport(false);
|
| + m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true);
|
| + m_webView->resize(WebSize(viewportWidth, viewportHeight));
|
| +
|
| + // The page sets viewport width to 3000, but with UseWideViewport == false is must be ignored.
|
| + // While the initial scale specified by the page must be accounted.
|
| + WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
|
| + EXPECT_EQ(viewportWidth / 2, webViewImpl->mainFrameImpl()->frameView()->contentsSize().width());
|
| +}
|
| +
|
| +TEST_F(WebFrameTest, WideViewportSetsTo980WithAutoWidth)
|
| {
|
| registerMockedHttpURLLoad("viewport-2x-initial-scale.html");
|
|
|
| @@ -378,6 +441,27 @@ TEST_F(WebFrameTest, PageViewportInitialScaleOverridesInitializeAtMinimumScale)
|
| m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-2x-initial-scale.html", true, 0, &client);
|
| m_webView->enableFixedLayoutMode(true);
|
| m_webView->settings()->setViewportEnabled(true);
|
| + // This behavior is for compatibility with Android WebView, so it is only
|
| + // activated when support for target-densityDpi is enabled.
|
| + m_webView->settings()->setSupportDeprecatedTargetDensityDPI(true);
|
| + m_webView->resize(WebSize(viewportWidth, viewportHeight));
|
| +
|
| + WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
|
| + EXPECT_EQ(980, webViewImpl->mainFrameImpl()->frameView()->contentsSize().width());
|
| +}
|
| +
|
| +TEST_F(WebFrameTest, PageViewportInitialScaleOverridesInitializeAtMinimumScale)
|
| +{
|
| + registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
|
| +
|
| + FixedLayoutTestWebViewClient client;
|
| + client.m_screenInfo.deviceScaleFactor = 1;
|
| + int viewportWidth = 640;
|
| + int viewportHeight = 480;
|
| +
|
| + m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client);
|
| + m_webView->enableFixedLayoutMode(true);
|
| + m_webView->settings()->setViewportEnabled(true);
|
| m_webView->settings()->setInitializeAtMinimumPageScale(false);
|
| m_webView->resize(WebSize(viewportWidth, viewportHeight));
|
|
|
| @@ -440,7 +524,7 @@ TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesInitializeAtMinimum
|
|
|
| TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitialScale)
|
| {
|
| - registerMockedHttpURLLoad("viewport-2x-initial-scale.html");
|
| + registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
|
|
|
| FixedLayoutTestWebViewClient client;
|
| client.m_screenInfo.deviceScaleFactor = 1;
|
| @@ -448,7 +532,7 @@ TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitial
|
| int viewportHeight = 480;
|
| float enforcedPageScalePactor = 0.5f;
|
|
|
| - m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-2x-initial-scale.html", true, 0, &client);
|
| + m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client);
|
| m_webView->enableFixedLayoutMode(true);
|
| m_webView->settings()->setViewportEnabled(true);
|
| m_webView->setInitialPageScaleOverride(enforcedPageScalePactor);
|
|
|