| Index: Source/web/WebViewImpl.cpp
|
| diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
|
| index 9bbc57e15937f157cf554080c4cbd57548f8581a..498523222b01d559edf73fea25c7e93424f8a240 100644
|
| --- a/Source/web/WebViewImpl.cpp
|
| +++ b/Source/web/WebViewImpl.cpp
|
| @@ -2833,10 +2833,14 @@ void WebViewImpl::updatePageDefinedViewportConstraints(const ViewportDescription
|
| if (!settings()->viewportEnabled() || !page() || (!m_size.width && !m_size.height))
|
| return;
|
|
|
| + Document* document = page()->mainFrame()->document();
|
| +
|
| + Length defaultMinWidth = document->viewportDefaultMinWidth();
|
| + if (defaultMinWidth.isAuto())
|
| + defaultMinWidth = Length(ExtendToZoom);
|
| +
|
| ViewportDescription adjustedDescription = description;
|
| if (settingsImpl()->viewportMetaLayoutSizeQuirk() && adjustedDescription.type == ViewportDescription::ViewportMeta) {
|
| - if (adjustedDescription.maxWidth.type() == ExtendToZoom)
|
| - adjustedDescription.maxWidth = Length(); // auto
|
| const int legacyWidthSnappingMagicNumber = 320;
|
| if (adjustedDescription.maxWidth.isFixed() && adjustedDescription.maxWidth.value() <= legacyWidthSnappingMagicNumber)
|
| adjustedDescription.maxWidth = Length(DeviceWidth);
|
| @@ -2845,17 +2849,19 @@ void WebViewImpl::updatePageDefinedViewportConstraints(const ViewportDescription
|
| adjustedDescription.minWidth = adjustedDescription.maxWidth;
|
| adjustedDescription.minHeight = adjustedDescription.maxHeight;
|
| }
|
| +
|
| float oldInitialScale = m_pageScaleConstraintsSet.pageDefinedConstraints().initialScale;
|
| - m_pageScaleConstraintsSet.updatePageDefinedConstraints(adjustedDescription, m_size);
|
| + m_pageScaleConstraintsSet.updatePageDefinedConstraints(adjustedDescription, m_size, defaultMinWidth);
|
|
|
| if (settingsImpl()->clobberUserAgentInitialScaleQuirk()
|
| && m_pageScaleConstraintsSet.userAgentConstraints().initialScale != -1
|
| && m_pageScaleConstraintsSet.userAgentConstraints().initialScale * deviceScaleFactor() <= 1) {
|
| if (description.maxWidth == Length(DeviceWidth)
|
| - || (description.maxWidth.type() == ExtendToZoom && m_pageScaleConstraintsSet.pageDefinedConstraints().initialScale == 1.0f))
|
| + || (description.maxWidth.type() == Auto && m_pageScaleConstraintsSet.pageDefinedConstraints().initialScale == 1.0f))
|
| setInitialPageScaleOverride(-1);
|
| }
|
| - m_pageScaleConstraintsSet.adjustForAndroidWebViewQuirks(adjustedDescription, m_size, page()->settings().layoutFallbackWidth(), deviceScaleFactor(), settingsImpl()->supportDeprecatedTargetDensityDPI(), page()->settings().wideViewportQuirkEnabled(), page()->settings().useWideViewport(), page()->settings().loadWithOverviewMode(), settingsImpl()->viewportMetaNonUserScalableQuirk());
|
| +
|
| + m_pageScaleConstraintsSet.adjustForAndroidWebViewQuirks(adjustedDescription, m_size, defaultMinWidth.intValue(), deviceScaleFactor(), settingsImpl()->supportDeprecatedTargetDensityDPI(), page()->settings().wideViewportQuirkEnabled(), page()->settings().useWideViewport(), page()->settings().loadWithOverviewMode(), settingsImpl()->viewportMetaNonUserScalableQuirk());
|
| float newInitialScale = m_pageScaleConstraintsSet.pageDefinedConstraints().initialScale;
|
| if (oldInitialScale != newInitialScale && newInitialScale != -1) {
|
| m_pageScaleConstraintsSet.setNeedsReset(true);
|
|
|