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

Unified Diff: third_party/WebKit/Source/web/WebViewImpl.cpp

Issue 1737733002: [DevTools] Handle emulated device scale factor and original device scale factor properly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
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..306b1cfc5d5ed06c12f62ca9093fcb12846e2845 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) {
+ page()->setDeviceScaleFactor(m_zoomFactorForDeviceScaleFactor / m_compositorDeviceScaleFactorOverride);
+ zoomFactor *= m_compositorDeviceScaleFactorOverride;
+ } else {
+ page()->setDeviceScaleFactor(1.f);
+ zoomFactor *= m_zoomFactorForDeviceScaleFactor;
+ }
+ }
frame->setPageZoomFactor(zoomFactor);
}
@@ -3772,8 +3780,13 @@ void WebViewImpl::setCompositorDeviceScaleFactorOverride(float deviceScaleFactor
if (m_compositorDeviceScaleFactorOverride == deviceScaleFactor)
return;
m_compositorDeviceScaleFactorOverride = deviceScaleFactor;
- if (page() && m_layerTreeView)
+ if (page() && m_layerTreeView) {
+ if (m_zoomFactorForDeviceScaleFactor) {
+ setZoomLevel(zoomLevel());
+ return;
+ }
updateLayerTreeDeviceScaleFactor();
+ }
}
void WebViewImpl::setRootLayerTransform(const WebSize& rootLayerOffset, float rootLayerScale)

Powered by Google App Engine
This is Rietveld 408576698