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

Unified Diff: Source/core/page/PageScaleConstraintsSet.cpp

Issue 19555002: Translate viewport related meta tags into @viewport descriptors as suggested by the CSS Device Adap… (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Land patch upload resulted in python error Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/page/PageScaleConstraintsSet.h ('k') | Source/core/page/UseCounter.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/page/PageScaleConstraintsSet.cpp
diff --git a/Source/core/page/PageScaleConstraintsSet.cpp b/Source/core/page/PageScaleConstraintsSet.cpp
index a5df3e1550f4d867b59bc540180127f51e668d75..439c99f6e69e042a272acd0f15a522902345fe1a 100644
--- a/Source/core/page/PageScaleConstraintsSet.cpp
+++ b/Source/core/page/PageScaleConstraintsSet.cpp
@@ -49,9 +49,9 @@ PageScaleConstraints PageScaleConstraintsSet::defaultConstraints() const
return PageScaleConstraints(-1, defaultMinimumScale, defaultMaximumScale);
}
-void PageScaleConstraintsSet::updatePageDefinedConstraints(const ViewportArguments& arguments, IntSize viewSize, int layoutFallbackWidth)
+void PageScaleConstraintsSet::updatePageDefinedConstraints(const ViewportArguments& arguments, IntSize viewSize)
{
- m_pageDefinedConstraints = arguments.resolve(viewSize, viewSize, layoutFallbackWidth);
+ m_pageDefinedConstraints = arguments.resolve(viewSize);
m_constraintsDirty = true;
}
@@ -121,9 +121,9 @@ static float getLayoutWidthForNonWideViewport(const FloatSize& deviceSize, float
void PageScaleConstraintsSet::adjustPageDefinedConstraintsForAndroidWebView(const ViewportArguments& arguments, IntSize viewSize, int layoutFallbackWidth, float deviceScaleFactor, bool useWideViewport, bool loadWithOverviewMode)
{
- float initialScale = m_pageDefinedConstraints.initialScale;
- if (arguments.zoom == -1 && !loadWithOverviewMode) {
- if (arguments.width == -1 || (useWideViewport && arguments.width != ViewportArguments::ValueDeviceWidth))
+ float zoom = m_pageDefinedConstraints.initialScale;
+ if (zoom < 0 && !loadWithOverviewMode) {
+ if (arguments.minWidth < 0 || useWideViewport)
m_pageDefinedConstraints.initialScale = 1.0f;
}
@@ -134,17 +134,24 @@ void PageScaleConstraintsSet::adjustPageDefinedConstraintsForAndroidWebView(cons
m_pageDefinedConstraints.maximumScale *= targetDensityDPIFactor;
float adjustedLayoutSizeWidth = m_pageDefinedConstraints.layoutSize.width();
- if (useWideViewport && arguments.width == -1 && arguments.zoom != 1.0f)
+
+ if (!useWideViewport)
+ adjustedLayoutSizeWidth = getLayoutWidthForNonWideViewport(viewSize, zoom);
+
+ adjustedLayoutSizeWidth /= targetDensityDPIFactor;
+
+ // FIXME: Why this particular Android behavior?
rune 2013/08/22 15:43:38 I've tried to take your CL and build it here local
rune 2013/08/26 21:32:24 After reading [1] and [2] it starts to be clearer
+ //
+ // <meta name="viewport" content="initial-scale=2.0"> translates into:
+ // @viewport { zoom: 2.0; width: extend-to-zoom; } according to the spec.
+ //
+ // But Android seems to convert the width into 'auto';
+ if (useWideViewport && arguments.maxWidth < 0 && arguments.zoom != 1.0f)
adjustedLayoutSizeWidth = layoutFallbackWidth;
- else {
- if (!useWideViewport)
- adjustedLayoutSizeWidth = getLayoutWidthForNonWideViewport(viewSize, initialScale);
- if (!useWideViewport || arguments.width == -1 || arguments.width == ViewportArguments::ValueDeviceWidth)
- adjustedLayoutSizeWidth /= targetDensityDPIFactor;
- }
ASSERT(m_pageDefinedConstraints.layoutSize.width() > 0);
float adjustedLayoutSizeHeight = (adjustedLayoutSizeWidth * m_pageDefinedConstraints.layoutSize.height()) / m_pageDefinedConstraints.layoutSize.width();
+
m_pageDefinedConstraints.layoutSize.setWidth(adjustedLayoutSizeWidth);
m_pageDefinedConstraints.layoutSize.setHeight(adjustedLayoutSizeHeight);
}
« no previous file with comments | « Source/core/page/PageScaleConstraintsSet.h ('k') | Source/core/page/UseCounter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698