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 |