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 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 | 300 |
301 bool WebDevToolsAgentImpl::handleInputEvent(WebCore::Page* page, const WebInputE
vent& inputEvent) | 301 bool WebDevToolsAgentImpl::handleInputEvent(WebCore::Page* page, const WebInputE
vent& inputEvent) |
302 { | 302 { |
303 if (!m_attached && !m_generatingEvent) | 303 if (!m_attached && !m_generatingEvent) |
304 return false; | 304 return false; |
305 | 305 |
306 // FIXME: This workaround is required for touch emulation on Mac, where | 306 // FIXME: This workaround is required for touch emulation on Mac, where |
307 // compositor-side pinch handling is not enabled. See http://crbug.com/13800
3. | 307 // compositor-side pinch handling is not enabled. See http://crbug.com/13800
3. |
308 bool isPinch = inputEvent.type == WebInputEvent::GesturePinchBegin || inputE
vent.type == WebInputEvent::GesturePinchUpdate || inputEvent.type == WebInputEve
nt::GesturePinchEnd; | 308 bool isPinch = inputEvent.type == WebInputEvent::GesturePinchBegin || inputE
vent.type == WebInputEvent::GesturePinchUpdate || inputEvent.type == WebInputEve
nt::GesturePinchEnd; |
309 if (isPinch && m_touchEventEmulationEnabled && m_emulateViewportEnabled) { | 309 if (isPinch && m_touchEventEmulationEnabled && m_emulateViewportEnabled) { |
310 FrameView* frameView = page->mainFrame()->view(); | 310 FrameView* frameView = page->deprecatedLocalMainFrame()->view(); |
311 PlatformGestureEventBuilder gestureEvent(frameView, *static_cast<const W
ebGestureEvent*>(&inputEvent)); | 311 PlatformGestureEventBuilder gestureEvent(frameView, *static_cast<const W
ebGestureEvent*>(&inputEvent)); |
312 float pageScaleFactor = page->pageScaleFactor(); | 312 float pageScaleFactor = page->pageScaleFactor(); |
313 if (gestureEvent.type() == PlatformEvent::GesturePinchBegin) { | 313 if (gestureEvent.type() == PlatformEvent::GesturePinchBegin) { |
314 m_lastPinchAnchorCss = adoptPtr(new WebCore::IntPoint(frameView->scr
ollPosition() + gestureEvent.position())); | 314 m_lastPinchAnchorCss = adoptPtr(new WebCore::IntPoint(frameView->scr
ollPosition() + gestureEvent.position())); |
315 m_lastPinchAnchorDip = adoptPtr(new WebCore::IntPoint(gestureEvent.p
osition())); | 315 m_lastPinchAnchorDip = adoptPtr(new WebCore::IntPoint(gestureEvent.p
osition())); |
316 m_lastPinchAnchorDip->scale(pageScaleFactor, pageScaleFactor); | 316 m_lastPinchAnchorDip->scale(pageScaleFactor, pageScaleFactor); |
317 } | 317 } |
318 if (gestureEvent.type() == PlatformEvent::GesturePinchUpdate && m_lastPi
nchAnchorCss) { | 318 if (gestureEvent.type() == PlatformEvent::GesturePinchUpdate && m_lastPi
nchAnchorCss) { |
319 float newPageScaleFactor = pageScaleFactor * gestureEvent.scale(); | 319 float newPageScaleFactor = pageScaleFactor * gestureEvent.scale(); |
320 WebCore::IntPoint anchorCss(*m_lastPinchAnchorDip.get()); | 320 WebCore::IntPoint anchorCss(*m_lastPinchAnchorDip.get()); |
321 anchorCss.scale(1.f / newPageScaleFactor, 1.f / newPageScaleFactor); | 321 anchorCss.scale(1.f / newPageScaleFactor, 1.f / newPageScaleFactor); |
322 m_webViewImpl->setPageScaleFactor(newPageScaleFactor); | 322 m_webViewImpl->setPageScaleFactor(newPageScaleFactor); |
323 m_webViewImpl->setMainFrameScrollOffset(*m_lastPinchAnchorCss.get()
- toIntSize(anchorCss)); | 323 m_webViewImpl->setMainFrameScrollOffset(*m_lastPinchAnchorCss.get()
- toIntSize(anchorCss)); |
324 } | 324 } |
325 if (gestureEvent.type() == PlatformEvent::GesturePinchEnd) { | 325 if (gestureEvent.type() == PlatformEvent::GesturePinchEnd) { |
326 m_lastPinchAnchorCss.clear(); | 326 m_lastPinchAnchorCss.clear(); |
327 m_lastPinchAnchorDip.clear(); | 327 m_lastPinchAnchorDip.clear(); |
328 } | 328 } |
329 return true; | 329 return true; |
330 } | 330 } |
331 | 331 |
332 InspectorController* ic = inspectorController(); | 332 InspectorController* ic = inspectorController(); |
333 if (!ic) | 333 if (!ic) |
334 return false; | 334 return false; |
335 | 335 |
336 if (WebInputEvent::isGestureEventType(inputEvent.type) && inputEvent.type ==
WebInputEvent::GestureTap) { | 336 if (WebInputEvent::isGestureEventType(inputEvent.type) && inputEvent.type ==
WebInputEvent::GestureTap) { |
337 // Only let GestureTab in (we only need it and we know PlatformGestureEv
entBuilder supports it). | 337 // Only let GestureTab in (we only need it and we know PlatformGestureEv
entBuilder supports it). |
338 PlatformGestureEvent gestureEvent = PlatformGestureEventBuilder(page->ma
inFrame()->view(), *static_cast<const WebGestureEvent*>(&inputEvent)); | 338 PlatformGestureEvent gestureEvent = PlatformGestureEventBuilder(page->de
precatedLocalMainFrame()->view(), *static_cast<const WebGestureEvent*>(&inputEve
nt)); |
339 return ic->handleGestureEvent(page->mainFrame(), gestureEvent); | 339 return ic->handleGestureEvent(toLocalFrame(page->mainFrame()), gestureEv
ent); |
340 } | 340 } |
341 if (WebInputEvent::isMouseEventType(inputEvent.type) && inputEvent.type != W
ebInputEvent::MouseEnter) { | 341 if (WebInputEvent::isMouseEventType(inputEvent.type) && inputEvent.type != W
ebInputEvent::MouseEnter) { |
342 // PlatformMouseEventBuilder does not work with MouseEnter type, so we f
ilter it out manually. | 342 // PlatformMouseEventBuilder does not work with MouseEnter type, so we f
ilter it out manually. |
343 PlatformMouseEvent mouseEvent = PlatformMouseEventBuilder(page->mainFram
e()->view(), *static_cast<const WebMouseEvent*>(&inputEvent)); | 343 PlatformMouseEvent mouseEvent = PlatformMouseEventBuilder(page->deprecat
edLocalMainFrame()->view(), *static_cast<const WebMouseEvent*>(&inputEvent)); |
344 return ic->handleMouseEvent(page->mainFrame(), mouseEvent); | 344 return ic->handleMouseEvent(toLocalFrame(page->mainFrame()), mouseEvent)
; |
345 } | 345 } |
346 if (WebInputEvent::isTouchEventType(inputEvent.type)) { | 346 if (WebInputEvent::isTouchEventType(inputEvent.type)) { |
347 PlatformTouchEvent touchEvent = PlatformTouchEventBuilder(page->mainFram
e()->view(), *static_cast<const WebTouchEvent*>(&inputEvent)); | 347 PlatformTouchEvent touchEvent = PlatformTouchEventBuilder(page->deprecat
edLocalMainFrame()->view(), *static_cast<const WebTouchEvent*>(&inputEvent)); |
348 return ic->handleTouchEvent(page->mainFrame(), touchEvent); | 348 return ic->handleTouchEvent(toLocalFrame(page->mainFrame()), touchEvent)
; |
349 } | 349 } |
350 if (WebInputEvent::isKeyboardEventType(inputEvent.type)) { | 350 if (WebInputEvent::isKeyboardEventType(inputEvent.type)) { |
351 PlatformKeyboardEvent keyboardEvent = PlatformKeyboardEventBuilder(*stat
ic_cast<const WebKeyboardEvent*>(&inputEvent)); | 351 PlatformKeyboardEvent keyboardEvent = PlatformKeyboardEventBuilder(*stat
ic_cast<const WebKeyboardEvent*>(&inputEvent)); |
352 return ic->handleKeyboardEvent(page->mainFrame(), keyboardEvent); | 352 return ic->handleKeyboardEvent(page->deprecatedLocalMainFrame(), keyboar
dEvent); |
353 } | 353 } |
354 return false; | 354 return false; |
355 } | 355 } |
356 | 356 |
357 void WebDevToolsAgentImpl::setDeviceMetricsOverride(int width, int height, float
deviceScaleFactor, bool emulateViewport, bool fitWindow) | 357 void WebDevToolsAgentImpl::setDeviceMetricsOverride(int width, int height, float
deviceScaleFactor, bool emulateViewport, bool fitWindow) |
358 { | 358 { |
359 if (!m_deviceMetricsEnabled) { | 359 if (!m_deviceMetricsEnabled) { |
360 m_deviceMetricsEnabled = true; | 360 m_deviceMetricsEnabled = true; |
361 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); | 361 m_webViewImpl->setBackgroundColorOverride(Color::darkGray); |
362 } | 362 } |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 InspectorController* WebDevToolsAgentImpl::inspectorController() | 610 InspectorController* WebDevToolsAgentImpl::inspectorController() |
611 { | 611 { |
612 if (Page* page = m_webViewImpl->page()) | 612 if (Page* page = m_webViewImpl->page()) |
613 return &page->inspectorController(); | 613 return &page->inspectorController(); |
614 return 0; | 614 return 0; |
615 } | 615 } |
616 | 616 |
617 LocalFrame* WebDevToolsAgentImpl::mainFrame() | 617 LocalFrame* WebDevToolsAgentImpl::mainFrame() |
618 { | 618 { |
619 if (Page* page = m_webViewImpl->page()) | 619 if (Page* page = m_webViewImpl->page()) |
620 return page->mainFrame(); | 620 return page->deprecatedLocalMainFrame(); |
621 return 0; | 621 return 0; |
622 } | 622 } |
623 | 623 |
624 // WebPageOverlay | 624 // WebPageOverlay |
625 void WebDevToolsAgentImpl::paintPageOverlay(WebCanvas* canvas) | 625 void WebDevToolsAgentImpl::paintPageOverlay(WebCanvas* canvas) |
626 { | 626 { |
627 InspectorController* ic = inspectorController(); | 627 InspectorController* ic = inspectorController(); |
628 if (ic) { | 628 if (ic) { |
629 GraphicsContext context(canvas); | 629 GraphicsContext context(canvas); |
630 context.setCertainlyOpaque(false); | 630 context.setCertainlyOpaque(false); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_removeBreakpointCmd) | 722 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_removeBreakpointCmd) |
723 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointsActiveCmd); | 723 || commandName == InspectorBackendDispatcher::commandName(InspectorBacke
ndDispatcher::kDebugger_setBreakpointsActiveCmd); |
724 } | 724 } |
725 | 725 |
726 void WebDevToolsAgent::processPendingMessages() | 726 void WebDevToolsAgent::processPendingMessages() |
727 { | 727 { |
728 PageScriptDebugServer::shared().runPendingTasks(); | 728 PageScriptDebugServer::shared().runPendingTasks(); |
729 } | 729 } |
730 | 730 |
731 } // namespace blink | 731 } // namespace blink |
OLD | NEW |