Changeset 139177 in webkit
- Timestamp:
- Jan 9, 2013 1:37:34 AM (11 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r139165 r139177 1 2013-01-08 Mikhail Naganov <mnaganov@chromium.org> 2 3 [Chromium] When viewport is disabled, use display width in DIP pixels for the fallback width 4 https://bugs.webkit.org/show_bug.cgi?id=106021 5 6 This is to emulate 'UseWideViewport' setting of Android WebView properly. 7 'UseWideViewport' now corresponds to the 'viewportEnabled' setting. 8 When the value is false, "meta viewport" tag is ignored, and when calculating 9 layout width, display width in DIP pixels is used. 10 11 Reviewed by Adam Barth. 12 13 * src/ChromeClientImpl.cpp: 14 (WebKit::ChromeClientImpl::dispatchViewportPropertiesDidChange): 15 * src/WebViewImpl.cpp: 16 (WebKit::WebViewImpl::resize): 17 (WebKit::WebViewImpl::dipSize): 18 (WebKit): 19 * src/WebViewImpl.h: 20 (WebCore): 21 (WebViewImpl): 22 1 23 2013-01-08 Chris Rogers <crogers@google.com> 2 24 -
trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp
r139078 r139177 621 621 { 622 622 #if ENABLE(VIEWPORT) 623 if (!m_webView-> settings()->viewportEnabled() || !m_webView->isFixedLayoutModeEnabled() || !m_webView->client() || !m_webView->page())623 if (!m_webView->isFixedLayoutModeEnabled() || !m_webView->client() || !m_webView->page()) 624 624 return; 625 625 … … 630 630 return; 631 631 632 Settings* settings = m_webView->page()->settings(); 632 int viewportWidthInDIPs = m_webView->dipSize().width(); 633 ViewportArguments effectiveViewportArguments; 634 int effectiveFallbackWidth; 635 if (m_webView->settings()->viewportEnabled()) { 636 effectiveViewportArguments = arguments; 637 effectiveFallbackWidth = std::max(m_webView->page()->settings()->layoutFallbackWidth(), viewportWidthInDIPs); 638 } else { 639 // This is for Android WebView to use layout width in device-independent pixels. 640 // Once WebViewImpl on Android will start using DIP pixels size, 641 // dispatchViewportPropertiesDidChange can bail out when viewport is disabled. 642 effectiveViewportArguments = ViewportArguments(); 643 effectiveFallbackWidth = viewportWidthInDIPs; 644 } 633 645 float devicePixelRatio = client->screenInfo().deviceScaleFactor; 634 646 // Call the common viewport computing logic in ViewportArguments.cpp. 635 647 ViewportAttributes computed = computeViewportAttributes( 636 arguments, settings->layoutFallbackWidth(), deviceSize.width, deviceSize.height,648 effectiveViewportArguments, effectiveFallbackWidth, deviceSize.width, deviceSize.height, 637 649 devicePixelRatio, IntSize(deviceSize.width, deviceSize.height)); 638 650 -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r139139 r139177 1587 1587 1588 1588 #if ENABLE(VIEWPORT) 1589 if (settings()->viewportEnabled()) { 1590 // Fallback width is used to layout sites designed for desktop. The 1591 // conventional size used by all mobile browsers is 980. When a mobile 1592 // device has a particularly wide screen (such as a 10" tablet held in 1593 // landscape), it can be larger. 1594 const int standardFallbackWidth = 980; 1595 int dpiIndependentViewportWidth = newSize.width / page()->deviceScaleFactor(); 1596 settings()->setLayoutFallbackWidth(std::max(standardFallbackWidth, dpiIndependentViewportWidth)); 1597 1598 ViewportArguments viewportArguments = mainFrameImpl()->frame()->document()->viewportArguments(); 1599 m_page->chrome()->client()->dispatchViewportPropertiesDidChange(viewportArguments); 1600 } 1589 ViewportArguments viewportArguments = mainFrameImpl()->frame()->document()->viewportArguments(); 1590 m_page->chrome()->client()->dispatchViewportPropertiesDidChange(viewportArguments); 1601 1591 #endif 1602 1592 … … 3137 3127 } 3138 3128 3129 WebCore::FloatSize WebViewImpl::dipSize() const 3130 { 3131 if (!page() || m_webSettings->applyDeviceScaleFactorInCompositor()) 3132 return FloatSize(m_size.width, m_size.height); 3133 3134 float deviceScaleFactor = page()->deviceScaleFactor(); 3135 return FloatSize(m_size.width / deviceScaleFactor, m_size.height / deviceScaleFactor); 3136 } 3137 3139 3138 void WebViewImpl::performMediaPlayerAction(const WebMediaPlayerAction& action, 3140 3139 const WebPoint& location) -
trunk/Source/WebKit/chromium/src/WebViewImpl.h
r139139 r139177 36 36 #include "DragClientImpl.h" 37 37 #include "EditorClientImpl.h" 38 #include "FloatSize.h" 38 39 #include "GraphicsContext3D.h" 39 40 #include "GraphicsLayer.h" … … 65 66 class Color; 66 67 class DocumentLoader; 68 class FloatSize; 67 69 class Frame; 68 70 class GraphicsContext3D; … … 239 241 virtual WebSize fixedLayoutSize() const; 240 242 virtual void setFixedLayoutSize(const WebSize&); 243 virtual WebCore::FloatSize dipSize() const; 241 244 virtual void enableAutoResizeMode( 242 245 const WebSize& minSize,
Note: See TracChangeset
for help on using the changeset viewer.