Changeset 184681 in webkit
- Timestamp:
- May 20, 2015 5:52:33 PM (9 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r184676 r184681 1 2015-05-20 Enrica Casucci <enrica@apple.com> 2 3 [iOS] Using CSS viewport units causes incorrect layout. 4 https://bugs.webkit.org/show_bug.cgi?id=145225 5 rdar://problem/20924495 6 7 Reviewed by Benjamin Poulain. 8 9 * page/ViewportConfiguration.cpp: 10 (WebCore::ViewportConfiguration::initialScaleFromSize): 11 (WebCore::ViewportConfiguration::initialScale): 12 (WebCore::ViewportConfiguration::initialScaleIgnoringContentSize): 13 * page/ViewportConfiguration.h: 14 (WebCore::ViewportConfiguration::initialScaleFromSize): 15 (WebCore::ViewportConfiguration::initialScaleIgnoringContentSize): 16 1 17 2015-05-20 Chris Fleizach <cfleizach@apple.com> 2 18 -
trunk/Source/WebCore/page/ViewportConfiguration.cpp
r184654 r184681 137 137 } 138 138 139 double ViewportConfiguration::initialScale () const139 double ViewportConfiguration::initialScaleFromSize(double width, double height, bool shouldIgnoreScalingConstraints) const 140 140 { 141 141 ASSERT(!constraintsAreAllRelative(m_configuration)); … … 143 143 // If the document has specified its own initial scale, use it regardless. 144 144 // This is guaranteed to be sanity checked already, so no need for MIN/MAX. 145 if (m_configuration.initialScaleIsSet && !shouldIgnoreScalingConstraints ())145 if (m_configuration.initialScaleIsSet && !shouldIgnoreScalingConstraints) 146 146 return m_configuration.initialScale; 147 147 … … 149 149 // We want a scale small enough to fit the document width-wise. 150 150 const FloatSize& minimumLayoutSize = m_minimumLayoutSize; 151 double width = m_contentSize.width() > 0 ? m_contentSize.width() : layoutWidth();152 151 double initialScale = 0; 153 152 if (width > 0 && !shouldIgnoreVerticalScalingConstraints()) … … 155 154 156 155 // Prevent the initial scale from shrinking to a height smaller than our view's minimum height. 157 double height = m_contentSize.height() > 0 ? m_contentSize.height() : layoutHeight();158 156 if (height > 0 && height * initialScale < minimumLayoutSize.height() && !shouldIgnoreHorizontalScalingConstraints()) 159 157 initialScale = minimumLayoutSize.height() / height; 160 return std::min(std::max(initialScale, shouldIgnoreScalingConstraints() ? m_defaultConfiguration.minimumScale : m_configuration.minimumScale), m_configuration.maximumScale); 158 return std::min(std::max(initialScale, shouldIgnoreScalingConstraints ? m_defaultConfiguration.minimumScale : m_configuration.minimumScale), m_configuration.maximumScale); 159 } 160 161 double ViewportConfiguration::initialScale() const 162 { 163 return initialScaleFromSize(m_contentSize.width() > 0 ? m_contentSize.width() : layoutWidth(), m_contentSize.height() > 0 ? m_contentSize.height() : layoutHeight(), shouldIgnoreScalingConstraints()); 164 } 165 166 double ViewportConfiguration::initialScaleIgnoringContentSize() const 167 { 168 return initialScaleFromSize(layoutWidth(), layoutHeight(), false); 161 169 } 162 170 -
trunk/Source/WebCore/page/ViewportConfiguration.h
r184654 r184681 85 85 WEBCORE_EXPORT IntSize layoutSize() const; 86 86 WEBCORE_EXPORT double initialScale() const; 87 WEBCORE_EXPORT double initialScaleIgnoringContentSize() const; 87 88 WEBCORE_EXPORT double minimumScale() const; 88 89 double maximumScale() const { return m_configuration.maximumScale; } … … 104 105 void updateConfiguration(); 105 106 double viewportArgumentsLength(double length) const; 107 double initialScaleFromSize(double width, double height, bool shouldIgnoreScalingConstraints) const; 106 108 int layoutWidth() const; 107 109 int layoutHeight() const; -
trunk/Source/WebKit2/ChangeLog
r184679 r184681 1 2015-05-20 Enrica Casucci <enrica@apple.com> 2 3 [iOS] Using CSS viewport units causes incorrect layout. 4 https://bugs.webkit.org/show_bug.cgi?id=145225 5 rdar://problem/20924495 6 7 Reviewed by Benjamin Poulain. 8 9 * WebProcess/WebPage/ios/WebPageIOS.mm: 10 (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): 11 1 12 2015-05-20 Tim Horton <timothy_horton@apple.com> 2 13 -
trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm
r183909 r184681 2711 2711 2712 2712 FrameView& frameView = *mainFrameView(); 2713 largestUnobscuredRect.scale(1 / m_viewportConfiguration.initialScale ());2713 largestUnobscuredRect.scale(1 / m_viewportConfiguration.initialScaleIgnoringContentSize()); 2714 2714 frameView.setViewportSizeForCSSViewportUnits(roundedIntSize(largestUnobscuredRect)); 2715 2715 }
Note: See TracChangeset
for help on using the changeset viewer.