diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/dom/ViewportDescription.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/dom/ViewportDescription.h | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/chromium/third_party/WebKit/Source/core/dom/ViewportDescription.h b/chromium/third_party/WebKit/Source/core/dom/ViewportDescription.h index 53eed2688f5..c5e22de890b 100644 --- a/chromium/third_party/WebKit/Source/core/dom/ViewportDescription.h +++ b/chromium/third_party/WebKit/Source/core/dom/ViewportDescription.h @@ -34,6 +34,9 @@ namespace WebCore { +class KURL; +class LocalFrame; + struct ViewportDescription { enum Type { @@ -63,14 +66,18 @@ struct ViewportDescription { , zoom(ValueAuto) , minZoom(ValueAuto) , maxZoom(ValueAuto) - , userZoom(ValueAuto) + , userZoom(true) , orientation(ValueAuto) , deprecatedTargetDensityDPI(ValueAuto) + , zoomIsExplicit(false) + , minZoomIsExplicit(false) + , maxZoomIsExplicit(false) + , userZoomIsExplicit(false) { } // All arguments are in CSS units. - PageScaleConstraints resolve(const FloatSize& initialViewportSize) const; + PageScaleConstraints resolve(const FloatSize& initialViewportSize, Length legacyFallbackWidth) const; Length minWidth; Length maxWidth; @@ -79,10 +86,17 @@ struct ViewportDescription { float zoom; float minZoom; float maxZoom; - float userZoom; + bool userZoom; float orientation; float deprecatedTargetDensityDPI; // Only used for Android WebView + // Whether the computed value was explicitly specified rather than being + // inferred. + bool zoomIsExplicit; + bool minZoomIsExplicit; + bool maxZoomIsExplicit; + bool userZoomIsExplicit; + bool operator==(const ViewportDescription& other) const { // Used for figuring out whether to reset the viewport or not, @@ -96,7 +110,11 @@ struct ViewportDescription { && maxZoom == other.maxZoom && userZoom == other.userZoom && orientation == other.orientation - && deprecatedTargetDensityDPI == other.deprecatedTargetDensityDPI; + && deprecatedTargetDensityDPI == other.deprecatedTargetDensityDPI + && zoomIsExplicit == other.zoomIsExplicit + && minZoomIsExplicit == other.minZoomIsExplicit + && maxZoomIsExplicit == other.maxZoomIsExplicit + && userZoomIsExplicit == other.userZoomIsExplicit; } bool operator!=(const ViewportDescription& other) const @@ -108,6 +126,10 @@ struct ViewportDescription { bool isMetaViewportType() const { return type == ViewportMeta; } bool isSpecifiedByAuthor() const { return type != UserAgentStyleSheet; } + // Reports UMA stat on whether the page is considered mobile or desktop and what kind of + // mobile it is. Applies only to Android, must only be called once per page load. + void reportMobilePageStats(const LocalFrame*) const; + private: enum Direction { Horizontal, Vertical }; static float resolveViewportLength(const Length&, const FloatSize& initialViewportSize, Direction); |