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