OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |