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" | |
9 #include "core/frame/FrameView.h" | 8 #include "core/frame/FrameView.h" |
10 #include "core/frame/Settings.h" | 9 #include "core/frame/Settings.h" |
11 #include "core/page/Page.h" | 10 #include "core/page/Page.h" |
12 #include "platform/RuntimeEnabledFeatures.h" | 11 #include "platform/RuntimeEnabledFeatures.h" |
13 #include "public/platform/WebLayerTreeView.h" | 12 #include "public/platform/WebLayerTreeView.h" |
14 #include "public/web/WebDeviceEmulationParams.h" | 13 #include "public/web/WebDeviceEmulationParams.h" |
15 #include "web/InspectorEmulationAgent.h" | 14 #include "web/InspectorEmulationAgent.h" |
16 #include "web/WebInputEventConversion.h" | 15 #include "web/WebInputEventConversion.h" |
17 #include "web/WebLocalFrameImpl.h" | 16 #include "web/WebLocalFrameImpl.h" |
18 #include "web/WebSettingsImpl.h" | 17 #include "web/WebSettingsImpl.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 | 206 |
208 void DevToolsEmulator::enableMobileEmulation() | 207 void DevToolsEmulator::enableMobileEmulation() |
209 { | 208 { |
210 if (m_emulateMobileEnabled) | 209 if (m_emulateMobileEnabled) |
211 return; | 210 return; |
212 m_emulateMobileEnabled = true; | 211 m_emulateMobileEnabled = true; |
213 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab
led(); | 212 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab
led(); |
214 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); | 213 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); |
215 m_webViewImpl->enableViewport(); | 214 m_webViewImpl->enableViewport(); |
216 m_webViewImpl->settings()->setViewportMetaEnabled(true); | 215 m_webViewImpl->settings()->setViewportMetaEnabled(true); |
217 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | |
218 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); | 216 m_webViewImpl->settings()->setShrinksViewportContentToFit(true); |
219 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); | 217 m_webViewImpl->page()->settings().setTextAutosizingEnabled(true); |
220 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true)
; | 218 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(true)
; |
221 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); | 219 m_webViewImpl->page()->settings().setUseMobileViewportStyle(true); |
222 m_webViewImpl->page()->settings().setPluginsEnabled(false); | 220 m_webViewImpl->page()->settings().setPluginsEnabled(false); |
223 m_webViewImpl->setZoomFactorOverride(1); | 221 m_webViewImpl->setZoomFactorOverride(1); |
224 | 222 |
225 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS
caleFactor(); | 223 m_originalDefaultMinimumPageScaleFactor = m_webViewImpl->defaultMinimumPageS
caleFactor(); |
226 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS
caleFactor(); | 224 m_originalDefaultMaximumPageScaleFactor = m_webViewImpl->defaultMaximumPageS
caleFactor(); |
227 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); | 225 m_webViewImpl->setDefaultPageScaleLimits(0.25f, 5); |
| 226 if (m_webViewImpl->layerTreeView()) |
| 227 m_webViewImpl->layerTreeView()->setHidePinchScrollbarsNearMinScale(false
); |
228 } | 228 } |
229 | 229 |
230 void DevToolsEmulator::disableMobileEmulation() | 230 void DevToolsEmulator::disableMobileEmulation() |
231 { | 231 { |
232 if (!m_emulateMobileEnabled) | 232 if (!m_emulateMobileEnabled) |
233 return; | 233 return; |
234 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna
bled); | 234 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(m_isOverlayScrollbarsEna
bled); |
235 m_webViewImpl->disableViewport(); | 235 m_webViewImpl->disableViewport(); |
236 m_webViewImpl->settings()->setViewportMetaEnabled(false); | 236 m_webViewImpl->settings()->setViewportMetaEnabled(false); |
237 m_webViewImpl->page()->frameHost().visualViewport().initializeScrollbars(); | |
238 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); | 237 m_webViewImpl->settings()->setShrinksViewportContentToFit(false); |
239 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut
osizingEnabled); | 238 m_webViewImpl->page()->settings().setTextAutosizingEnabled(m_embedderTextAut
osizingEnabled); |
240 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb
edderPreferCompositingToLCDTextEnabled); | 239 m_webViewImpl->page()->settings().setPreferCompositingToLCDTextEnabled(m_emb
edderPreferCompositingToLCDTextEnabled); |
241 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob
ileViewport); | 240 m_webViewImpl->page()->settings().setUseMobileViewportStyle(m_embedderUseMob
ileViewport); |
242 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled
); | 241 m_webViewImpl->page()->settings().setPluginsEnabled(m_embedderPluginsEnabled
); |
243 m_webViewImpl->setZoomFactorOverride(0); | 242 m_webViewImpl->setZoomFactorOverride(0); |
244 m_emulateMobileEnabled = false; | 243 m_emulateMobileEnabled = false; |
245 m_webViewImpl->setDefaultPageScaleLimits( | 244 m_webViewImpl->setDefaultPageScaleLimits( |
246 m_originalDefaultMinimumPageScaleFactor, | 245 m_originalDefaultMinimumPageScaleFactor, |
247 m_originalDefaultMaximumPageScaleFactor); | 246 m_originalDefaultMaximumPageScaleFactor); |
| 247 if (m_webViewImpl->layerTreeView()) { |
| 248 m_webViewImpl->layerTreeView()->setHidePinchScrollbarsNearMinScale( |
| 249 m_hidePinchScrollbarsNearMinScale); |
| 250 } |
248 } | 251 } |
249 | 252 |
250 void DevToolsEmulator::setTouchEventEmulationEnabled(bool enabled) | 253 void DevToolsEmulator::setTouchEventEmulationEnabled(bool enabled) |
251 { | 254 { |
252 if (m_touchEventEmulationEnabled == enabled) | 255 if (m_touchEventEmulationEnabled == enabled) |
253 return; | 256 return; |
254 if (!m_touchEventEmulationEnabled) { | 257 if (!m_touchEventEmulationEnabled) { |
255 m_originalTouchEnabled = RuntimeEnabledFeatures::touchEnabled(); | 258 m_originalTouchEnabled = RuntimeEnabledFeatures::touchEnabled(); |
256 m_originalDeviceSupportsMouse = m_webViewImpl->page()->settings().device
SupportsMouse(); | 259 m_originalDeviceSupportsMouse = m_webViewImpl->page()->settings().device
SupportsMouse(); |
257 m_originalDeviceSupportsTouch = m_webViewImpl->page()->settings().device
SupportsTouch(); | 260 m_originalDeviceSupportsTouch = m_webViewImpl->page()->settings().device
SupportsTouch(); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 m_lastPinchAnchorCss.clear(); | 306 m_lastPinchAnchorCss.clear(); |
304 m_lastPinchAnchorDip.clear(); | 307 m_lastPinchAnchorDip.clear(); |
305 } | 308 } |
306 return true; | 309 return true; |
307 } | 310 } |
308 | 311 |
309 return false; | 312 return false; |
310 } | 313 } |
311 | 314 |
312 } // namespace blink | 315 } // namespace blink |
OLD | NEW |