| 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/frame/VisualViewport.h" | 10 #include "core/frame/VisualViewport.h" |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 m_isOrientationEventEnabled = | 270 m_isOrientationEventEnabled = |
| 271 RuntimeEnabledFeatures::orientationEventEnabled(); | 271 RuntimeEnabledFeatures::orientationEventEnabled(); |
| 272 RuntimeEnabledFeatures::setOrientationEventEnabled(true); | 272 RuntimeEnabledFeatures::setOrientationEventEnabled(true); |
| 273 m_isMobileLayoutThemeEnabled = | 273 m_isMobileLayoutThemeEnabled = |
| 274 RuntimeEnabledFeatures::mobileLayoutThemeEnabled(); | 274 RuntimeEnabledFeatures::mobileLayoutThemeEnabled(); |
| 275 RuntimeEnabledFeatures::setMobileLayoutThemeEnabled(true); | 275 RuntimeEnabledFeatures::setMobileLayoutThemeEnabled(true); |
| 276 ComputedStyle::invalidateInitialStyle(); | 276 ComputedStyle::invalidateInitialStyle(); |
| 277 m_webViewImpl->page()->settings().setViewportStyle(WebViewportStyle::Mobile); | 277 m_webViewImpl->page()->settings().setViewportStyle(WebViewportStyle::Mobile); |
| 278 m_webViewImpl->page()->settings().setViewportEnabled(true); | 278 m_webViewImpl->page()->settings().setViewportEnabled(true); |
| 279 m_webViewImpl->page()->settings().setViewportMetaEnabled(true); | 279 m_webViewImpl->page()->settings().setViewportMetaEnabled(true); |
| 280 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 280 m_webViewImpl->page()->visualViewport().initializeScrollbars(); |
| 281 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); | 281 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); |
| 282 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); | 282 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); |
| 283 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true); | 283 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true); |
| 284 m_webViewImpl->page()->settings().setPluginsEnabled(false); | 284 m_webViewImpl->page()->settings().setPluginsEnabled(false); |
| 285 m_webViewImpl->page()->settings().setAvailablePointerTypes(PointerTypeCoarse); | 285 m_webViewImpl->page()->settings().setAvailablePointerTypes(PointerTypeCoarse); |
| 286 m_webViewImpl->page()->settings().setPrimaryPointerType(PointerTypeCoarse); | 286 m_webViewImpl->page()->settings().setPrimaryPointerType(PointerTypeCoarse); |
| 287 m_webViewImpl->page()->settings().setAvailableHoverTypes(HoverTypeOnDemand); | 287 m_webViewImpl->page()->settings().setAvailableHoverTypes(HoverTypeOnDemand); |
| 288 m_webViewImpl->page()->settings().setPrimaryHoverType(HoverTypeOnDemand); | 288 m_webViewImpl->page()->settings().setPrimaryHoverType(HoverTypeOnDemand); |
| 289 m_webViewImpl->page()->settings().setMainFrameResizesAreOrientationChanges( | 289 m_webViewImpl->page()->settings().setMainFrameResizesAreOrientationChanges( |
| 290 true); | 290 true); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 306 return; | 306 return; |
| 307 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled( | 307 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled( |
| 308 m_isOverlayScrollbarsEnabled); | 308 m_isOverlayScrollbarsEnabled); |
| 309 RuntimeEnabledFeatures::setOrientationEventEnabled( | 309 RuntimeEnabledFeatures::setOrientationEventEnabled( |
| 310 m_isOrientationEventEnabled); | 310 m_isOrientationEventEnabled); |
| 311 RuntimeEnabledFeatures::setMobileLayoutThemeEnabled( | 311 RuntimeEnabledFeatures::setMobileLayoutThemeEnabled( |
| 312 m_isMobileLayoutThemeEnabled); | 312 m_isMobileLayoutThemeEnabled); |
| 313 ComputedStyle::invalidateInitialStyle(); | 313 ComputedStyle::invalidateInitialStyle(); |
| 314 m_webViewImpl->page()->settings().setViewportEnabled(false); | 314 m_webViewImpl->page()->settings().setViewportEnabled(false); |
| 315 m_webViewImpl->page()->settings().setViewportMetaEnabled(false); | 315 m_webViewImpl->page()->settings().setViewportMetaEnabled(false); |
| 316 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 316 m_webViewImpl->page()->visualViewport().initializeScrollbars(); |
| 317 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); | 317 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); |
| 318 m_webViewImpl->page()->settings().setTextAutosizingEnabled( | 318 m_webViewImpl->page()->settings().setTextAutosizingEnabled( |
| 319 m_embedderTextAutosizingEnabled); | 319 m_embedderTextAutosizingEnabled); |
| 320 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled( | 320 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled( |
| 321 m_embedderPreferCompositingToLCDTextEnabled); | 321 m_embedderPreferCompositingToLCDTextEnabled); |
| 322 m_webViewImpl->page()->settings().setViewportStyle(m_embedderViewportStyle); | 322 m_webViewImpl->page()->settings().setViewportStyle(m_embedderViewportStyle); |
| 323 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled); | 323 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled); |
| 324 m_webViewImpl->page()->settings().setAvailablePointerTypes( | 324 m_webViewImpl->page()->settings().setAvailablePointerTypes( |
| 325 m_embedderAvailablePointerTypes); | 325 m_embedderAvailablePointerTypes); |
| 326 m_webViewImpl->page()->settings().setPrimaryPointerType( | 326 m_webViewImpl->page()->settings().setPrimaryPointerType( |
| (...skipping 16 matching lines...) Expand all Loading... |
| 343 | 343 |
| 344 float DevToolsEmulator::compositorDeviceScaleFactor() const { | 344 float DevToolsEmulator::compositorDeviceScaleFactor() const { |
| 345 if (m_deviceMetricsEnabled) | 345 if (m_deviceMetricsEnabled) |
| 346 return m_emulationParams.deviceScaleFactor; | 346 return m_emulationParams.deviceScaleFactor; |
| 347 return m_webViewImpl->page()->deviceScaleFactorDeprecated(); | 347 return m_webViewImpl->page()->deviceScaleFactorDeprecated(); |
| 348 } | 348 } |
| 349 | 349 |
| 350 void DevToolsEmulator::forceViewport(const WebFloatPoint& position, | 350 void DevToolsEmulator::forceViewport(const WebFloatPoint& position, |
| 351 float scale) { | 351 float scale) { |
| 352 GraphicsLayer* containerLayer = | 352 GraphicsLayer* containerLayer = |
| 353 m_webViewImpl->page()->frameHost().visualViewport().containerLayer(); | 353 m_webViewImpl->page()->visualViewport().containerLayer(); |
| 354 if (!m_viewportOverride) { | 354 if (!m_viewportOverride) { |
| 355 m_viewportOverride = ViewportOverride(); | 355 m_viewportOverride = ViewportOverride(); |
| 356 | 356 |
| 357 // Disable clipping on the visual viewport layer, to ensure the whole area | 357 // Disable clipping on the visual viewport layer, to ensure the whole area |
| 358 // is painted. | 358 // is painted. |
| 359 if (containerLayer) { | 359 if (containerLayer) { |
| 360 m_viewportOverride->originalVisualViewportMasking = | 360 m_viewportOverride->originalVisualViewportMasking = |
| 361 containerLayer->masksToBounds(); | 361 containerLayer->masksToBounds(); |
| 362 containerLayer->setMasksToBounds(false); | 362 containerLayer->setMasksToBounds(false); |
| 363 } | 363 } |
| 364 } | 364 } |
| 365 | 365 |
| 366 m_viewportOverride->position = position; | 366 m_viewportOverride->position = position; |
| 367 m_viewportOverride->scale = scale; | 367 m_viewportOverride->scale = scale; |
| 368 | 368 |
| 369 // Move the correct (scaled) content area to show in the top left of the | 369 // Move the correct (scaled) content area to show in the top left of the |
| 370 // CompositorFrame via the root transform. | 370 // CompositorFrame via the root transform. |
| 371 updateRootLayerTransform(); | 371 updateRootLayerTransform(); |
| 372 } | 372 } |
| 373 | 373 |
| 374 void DevToolsEmulator::resetViewport() { | 374 void DevToolsEmulator::resetViewport() { |
| 375 if (!m_viewportOverride) | 375 if (!m_viewportOverride) |
| 376 return; | 376 return; |
| 377 | 377 |
| 378 bool originalMasking = m_viewportOverride->originalVisualViewportMasking; | 378 bool originalMasking = m_viewportOverride->originalVisualViewportMasking; |
| 379 m_viewportOverride = WTF::nullopt; | 379 m_viewportOverride = WTF::nullopt; |
| 380 | 380 |
| 381 GraphicsLayer* containerLayer = | 381 GraphicsLayer* containerLayer = |
| 382 m_webViewImpl->page()->frameHost().visualViewport().containerLayer(); | 382 m_webViewImpl->page()->visualViewport().containerLayer(); |
| 383 if (containerLayer) | 383 if (containerLayer) |
| 384 containerLayer->setMasksToBounds(originalMasking); | 384 containerLayer->setMasksToBounds(originalMasking); |
| 385 updateRootLayerTransform(); | 385 updateRootLayerTransform(); |
| 386 } | 386 } |
| 387 | 387 |
| 388 void DevToolsEmulator::mainFrameScrollOrScaleChanged() { | 388 void DevToolsEmulator::mainFrameScrollOrScaleChanged() { |
| 389 // Viewport override has to take current page scale and scroll offset into | 389 // Viewport override has to take current page scale and scroll offset into |
| 390 // account. Update the transform if override is active. | 390 // account. Update the transform if override is active. |
| 391 if (m_viewportOverride) | 391 if (m_viewportOverride) |
| 392 updateRootLayerTransform(); | 392 updateRootLayerTransform(); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 531 m_lastPinchAnchorCss.reset(); | 531 m_lastPinchAnchorCss.reset(); |
| 532 m_lastPinchAnchorDip.reset(); | 532 m_lastPinchAnchorDip.reset(); |
| 533 } | 533 } |
| 534 return true; | 534 return true; |
| 535 } | 535 } |
| 536 | 536 |
| 537 return false; | 537 return false; |
| 538 } | 538 } |
| 539 | 539 |
| 540 } // namespace blink | 540 } // namespace blink |
| OLD | NEW |