Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "web/DevToolsEmulator.h" | 5 #include "web/DevToolsEmulator.h" |
| 6 | 6 |
| 7 #include "core/frame/FrameHost.h" | 7 #include "core/frame/FrameHost.h" |
| 8 #include "core/frame/FrameView.h" | 8 #include "core/frame/FrameView.h" |
| 9 #include "core/frame/Settings.h" | 9 #include "core/frame/Settings.h" |
| 10 #include "core/page/Page.h" | 10 #include "core/page/Page.h" |
| 11 #include "core/style/ComputedStyle.h" | |
| 11 #include "platform/RuntimeEnabledFeatures.h" | 12 #include "platform/RuntimeEnabledFeatures.h" |
| 12 #include "public/platform/WebLayerTreeView.h" | 13 #include "public/platform/WebLayerTreeView.h" |
| 13 #include "web/WebInputEventConversion.h" | 14 #include "web/WebInputEventConversion.h" |
| 14 #include "web/WebLocalFrameImpl.h" | 15 #include "web/WebLocalFrameImpl.h" |
| 15 #include "web/WebSettingsImpl.h" | 16 #include "web/WebSettingsImpl.h" |
| 16 #include "web/WebViewImpl.h" | 17 #include "web/WebViewImpl.h" |
| 17 | 18 |
| 18 namespace { | 19 namespace { |
| 19 | 20 |
| 20 static float calculateDeviceScaleAdjustment(int width, int height, float deviceS caleFactor) | 21 static float calculateDeviceScaleAdjustment(int width, int height, float deviceS caleFactor) |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 44 | 45 |
| 45 } // namespace | 46 } // namespace |
| 46 | 47 |
| 47 namespace blink { | 48 namespace blink { |
| 48 | 49 |
| 49 DevToolsEmulator::DevToolsEmulator(WebViewImpl* webViewImpl) | 50 DevToolsEmulator::DevToolsEmulator(WebViewImpl* webViewImpl) |
| 50 : m_webViewImpl(webViewImpl) | 51 : m_webViewImpl(webViewImpl) |
| 51 , m_deviceMetricsEnabled(false) | 52 , m_deviceMetricsEnabled(false) |
| 52 , m_emulateMobileEnabled(false) | 53 , m_emulateMobileEnabled(false) |
| 53 , m_isOverlayScrollbarsEnabled(false) | 54 , m_isOverlayScrollbarsEnabled(false) |
| 55 , m_isMobileLayoutThemeEnabled(false) | |
| 54 , m_originalDefaultMinimumPageScaleFactor(0) | 56 , m_originalDefaultMinimumPageScaleFactor(0) |
| 55 , m_originalDefaultMaximumPageScaleFactor(0) | 57 , m_originalDefaultMaximumPageScaleFactor(0) |
| 56 , m_embedderTextAutosizingEnabled(webViewImpl->page()->settings().textAutosi zingEnabled()) | 58 , m_embedderTextAutosizingEnabled(webViewImpl->page()->settings().textAutosi zingEnabled()) |
| 57 , m_embedderDeviceScaleAdjustment(webViewImpl->page()->settings().deviceScal eAdjustment()) | 59 , m_embedderDeviceScaleAdjustment(webViewImpl->page()->settings().deviceScal eAdjustment()) |
| 58 , m_embedderPreferCompositingToLCDTextEnabled(webViewImpl->page()->settings( ).preferCompositingToLCDTextEnabled()) | 60 , m_embedderPreferCompositingToLCDTextEnabled(webViewImpl->page()->settings( ).preferCompositingToLCDTextEnabled()) |
| 59 , m_embedderUseMobileViewport(webViewImpl->page()->settings().useMobileViewp ortStyle()) | 61 , m_embedderUseMobileViewport(webViewImpl->page()->settings().useMobileViewp ortStyle()) |
| 60 , m_embedderPluginsEnabled(webViewImpl->page()->settings().pluginsEnabled()) | 62 , m_embedderPluginsEnabled(webViewImpl->page()->settings().pluginsEnabled()) |
| 61 , m_embedderAvailablePointerTypes(webViewImpl->page()->settings().availableP ointerTypes()) | 63 , m_embedderAvailablePointerTypes(webViewImpl->page()->settings().availableP ointerTypes()) |
| 62 , m_embedderPrimaryPointerType(webViewImpl->page()->settings().primaryPointe rType()) | 64 , m_embedderPrimaryPointerType(webViewImpl->page()->settings().primaryPointe rType()) |
| 63 , m_embedderAvailableHoverTypes(webViewImpl->page()->settings().availableHov erTypes()) | 65 , m_embedderAvailableHoverTypes(webViewImpl->page()->settings().availableHov erTypes()) |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 248 return m_deviceMetricsEnabled && m_emulateMobileEnabled; | 250 return m_deviceMetricsEnabled && m_emulateMobileEnabled; |
| 249 } | 251 } |
| 250 | 252 |
| 251 void DevToolsEmulator::enableMobileEmulation() | 253 void DevToolsEmulator::enableMobileEmulation() |
| 252 { | 254 { |
| 253 if (m_emulateMobileEnabled) | 255 if (m_emulateMobileEnabled) |
| 254 return; | 256 return; |
| 255 m_emulateMobileEnabled = true; | 257 m_emulateMobileEnabled = true; |
| 256 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab led(); | 258 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab led(); |
| 257 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); | 259 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); |
| 260 m_isMobileLayoutThemeEnabled = RuntimeEnabledFeatures::mobileLayoutThemeEnab led(); | |
| 261 RuntimeEnabledFeatures::setMobileLayoutThemeEnabled(true); | |
|
dgozman
2016/02/11 18:53:44
I was thinking about testing this, but didn't come
| |
| 262 ComputedStyle::clearInitialStyle(); | |
| 258 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); | 263 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); |
| 259 m_webViewImpl->enableViewport(); | 264 m_webViewImpl->enableViewport(); |
| 260 m_webViewImpl->settings()->setViewportMetaEnabled(true); | 265 m_webViewImpl->settings()->setViewportMetaEnabled(true); |
| 261 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 266 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); |
| 262 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); | 267 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); |
| 263 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); | 268 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); |
| 264 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true) ; | 269 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true) ; |
| 265 m_webViewImpl->page()->settings().setPluginsEnabled(false); | 270 m_webViewImpl->page()->settings().setPluginsEnabled(false); |
| 266 m_webViewImpl->page()->settings().setAvailablePointerTypes(PointerTypeCoarse ); | 271 m_webViewImpl->page()->settings().setAvailablePointerTypes(PointerTypeCoarse ); |
| 267 m_webViewImpl->page()->settings().setPrimaryPointerType(PointerTypeCoarse); | 272 m_webViewImpl->page()->settings().setPrimaryPointerType(PointerTypeCoarse); |
| 268 m_webViewImpl->page()->settings().setAvailableHoverTypes(HoverTypeOnDemand); | 273 m_webViewImpl->page()->settings().setAvailableHoverTypes(HoverTypeOnDemand); |
| 269 m_webViewImpl->page()->settings().setPrimaryHoverType(HoverTypeOnDemand); | 274 m_webViewImpl->page()->settings().setPrimaryHoverType(HoverTypeOnDemand); |
| 270 m_webViewImpl->page()->settings().setResizeIsDeviceSizeChange(true); | 275 m_webViewImpl->page()->settings().setResizeIsDeviceSizeChange(true); |
| 271 m_webViewImpl->setZoomFactorOverride(1); | 276 m_webViewImpl->setZoomFactorOverride(1); |
| 272 | 277 |
| 273 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS caleFactor(); | 278 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS caleFactor(); |
| 274 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS caleFactor(); | 279 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS caleFactor(); |
| 275 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); | 280 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); |
| 276 // TODO(dgozman): mainFrameImpl() is null when it's remote. Figure out how | 281 // TODO(dgozman): mainFrameImpl() is null when it's remote. Figure out how |
| 277 // we end up with enabling emulation in this case. | 282 // we end up with enabling emulation in this case. |
| 278 if (m_webViewImpl->mainFrameImpl()) | 283 if (m_webViewImpl->mainFrameImpl()) |
| 279 m_webViewImpl->mainFrameImpl()->frameView()->layout(); | 284 m_webViewImpl->mainFrameImpl()->frameView()->layout(); |
| 280 } | 285 } |
| 281 | 286 |
| 282 void DevToolsEmulator::disableMobileEmulation() | 287 void DevToolsEmulator::disableMobileEmulation() |
| 283 { | 288 { |
| 284 if (!m_emulateMobileEnabled) | 289 if (!m_emulateMobileEnabled) |
| 285 return; | 290 return; |
| 286 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna bled); | 291 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna bled); |
| 292 RuntimeEnabledFeatures::setMobileLayoutThemeEnabled(m_isMobileLayoutThemeEna bled); | |
| 293 ComputedStyle::clearInitialStyle(); | |
| 287 m_webViewImpl->disableViewport(); | 294 m_webViewImpl->disableViewport(); |
| 288 m_webViewImpl->settings()->setViewportMetaEnabled(false); | 295 m_webViewImpl->settings()->setViewportMetaEnabled(false); |
| 289 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 296 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); |
| 290 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); | 297 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); |
| 291 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut osizingEnabled); | 298 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut osizingEnabled); |
| 292 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb edderPreferCompositingToLCDTextEnabled); | 299 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb edderPreferCompositingToLCDTextEnabled); |
| 293 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob ileViewport); | 300 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob ileViewport); |
| 294 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled ); | 301 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled ); |
| 295 m_webViewImpl->page()->settings().setAvailablePointerTypes(m_embedderAvailab lePointerTypes); | 302 m_webViewImpl->page()->settings().setAvailablePointerTypes(m_embedderAvailab lePointerTypes); |
| 296 m_webViewImpl->page()->settings().setPrimaryPointerType(m_embedderPrimaryPoi nterType); | 303 m_webViewImpl->page()->settings().setPrimaryPointerType(m_embedderPrimaryPoi nterType); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 370 m_lastPinchAnchorCss.clear(); | 377 m_lastPinchAnchorCss.clear(); |
| 371 m_lastPinchAnchorDip.clear(); | 378 m_lastPinchAnchorDip.clear(); |
| 372 } | 379 } |
| 373 return true; | 380 return true; |
| 374 } | 381 } |
| 375 | 382 |
| 376 return false; | 383 return false; |
| 377 } | 384 } |
| 378 | 385 |
| 379 } // namespace blink | 386 } // namespace blink |
| OLD | NEW |