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

Side by Side Diff: Source/web/WebViewImpl.cpp

Issue 219123002: Read the default min-width value from the UA style sheets (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/web/WebSettingsImpl.cpp ('k') | Source/web/tests/ViewportTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 2815 matching lines...) Expand 10 before | Expand all | Expand 10 after
2826 // isn't set at the end of a layout. 2826 // isn't set at the end of a layout.
2827 if (view->needsLayout()) 2827 if (view->needsLayout())
2828 view->layout(); 2828 view->layout();
2829 } 2829 }
2830 2830
2831 void WebViewImpl::updatePageDefinedViewportConstraints(const ViewportDescription & description) 2831 void WebViewImpl::updatePageDefinedViewportConstraints(const ViewportDescription & description)
2832 { 2832 {
2833 if (!settings()->viewportEnabled() || !page() || (!m_size.width && !m_size.h eight)) 2833 if (!settings()->viewportEnabled() || !page() || (!m_size.width && !m_size.h eight))
2834 return; 2834 return;
2835 2835
2836 Document* document = page()->mainFrame()->document();
2837
2838 Length defaultMinWidth = document->viewportDefaultMinWidth();
2839 if (defaultMinWidth.isAuto())
2840 defaultMinWidth = Length(ExtendToZoom);
2841
2836 ViewportDescription adjustedDescription = description; 2842 ViewportDescription adjustedDescription = description;
2837 if (settingsImpl()->viewportMetaLayoutSizeQuirk() && adjustedDescription.typ e == ViewportDescription::ViewportMeta) { 2843 if (settingsImpl()->viewportMetaLayoutSizeQuirk() && adjustedDescription.typ e == ViewportDescription::ViewportMeta) {
2838 if (adjustedDescription.maxWidth.type() == ExtendToZoom)
2839 adjustedDescription.maxWidth = Length(); // auto
2840 const int legacyWidthSnappingMagicNumber = 320; 2844 const int legacyWidthSnappingMagicNumber = 320;
2841 if (adjustedDescription.maxWidth.isFixed() && adjustedDescription.maxWid th.value() <= legacyWidthSnappingMagicNumber) 2845 if (adjustedDescription.maxWidth.isFixed() && adjustedDescription.maxWid th.value() <= legacyWidthSnappingMagicNumber)
2842 adjustedDescription.maxWidth = Length(DeviceWidth); 2846 adjustedDescription.maxWidth = Length(DeviceWidth);
2843 if (adjustedDescription.maxHeight.isFixed() && adjustedDescription.maxHe ight.value() <= m_size.height) 2847 if (adjustedDescription.maxHeight.isFixed() && adjustedDescription.maxHe ight.value() <= m_size.height)
2844 adjustedDescription.maxHeight = Length(DeviceHeight); 2848 adjustedDescription.maxHeight = Length(DeviceHeight);
2845 adjustedDescription.minWidth = adjustedDescription.maxWidth; 2849 adjustedDescription.minWidth = adjustedDescription.maxWidth;
2846 adjustedDescription.minHeight = adjustedDescription.maxHeight; 2850 adjustedDescription.minHeight = adjustedDescription.maxHeight;
2847 } 2851 }
2852
2848 float oldInitialScale = m_pageScaleConstraintsSet.pageDefinedConstraints().i nitialScale; 2853 float oldInitialScale = m_pageScaleConstraintsSet.pageDefinedConstraints().i nitialScale;
2849 m_pageScaleConstraintsSet.updatePageDefinedConstraints(adjustedDescription, m_size); 2854 m_pageScaleConstraintsSet.updatePageDefinedConstraints(adjustedDescription, m_size, defaultMinWidth);
2850 2855
2851 if (settingsImpl()->clobberUserAgentInitialScaleQuirk() 2856 if (settingsImpl()->clobberUserAgentInitialScaleQuirk()
2852 && m_pageScaleConstraintsSet.userAgentConstraints().initialScale != -1 2857 && m_pageScaleConstraintsSet.userAgentConstraints().initialScale != -1
2853 && m_pageScaleConstraintsSet.userAgentConstraints().initialScale * devic eScaleFactor() <= 1) { 2858 && m_pageScaleConstraintsSet.userAgentConstraints().initialScale * devic eScaleFactor() <= 1) {
2854 if (description.maxWidth == Length(DeviceWidth) 2859 if (description.maxWidth == Length(DeviceWidth)
2855 || (description.maxWidth.type() == ExtendToZoom && m_pageScaleConstr aintsSet.pageDefinedConstraints().initialScale == 1.0f)) 2860 || (description.maxWidth.type() == Auto && m_pageScaleConstraintsSet .pageDefinedConstraints().initialScale == 1.0f))
2856 setInitialPageScaleOverride(-1); 2861 setInitialPageScaleOverride(-1);
2857 } 2862 }
2858 m_pageScaleConstraintsSet.adjustForAndroidWebViewQuirks(adjustedDescription, m_size, page()->settings().layoutFallbackWidth(), deviceScaleFactor(), settings Impl()->supportDeprecatedTargetDensityDPI(), page()->settings().wideViewportQuir kEnabled(), page()->settings().useWideViewport(), page()->settings().loadWithOve rviewMode(), settingsImpl()->viewportMetaNonUserScalableQuirk()); 2863
2864 m_pageScaleConstraintsSet.adjustForAndroidWebViewQuirks(adjustedDescription, m_size, defaultMinWidth.intValue(), deviceScaleFactor(), settingsImpl()->suppor tDeprecatedTargetDensityDPI(), page()->settings().wideViewportQuirkEnabled(), pa ge()->settings().useWideViewport(), page()->settings().loadWithOverviewMode(), s ettingsImpl()->viewportMetaNonUserScalableQuirk());
2859 float newInitialScale = m_pageScaleConstraintsSet.pageDefinedConstraints().i nitialScale; 2865 float newInitialScale = m_pageScaleConstraintsSet.pageDefinedConstraints().i nitialScale;
2860 if (oldInitialScale != newInitialScale && newInitialScale != -1) { 2866 if (oldInitialScale != newInitialScale && newInitialScale != -1) {
2861 m_pageScaleConstraintsSet.setNeedsReset(true); 2867 m_pageScaleConstraintsSet.setNeedsReset(true);
2862 if (mainFrameImpl() && mainFrameImpl()->frameView()) 2868 if (mainFrameImpl() && mainFrameImpl()->frameView())
2863 mainFrameImpl()->frameView()->setNeedsLayout(); 2869 mainFrameImpl()->frameView()->setNeedsLayout();
2864 } 2870 }
2865 2871
2866 updateMainFrameLayoutSize(); 2872 updateMainFrameLayoutSize();
2867 } 2873 }
2868 2874
(...skipping 1134 matching lines...) Expand 10 before | Expand all | Expand 10 after
4003 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi nedConstraints(); 4009 const PageScaleConstraints& constraints = m_pageScaleConstraintsSet.pageDefi nedConstraints();
4004 4010
4005 if (!mainFrameImpl() || !mainFrameImpl()->frameView()) 4011 if (!mainFrameImpl() || !mainFrameImpl()->frameView())
4006 return false; 4012 return false;
4007 4013
4008 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width 4014 return mainFrameImpl()->frameView()->layoutSize().width() == m_size.width
4009 || (constraints.minimumScale == constraints.maximumScale && constraints. minimumScale != -1); 4015 || (constraints.minimumScale == constraints.maximumScale && constraints. minimumScale != -1);
4010 } 4016 }
4011 4017
4012 } // namespace blink 4018 } // namespace blink
OLDNEW
« no previous file with comments | « Source/web/WebSettingsImpl.cpp ('k') | Source/web/tests/ViewportTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698