summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2015-01-21 14:50:04 +0000
committerTorne (Richard Coles) <torne@google.com>2015-01-21 14:50:04 +0000
commitec3f91c2254a4a87db039560486ad2cd1c24cd5a (patch)
tree01600c6b60462295c84db09d6cdd7a2daf10fd17
parent9e75a9e8e78755bdac83500676c5d9a933921504 (diff)
downloadWebKit-ec3f91c2254a4a87db039560486ad2cd1c24cd5a.tar.gz
Merge from Chromium at DEPS revision 40.0.2214.89
This commit was generated by merge_to_master.py. Change-Id: Ib4975106222248521436070315b2efa268f84c80
-rw-r--r--Source/web/PageScaleConstraintsSet.cpp3
-rw-r--r--Source/web/tests/WebFrameTest.cpp22
2 files changed, 24 insertions, 1 deletions
diff --git a/Source/web/PageScaleConstraintsSet.cpp b/Source/web/PageScaleConstraintsSet.cpp
index 113517d55..4aa0494f8 100644
--- a/Source/web/PageScaleConstraintsSet.cpp
+++ b/Source/web/PageScaleConstraintsSet.cpp
@@ -206,7 +206,8 @@ void PageScaleConstraintsSet::adjustForAndroidWebViewQuirks(const ViewportDescri
if (wideViewportQuirkEnabled) {
if (useWideViewport && (description.maxWidth.isAuto() || description.maxWidth.type() == ExtendToZoom) && description.zoom != 1.0f) {
- adjustedLayoutSizeWidth = layoutFallbackWidth;
+ if (layoutFallbackWidth)
+ adjustedLayoutSizeWidth = layoutFallbackWidth;
adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayoutSizeWidth, m_viewSize);
} else if (!useWideViewport) {
const float nonWideScale = description.zoom < 1 && description.maxWidth.type() != DeviceWidth && description.maxWidth.type() != DeviceHeight ? -1 : oldInitialScale;
diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp
index 84c623244..2d24c78f3 100644
--- a/Source/web/tests/WebFrameTest.cpp
+++ b/Source/web/tests/WebFrameTest.cpp
@@ -1070,6 +1070,28 @@ TEST_F(WebFrameTest, WideViewportSetsTo980WithoutViewportTag)
EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
}
+TEST_F(WebFrameTest, WideViewportSetsTo980WithXhtmlMp)
+{
+ UseMockScrollbarSettings mockScrollbarSettings;
+ registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
+
+ FixedLayoutTestWebViewClient client;
+ client.m_screenInfo.deviceScaleFactor = 1;
+ int viewportWidth = 640;
+ int viewportHeight = 480;
+
+ FrameTestHelpers::WebViewHelper webViewHelper;
+ webViewHelper.initialize(true, 0, &client, enableViewportSettings);
+ applyViewportStyleOverride(&webViewHelper);
+ webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
+ webViewHelper.webView()->settings()->setUseWideViewport(true);
+ FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport/viewport-legacy-xhtmlmp.html");
+
+ webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
+ EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width());
+ EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height());
+}
+
TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta)
{
UseMockScrollbarSettings mockScrollbarSettings;