Index: third_party/WebKit/Source/web/WebViewImpl.cpp |
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp |
index 6bdb139501906ac31f7a596d3822d692cc97bea6..2c3d6565405f5cfa435ec579bdc4fb41e6ee0d57 100644 |
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp |
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp |
@@ -410,7 +410,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) |
, m_zoomLevel(0) |
, m_minimumZoomLevel(zoomFactorToZoomLevel(minTextSizeMultiplier)) |
, m_maximumZoomLevel(zoomFactorToZoomLevel(maxTextSizeMultiplier)) |
- , m_zoomFactorForDeviceScaleFactor(1.f) |
+ , m_zoomFactorForDeviceScaleFactor(0.f) |
, m_maximumLegibleScale(1) |
, m_doubleTapZoomPageScaleFactor(0) |
, m_doubleTapZoomPending(false) |
@@ -3055,7 +3055,15 @@ double WebViewImpl::setZoomLevel(double zoomLevel) |
LocalFrame* frame = mainFrameImpl()->frame(); |
if (!WebLocalFrameImpl::pluginContainerFromFrame(frame)) { |
float zoomFactor = m_zoomFactorOverride ? m_zoomFactorOverride : static_cast<float>(zoomLevelToZoomFactor(m_zoomLevel)); |
- zoomFactor *= m_zoomFactorForDeviceScaleFactor; |
+ if (m_zoomFactorForDeviceScaleFactor) { |
+ if (m_compositorDeviceScaleFactorOverride) { |
dgozman
2016/03/02 01:19:56
style: 4 spaces in blink
oshima
2016/03/02 03:15:07
Done.
|
+ page()->setDeviceScaleFactor(m_zoomFactorForDeviceScaleFactor / m_compositorDeviceScaleFactorOverride); |
dgozman
2016/03/02 01:19:56
This is surprising. I thought in new mode device_s
oshima
2016/03/02 03:15:07
DPR (Device Pixel Ratio), which emulator sets, is
|
+ zoomFactor *= m_compositorDeviceScaleFactorOverride; |
+ } else { |
+ page()->setDeviceScaleFactor(1.f); |
+ zoomFactor *= m_zoomFactorForDeviceScaleFactor; |
+ } |
+ } |
frame->setPageZoomFactor(zoomFactor); |
} |
@@ -3772,6 +3780,10 @@ void WebViewImpl::setCompositorDeviceScaleFactorOverride(float deviceScaleFactor |
if (m_compositorDeviceScaleFactorOverride == deviceScaleFactor) |
return; |
m_compositorDeviceScaleFactorOverride = deviceScaleFactor; |
+ if (m_zoomFactorForDeviceScaleFactor) { |
+ setZoomLevel(zoomLevel()); |
+ return; |
+ } |
if (page() && m_layerTreeView) |
updateLayerTreeDeviceScaleFactor(); |
} |