Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2010-2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 44 #include "WebSettings.h" | 44 #include "WebSettings.h" |
| 45 #include "WebViewClient.h" | 45 #include "WebViewClient.h" |
| 46 #include "WebViewImpl.h" | 46 #include "WebViewImpl.h" |
| 47 #include "bindings/v8/PageScriptDebugServer.h" | 47 #include "bindings/v8/PageScriptDebugServer.h" |
| 48 #include "bindings/v8/ScriptController.h" | 48 #include "bindings/v8/ScriptController.h" |
| 49 #include "bindings/v8/V8Binding.h" | 49 #include "bindings/v8/V8Binding.h" |
| 50 #include "core/dom/ExceptionCode.h" | 50 #include "core/dom/ExceptionCode.h" |
| 51 #include "core/fetch/MemoryCache.h" | 51 #include "core/fetch/MemoryCache.h" |
| 52 #include "core/frame/FrameView.h" | 52 #include "core/frame/FrameView.h" |
| 53 #include "core/frame/LocalFrame.h" | 53 #include "core/frame/LocalFrame.h" |
| 54 #include "core/frame/Settings.h" | |
| 54 #include "core/inspector/InjectedScriptHost.h" | 55 #include "core/inspector/InjectedScriptHost.h" |
| 55 #include "core/inspector/InspectorController.h" | 56 #include "core/inspector/InspectorController.h" |
| 56 #include "core/page/Page.h" | 57 #include "core/page/Page.h" |
| 57 #include "core/rendering/RenderView.h" | 58 #include "core/rendering/RenderView.h" |
| 58 #include "platform/JSONValues.h" | 59 #include "platform/JSONValues.h" |
| 59 #include "platform/graphics/GraphicsContext.h" | 60 #include "platform/graphics/GraphicsContext.h" |
| 60 #include "platform/network/ResourceError.h" | 61 #include "platform/network/ResourceError.h" |
| 61 #include "platform/network/ResourceRequest.h" | 62 #include "platform/network/ResourceRequest.h" |
| 62 #include "platform/network/ResourceResponse.h" | 63 #include "platform/network/ResourceResponse.h" |
| 63 #include "public/platform/Platform.h" | 64 #include "public/platform/Platform.h" |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 198 WebDevToolsAgentClient* client) | 199 WebDevToolsAgentClient* client) |
| 199 : m_hostId(client->hostIdentifier()) | 200 : m_hostId(client->hostIdentifier()) |
| 200 , m_client(client) | 201 , m_client(client) |
| 201 , m_webViewImpl(webViewImpl) | 202 , m_webViewImpl(webViewImpl) |
| 202 , m_attached(false) | 203 , m_attached(false) |
| 203 , m_generatingEvent(false) | 204 , m_generatingEvent(false) |
| 204 , m_deviceMetricsEnabled(false) | 205 , m_deviceMetricsEnabled(false) |
| 205 , m_emulateViewportEnabled(false) | 206 , m_emulateViewportEnabled(false) |
| 206 , m_originalViewportEnabled(false) | 207 , m_originalViewportEnabled(false) |
| 207 , m_isOverlayScrollbarsEnabled(false) | 208 , m_isOverlayScrollbarsEnabled(false) |
| 209 , m_touchEventEmulationEnabled(false) | |
| 210 , m_originalTouchEnabled(false) | |
| 211 , m_originalDeviceSupportsMouse(false) | |
| 208 { | 212 { |
| 209 ASSERT(m_hostId > 0); | 213 ASSERT(m_hostId > 0); |
| 210 ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client); | 214 ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client); |
| 211 } | 215 } |
| 212 | 216 |
| 213 WebDevToolsAgentImpl::~WebDevToolsAgentImpl() | 217 WebDevToolsAgentImpl::~WebDevToolsAgentImpl() |
| 214 { | 218 { |
| 215 ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl); | 219 ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl); |
| 216 if (m_attached) | 220 if (m_attached) |
| 217 blink::Platform::current()->currentThread()->removeTaskObserver(this); | 221 blink::Platform::current()->currentThread()->removeTaskObserver(this); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 291 { | 295 { |
| 292 if (InspectorController* ic = inspectorController()) | 296 if (InspectorController* ic = inspectorController()) |
| 293 ic->webViewResized(IntSize()); | 297 ic->webViewResized(IntSize()); |
| 294 } | 298 } |
| 295 | 299 |
| 296 bool WebDevToolsAgentImpl::handleInputEvent(WebCore::Page* page, const WebInputE vent& inputEvent) | 300 bool WebDevToolsAgentImpl::handleInputEvent(WebCore::Page* page, const WebInputE vent& inputEvent) |
| 297 { | 301 { |
| 298 if (!m_attached && !m_generatingEvent) | 302 if (!m_attached && !m_generatingEvent) |
| 299 return false; | 303 return false; |
| 300 | 304 |
| 305 if (WebInputEvent::isGestureEventType(inputEvent.type) && m_touchEventEmulat ionEnabled) { | |
| 306 FrameView* frameView = page->mainFrame()->view(); | |
|
pfeldman
2014/04/07 17:32:59
Why are these gestures handled here?
pfeldman
2014/04/07 17:52:50
Please add fixme and a link to a bug.
dgozman
2014/04/08 16:51:48
Done.
| |
| 307 PlatformGestureEventBuilder gestureEvent(frameView, *static_cast<const W ebGestureEvent*>(&inputEvent)); | |
| 308 if (gestureEvent.type() == PlatformEvent::GesturePinchUpdate) { | |
| 309 IntPoint offset = gestureEvent.position(); | |
| 310 float oldPageScaleFactor = page->pageScaleFactor(); | |
| 311 float newPageScaleFactor = oldPageScaleFactor * gestureEvent.scale() ; | |
| 312 float offsetScale = 1 - oldPageScaleFactor / newPageScaleFactor; | |
| 313 offset.scale(offsetScale, offsetScale); | |
| 314 m_webViewImpl->setPageScaleFactor(newPageScaleFactor, offset + frame View->scrollPosition()); | |
| 315 } | |
| 316 if (gestureEvent.type() == PlatformEvent::GesturePinchBegin | |
| 317 || gestureEvent.type() == PlatformEvent::GesturePinchUpdate | |
| 318 || gestureEvent.type() == PlatformEvent::GesturePinchEnd) | |
| 319 return true; | |
| 320 } | |
| 321 | |
| 301 InspectorController* ic = inspectorController(); | 322 InspectorController* ic = inspectorController(); |
| 302 if (!ic) | 323 if (!ic) |
| 303 return false; | 324 return false; |
| 304 | 325 |
| 305 if (WebInputEvent::isGestureEventType(inputEvent.type) && inputEvent.type == WebInputEvent::GestureTap) { | 326 if (WebInputEvent::isGestureEventType(inputEvent.type) && inputEvent.type == WebInputEvent::GestureTap) { |
| 306 // Only let GestureTab in (we only need it and we know PlatformGestureEv entBuilder supports it). | 327 // Only let GestureTab in (we only need it and we know PlatformGestureEv entBuilder supports it). |
| 307 PlatformGestureEvent gestureEvent = PlatformGestureEventBuilder(page->ma inFrame()->view(), *static_cast<const WebGestureEvent*>(&inputEvent)); | 328 PlatformGestureEvent gestureEvent = PlatformGestureEventBuilder(page->ma inFrame()->view(), *static_cast<const WebGestureEvent*>(&inputEvent)); |
| 308 return ic->handleGestureEvent(page->mainFrame(), gestureEvent); | 329 return ic->handleGestureEvent(page->mainFrame(), gestureEvent); |
| 309 } | 330 } |
| 310 if (WebInputEvent::isMouseEventType(inputEvent.type) && inputEvent.type != W ebInputEvent::MouseEnter) { | 331 if (WebInputEvent::isMouseEventType(inputEvent.type) && inputEvent.type != W ebInputEvent::MouseEnter) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 WebDeviceEmulationParams params; | 366 WebDeviceEmulationParams params; |
| 346 params.screenPosition = emulateViewport ? WebDeviceEmulationParams::Mobi le : WebDeviceEmulationParams::Desktop; | 367 params.screenPosition = emulateViewport ? WebDeviceEmulationParams::Mobi le : WebDeviceEmulationParams::Desktop; |
| 347 params.deviceScaleFactor = deviceScaleFactor; | 368 params.deviceScaleFactor = deviceScaleFactor; |
| 348 params.viewSize = WebSize(width, height); | 369 params.viewSize = WebSize(width, height); |
| 349 params.fitToView = fitWindow; | 370 params.fitToView = fitWindow; |
| 350 params.viewInsets = WebSize(10, 10); | 371 params.viewInsets = WebSize(10, 10); |
| 351 m_client->enableDeviceEmulation(params); | 372 m_client->enableDeviceEmulation(params); |
| 352 } | 373 } |
| 353 } | 374 } |
| 354 | 375 |
| 376 void WebDevToolsAgentImpl::setTouchEventEmulationEnabled(bool enabled) | |
| 377 { | |
| 378 if (m_touchEventEmulationEnabled == enabled) | |
| 379 return; | |
| 380 | |
| 381 if (!m_touchEventEmulationEnabled) { | |
| 382 m_originalTouchEnabled = RuntimeEnabledFeatures::touchEnabled(); | |
| 383 if (m_webViewImpl->page()) | |
| 384 m_originalDeviceSupportsMouse = m_webViewImpl->page()->settings().de viceSupportsMouse(); | |
| 385 } | |
| 386 RuntimeEnabledFeatures::setTouchEnabled(enabled ? true : m_originalTouchEnab led); | |
| 387 if (m_webViewImpl->page()) | |
| 388 m_webViewImpl->page()->settings().setDeviceSupportsMouse(enabled ? false : m_originalDeviceSupportsMouse); | |
| 389 m_client->setTouchEventEmulationEnabled(enabled); | |
| 390 m_touchEventEmulationEnabled = enabled; | |
| 391 } | |
| 392 | |
| 355 void WebDevToolsAgentImpl::enableViewportEmulation() | 393 void WebDevToolsAgentImpl::enableViewportEmulation() |
| 356 { | 394 { |
| 357 if (m_emulateViewportEnabled) | 395 if (m_emulateViewportEnabled) |
| 358 return; | 396 return; |
| 359 m_emulateViewportEnabled = true; | 397 m_emulateViewportEnabled = true; |
| 360 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab led(); | 398 m_isOverlayScrollbarsEnabled = RuntimeEnabledFeatures::overlayScrollbarsEnab led(); |
| 361 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); | 399 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(true); |
| 362 m_originalViewportEnabled = RuntimeEnabledFeatures::cssViewportEnabled(); | 400 m_originalViewportEnabled = RuntimeEnabledFeatures::cssViewportEnabled(); |
| 363 RuntimeEnabledFeatures::setCSSViewportEnabled(true); | 401 RuntimeEnabledFeatures::setCSSViewportEnabled(true); |
| 364 m_webViewImpl->settings()->setViewportEnabled(true); | 402 m_webViewImpl->settings()->setViewportEnabled(true); |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 666 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kProfiler_startCmd) | 704 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kProfiler_startCmd) |
| 667 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kProfiler_stopCmd); | 705 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke ndDispatcher::kProfiler_stopCmd); |
| 668 } | 706 } |
| 669 | 707 |
| 670 void WebDevToolsAgent::processPendingMessages() | 708 void WebDevToolsAgent::processPendingMessages() |
| 671 { | 709 { |
| 672 PageScriptDebugServer::shared().runPendingTasks(); | 710 PageScriptDebugServer::shared().runPendingTasks(); |
| 673 } | 711 } |
| 674 | 712 |
| 675 } // namespace blink | 713 } // namespace blink |
| OLD | NEW |