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 "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().availableH overTypes()) | |
|
mustaq
2015/09/15 14:29:03
s/Hover/Pointer/
dgozman
2015/09/15 18:18:05
Ops. Done.
| |
| 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 | |
| 202 int DevToolsEmulator::availablePointerTypes() | |
| 203 { | |
| 204 return m_embedderAvailablePointerTypes; | |
|
mustaq
2015/09/15 14:29:03
I think the getters should behave similarly to the
dgozman
2015/09/15 18:18:05
That's a tricky question. When mobile emulation is
mustaq
2015/09/16 13:47:08
Yes, I think removing them makes sense since they
| |
| 205 } | |
| 206 | |
| 207 PointerType DevToolsEmulator::primaryPointerType() | |
| 208 { | |
| 209 return m_embedderPrimaryPointerType; | |
| 210 } | |
| 211 | |
| 212 int DevToolsEmulator::availableHoverTypes() | |
| 213 { | |
| 214 return m_embedderAvailableHoverTypes; | |
| 215 } | |
| 216 | |
| 217 HoverType DevToolsEmulator::primaryHoverType() | |
| 218 { | |
| 219 return m_embedderPrimaryHoverType; | |
| 220 } | |
| 221 | |
| 166 void DevToolsEmulator::enableDeviceEmulation(const WebDeviceEmulationParams& par ams) | 222 void DevToolsEmulator::enableDeviceEmulation(const WebDeviceEmulationParams& par ams) |
| 167 { | 223 { |
| 168 if (!m_deviceMetricsEnabled) { | 224 if (!m_deviceMetricsEnabled) { |
| 169 m_deviceMetricsEnabled = true; | 225 m_deviceMetricsEnabled = true; |
| 170 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); | 226 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); |
| 171 m_webViewImpl->updateShowFPSCounter(); | 227 m_webViewImpl->updateShowFPSCounter(); |
| 172 } | 228 } |
| 173 | 229 |
| 174 m_webViewImpl->page()->settings().setDeviceScaleAdjustment(calculateDeviceSc aleAdjustment(params.viewSize.width, params.viewSize.height, params.deviceScaleF actor)); | 230 m_webViewImpl->page()->settings().setDeviceScaleAdjustment(calculateDeviceSc aleAdjustment(params.viewSize.width, params.viewSize.height, params.deviceScaleF actor)); |
| 175 | 231 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 209 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab led(); | 265 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab led(); |
| 210 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); | 266 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); |
| 211 m_webViewImpl->enableViewport(); | 267 m_webViewImpl->enableViewport(); |
| 212 m_webViewImpl->settings()->setViewportMetaEnabled(true); | 268 m_webViewImpl->settings()->setViewportMetaEnabled(true); |
| 213 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 269 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); |
| 214 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); | 270 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); |
| 215 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); | 271 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); |
| 216 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true) ; | 272 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true) ; |
| 217 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); | 273 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); |
| 218 m_webViewImpl->page()->settings().setPluginsEnabled(false); | 274 m_webViewImpl->page()->settings().setPluginsEnabled(false); |
| 275 m_webViewImpl->page()->settings().setAvailablePointerTypes(PointerTypeCoarse ); | |
| 276 m_webViewImpl->page()->settings().setPrimaryPointerType(PointerTypeCoarse); | |
| 277 m_webViewImpl->page()->settings().setAvailableHoverTypes(HoverTypeOnDemand); | |
| 278 m_webViewImpl->page()->settings().setPrimaryHoverType(HoverTypeOnDemand); | |
| 219 m_webViewImpl->setZoomFactorOverride(1); | 279 m_webViewImpl->setZoomFactorOverride(1); |
| 220 | 280 |
| 221 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS caleFactor(); | 281 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS caleFactor(); |
| 222 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS caleFactor(); | 282 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS caleFactor(); |
| 223 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); | 283 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); |
| 224 } | 284 } |
| 225 | 285 |
| 226 void DevToolsEmulator::disableMobileEmulation() | 286 void DevToolsEmulator::disableMobileEmulation() |
| 227 { | 287 { |
| 228 if (!m_emulateMobileEnabled) | 288 if (!m_emulateMobileEnabled) |
| 229 return; | 289 return; |
| 230 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna bled); | 290 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna bled); |
| 231 m_webViewImpl->disableViewport(); | 291 m_webViewImpl->disableViewport(); |
| 232 m_webViewImpl->settings()->setViewportMetaEnabled(false); | 292 m_webViewImpl->settings()->setViewportMetaEnabled(false); |
| 233 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | 293 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); |
| 234 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); | 294 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); |
| 235 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut osizingEnabled); | 295 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut osizingEnabled); |
| 236 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb edderPreferCompositingToLCDTextEnabled); | 296 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb edderPreferCompositingToLCDTextEnabled); |
| 237 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob ileViewport); | 297 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob ileViewport); |
| 238 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled ); | 298 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled ); |
| 299 m_webViewImpl->page()->settings().setAvailablePointerTypes(m_embedderAvailab lePointerTypes); | |
| 300 m_webViewImpl->page()->settings().setPrimaryPointerType(m_embedderPrimaryPoi nterType); | |
| 301 m_webViewImpl->page()->settings().setAvailableHoverTypes(m_embedderAvailable HoverTypes); | |
| 302 m_webViewImpl->page()->settings().setPrimaryHoverType(m_embedderPrimaryHover Type); | |
| 239 m_webViewImpl->setZoomFactorOverride(0); | 303 m_webViewImpl->setZoomFactorOverride(0); |
| 240 m_emulateMobileEnabled = false; | 304 m_emulateMobileEnabled = false; |
| 241 m_webViewImpl->setDefaultPageScaleLimits( | 305 m_webViewImpl->setDefaultPageScaleLimits( |
| 242 m_originalDefaultMinimumPageScaleFactor, | 306 m_originalDefaultMinimumPageScaleFactor, |
| 243 m_originalDefaultMaximumPageScaleFactor); | 307 m_originalDefaultMaximumPageScaleFactor); |
| 244 } | 308 } |
| 245 | 309 |
| 246 void DevToolsEmulator::setTouchEventEmulationEnabled(bool enabled) | 310 void DevToolsEmulator::setTouchEventEmulationEnabled(bool enabled) |
| 247 { | 311 { |
| 248 if (m_touchEventEmulationEnabled == enabled) | 312 if (m_touchEventEmulationEnabled == enabled) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 m_lastPinchAnchorCss.clear(); | 363 m_lastPinchAnchorCss.clear(); |
| 300 m_lastPinchAnchorDip.clear(); | 364 m_lastPinchAnchorDip.clear(); |
| 301 } | 365 } |
| 302 return true; | 366 return true; |
| 303 } | 367 } |
| 304 | 368 |
| 305 return false; | 369 return false; |
| 306 } | 370 } |
| 307 | 371 |
| 308 } // namespace blink | 372 } // namespace blink |
| OLD | NEW |