| 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 "config.h" | 5 #include "config.h" |
| 6 #include "web/DevToolsEmulator.h" | 6 #include "web/DevToolsEmulator.h" |
| 7 | 7 |
| 8 #include "core/frame/FrameHost.h" | 8 #include "core/frame/FrameHost.h" |
| 9 #include "core/frame/FrameView.h" | 9 #include "core/frame/FrameView.h" |
| 10 #include "core/frame/Settings.h" | 10 #include "core/frame/Settings.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 , m_deviceMetricsEnabled(false) | 55 , m_deviceMetricsEnabled(false) |
| 56 , m_emulateMobileEnabled(false) | 56 , m_emulateMobileEnabled(false) |
| 57 , m_isOverlayScrollbarsEnabled(false) | 57 , m_isOverlayScrollbarsEnabled(false) |
| 58 , m_originalDefaultMinimumPageScaleFactor(0) | 58 , m_originalDefaultMinimumPageScaleFactor(0) |
| 59 , m_originalDefaultMaximumPageScaleFactor(0) | 59 , m_originalDefaultMaximumPageScaleFactor(0) |
| 60 , m_embedderTextAutosizingEnabled(webViewImpl->page()->settings().textAutosi
zingEnabled()) | 60 , m_embedderTextAutosizingEnabled(webViewImpl->page()->settings().textAutosi
zingEnabled()) |
| 61 , m_embedderDeviceScaleAdjustment(webViewImpl->page()->settings().deviceScal
eAdjustment()) | 61 , m_embedderDeviceScaleAdjustment(webViewImpl->page()->settings().deviceScal
eAdjustment()) |
| 62 , m_embedderPreferCompositingToLCDTextEnabled(webViewImpl->page()->settings(
).preferCompositingToLCDTextEnabled()) | 62 , m_embedderPreferCompositingToLCDTextEnabled(webViewImpl->page()->settings(
).preferCompositingToLCDTextEnabled()) |
| 63 , m_embedderUseMobileViewport(webViewImpl->page()->settings().useMobileViewp
ortStyle()) | 63 , m_embedderUseMobileViewport(webViewImpl->page()->settings().useMobileViewp
ortStyle()) |
| 64 , m_embedderPluginsEnabled(webViewImpl->page()->settings().pluginsEnabled()) | 64 , m_embedderPluginsEnabled(webViewImpl->page()->settings().pluginsEnabled()) |
| 65 , m_embedderAvailablePointerTypes(webViewImpl->page()->settings().availableP
ointerTypes()) |
| 66 , m_embedderPrimaryPointerType(webViewImpl->page()->settings().primaryPointe
rType()) |
| 67 , m_embedderAvailableHoverTypes(webViewImpl->page()->settings().availableHov
erTypes()) |
| 68 , m_embedderPrimaryHoverType(webViewImpl->page()->settings().primaryHoverTyp
e()) |
| 65 , m_touchEventEmulationEnabled(false) | 69 , m_touchEventEmulationEnabled(false) |
| 66 , m_doubleTapToZoomEnabled(false) | 70 , m_doubleTapToZoomEnabled(false) |
| 67 , m_originalTouchEnabled(false) | 71 , m_originalTouchEnabled(false) |
| 68 , m_originalDeviceSupportsMouse(false) | 72 , m_originalDeviceSupportsMouse(false) |
| 69 , m_originalDeviceSupportsTouch(false) | 73 , m_originalDeviceSupportsTouch(false) |
| 70 , m_originalMaxTouchPoints(0) | 74 , m_originalMaxTouchPoints(0) |
| 71 , m_embedderScriptEnabled(webViewImpl->page()->settings().scriptEnabled()) | 75 , m_embedderScriptEnabled(webViewImpl->page()->settings().scriptEnabled()) |
| 72 , m_scriptExecutionDisabled(false) | 76 , m_scriptExecutionDisabled(false) |
| 73 , m_hidePinchScrollbarsNearMinScale(false) | 77 , m_hidePinchScrollbarsNearMinScale(false) |
| 74 { | 78 { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 return m_touchEventEmulationEnabled ? true : m_doubleTapToZoomEnabled; | 160 return m_touchEventEmulationEnabled ? true : m_doubleTapToZoomEnabled; |
| 157 } | 161 } |
| 158 | 162 |
| 159 void DevToolsEmulator::setHidePinchScrollbarsNearMinScale(bool enabled) | 163 void DevToolsEmulator::setHidePinchScrollbarsNearMinScale(bool enabled) |
| 160 { | 164 { |
| 161 m_hidePinchScrollbarsNearMinScale = enabled; | 165 m_hidePinchScrollbarsNearMinScale = enabled; |
| 162 if (m_webViewImpl->layerTreeView()) | 166 if (m_webViewImpl->layerTreeView()) |
| 163 m_webViewImpl->layerTreeView()->setHidePinchScrollbarsNearMinScale(enabl
ed); | 167 m_webViewImpl->layerTreeView()->setHidePinchScrollbarsNearMinScale(enabl
ed); |
| 164 } | 168 } |
| 165 | 169 |
| 170 void DevToolsEmulator::setAvailablePointerTypes(int types) |
| 171 { |
| 172 m_embedderAvailablePointerTypes = types; |
| 173 bool emulateMobileEnabled = m_deviceMetricsEnabled && m_emulateMobileEnabled
; |
| 174 if (!emulateMobileEnabled) |
| 175 m_webViewImpl->page()->settings().setAvailablePointerTypes(types); |
| 176 } |
| 177 |
| 178 void DevToolsEmulator::setPrimaryPointerType(PointerType pointerType) |
| 179 { |
| 180 m_embedderPrimaryPointerType = pointerType; |
| 181 bool emulateMobileEnabled = m_deviceMetricsEnabled && m_emulateMobileEnabled
; |
| 182 if (!emulateMobileEnabled) |
| 183 m_webViewImpl->page()->settings().setPrimaryPointerType(pointerType); |
| 184 } |
| 185 |
| 186 void DevToolsEmulator::setAvailableHoverTypes(int types) |
| 187 { |
| 188 m_embedderAvailableHoverTypes = types; |
| 189 bool emulateMobileEnabled = m_deviceMetricsEnabled && m_emulateMobileEnabled
; |
| 190 if (!emulateMobileEnabled) |
| 191 m_webViewImpl->page()->settings().setAvailableHoverTypes(types); |
| 192 } |
| 193 |
| 194 void DevToolsEmulator::setPrimaryHoverType(HoverType hoverType) |
| 195 { |
| 196 m_embedderPrimaryHoverType = hoverType; |
| 197 bool emulateMobileEnabled = m_deviceMetricsEnabled && m_emulateMobileEnabled
; |
| 198 if (!emulateMobileEnabled) |
| 199 m_webViewImpl->page()->settings().setPrimaryHoverType(hoverType); |
| 200 } |
| 201 |
| 166 void DevToolsEmulator::enableDeviceEmulation(const WebDeviceEmulationParams& par
ams) | 202 void DevToolsEmulator::enableDeviceEmulation(const WebDeviceEmulationParams& par
ams) |
| 167 { | 203 { |
| 168 if (!m_deviceMetricsEnabled) { | 204 if (!m_deviceMetricsEnabled) { |
| 169 m_deviceMetricsEnabled = true; | 205 m_deviceMetricsEnabled = true; |
| 170 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); | 206 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); |
| 171 m_webViewImpl->updateShowFPSCounter(); | 207 m_webViewImpl->updateShowFPSCounter(); |
| 172 } | 208 } |
| 173 | 209 |
| 174 m_webViewImpl->page()->settings().setDeviceScaleAdjustment(calculateDeviceSc
aleAdjustment(params.viewSize.width, params.viewSize.height, params.deviceScaleF
actor)); | 210 m_webViewImpl->page()->settings().setDeviceScaleAdjustment(calculateDeviceSc
aleAdjustment(params.viewSize.width, params.viewSize.height, params.deviceScaleF
actor)); |
| 175 | 211 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab
led(); | 245 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab
led(); |
| 210 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); | 246 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); |
| 211 m_webViewImpl->enableViewport(); | 247 m_webViewImpl->enableViewport(); |
| 212 m_webViewImpl->settings()->setViewportMetaEnabled(true); | 248 m_webViewImpl->settings()->setViewportMetaEnabled(true); |
| 213 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 249 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); |
| 214 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); | 250 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); |
| 215 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); | 251 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); |
| 216 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true)
; | 252 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true)
; |
| 217 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); | 253 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); |
| 218 m_webViewImpl->page()->settings().setPluginsEnabled(false); | 254 m_webViewImpl->page()->settings().setPluginsEnabled(false); |
| 255 m_webViewImpl->page()->settings().setAvailablePointerTypes(PointerTypeCoarse
); |
| 256 m_webViewImpl->page()->settings().setPrimaryPointerType(PointerTypeCoarse); |
| 257 m_webViewImpl->page()->settings().setAvailableHoverTypes(HoverTypeOnDemand); |
| 258 m_webViewImpl->page()->settings().setPrimaryHoverType(HoverTypeOnDemand); |
| 219 m_webViewImpl->setZoomFactorOverride(1); | 259 m_webViewImpl->setZoomFactorOverride(1); |
| 220 | 260 |
| 221 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS
caleFactor(); | 261 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS
caleFactor(); |
| 222 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS
caleFactor(); | 262 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS
caleFactor(); |
| 223 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); | 263 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); |
| 224 } | 264 } |
| 225 | 265 |
| 226 void DevToolsEmulator::disableMobileEmulation() | 266 void DevToolsEmulator::disableMobileEmulation() |
| 227 { | 267 { |
| 228 if (!m_emulateMobileEnabled) | 268 if (!m_emulateMobileEnabled) |
| 229 return; | 269 return; |
| 230 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna
bled); | 270 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna
bled); |
| 231 m_webViewImpl->disableViewport(); | 271 m_webViewImpl->disableViewport(); |
| 232 m_webViewImpl->settings()->setViewportMetaEnabled(false); | 272 m_webViewImpl->settings()->setViewportMetaEnabled(false); |
| 233 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 273 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); |
| 234 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); | 274 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); |
| 235 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut
osizingEnabled); | 275 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut
osizingEnabled); |
| 236 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb
edderPreferCompositingToLCDTextEnabled); | 276 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb
edderPreferCompositingToLCDTextEnabled); |
| 237 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob
ileViewport); | 277 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob
ileViewport); |
| 238 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled
); | 278 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled
); |
| 279 m_webViewImpl->page()->settings().setAvailablePointerTypes(m_embedderAvailab
lePointerTypes); |
| 280 m_webViewImpl->page()->settings().setPrimaryPointerType(m_embedderPrimaryPoi
nterType); |
| 281 m_webViewImpl->page()->settings().setAvailableHoverTypes(m_embedderAvailable
HoverTypes); |
| 282 m_webViewImpl->page()->settings().setPrimaryHoverType(m_embedderPrimaryHover
Type); |
| 239 m_webViewImpl->setZoomFactorOverride(0); | 283 m_webViewImpl->setZoomFactorOverride(0); |
| 240 m_emulateMobileEnabled = false; | 284 m_emulateMobileEnabled = false; |
| 241 m_webViewImpl->setDefaultPageScaleLimits( | 285 m_webViewImpl->setDefaultPageScaleLimits( |
| 242 m_originalDefaultMinimumPageScaleFactor, | 286 m_originalDefaultMinimumPageScaleFactor, |
| 243 m_originalDefaultMaximumPageScaleFactor); | 287 m_originalDefaultMaximumPageScaleFactor); |
| 244 } | 288 } |
| 245 | 289 |
| 246 void DevToolsEmulator::setTouchEventEmulationEnabled(bool enabled) | 290 void DevToolsEmulator::setTouchEventEmulationEnabled(bool enabled) |
| 247 { | 291 { |
| 248 if (m_touchEventEmulationEnabled == enabled) | 292 if (m_touchEventEmulationEnabled == enabled) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 m_lastPinchAnchorCss.clear(); | 343 m_lastPinchAnchorCss.clear(); |
| 300 m_lastPinchAnchorDip.clear(); | 344 m_lastPinchAnchorDip.clear(); |
| 301 } | 345 } |
| 302 return true; | 346 return true; |
| 303 } | 347 } |
| 304 | 348 |
| 305 return false; | 349 return false; |
| 306 } | 350 } |
| 307 | 351 |
| 308 } // namespace blink | 352 } // namespace blink |
| OLD | NEW |