Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(682)

Side by Side Diff: third_party/WebKit/Source/core/input/GestureManager.cpp

Issue 2675793005: Track constant InputDeviceCapabilities objects per-window. (Closed)
Patch Set: test tidying Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "core/input/GestureManager.h" 5 #include "core/input/GestureManager.h"
6 6
7 #include "core/dom/Document.h" 7 #include "core/dom/Document.h"
8 #include "core/dom/DocumentUserGestureToken.h" 8 #include "core/dom/DocumentUserGestureToken.h"
9 #include "core/editing/SelectionController.h" 9 #include "core/editing/SelectionController.h"
10 #include "core/events/GestureEvent.h" 10 #include "core/events/GestureEvent.h"
11 #include "core/frame/FrameHost.h" 11 #include "core/frame/FrameHost.h"
12 #include "core/frame/FrameView.h" 12 #include "core/frame/FrameView.h"
13 #include "core/frame/Settings.h" 13 #include "core/frame/Settings.h"
14 #include "core/frame/VisualViewport.h" 14 #include "core/frame/VisualViewport.h"
15 #include "core/input/EventHandler.h" 15 #include "core/input/EventHandler.h"
16 #include "core/input/EventHandlingUtil.h" 16 #include "core/input/EventHandlingUtil.h"
17 #include "core/input/InputDeviceCapabilities.h"
17 #include "core/page/ChromeClient.h" 18 #include "core/page/ChromeClient.h"
18 #include "core/page/Page.h" 19 #include "core/page/Page.h"
19 20
20 namespace blink { 21 namespace blink {
21 22
22 GestureManager::GestureManager(LocalFrame& frame, 23 GestureManager::GestureManager(LocalFrame& frame,
23 ScrollManager& scrollManager, 24 ScrollManager& scrollManager,
24 MouseEventManager& mouseEventManager, 25 MouseEventManager& mouseEventManager,
25 PointerEventManager& pointerEventManager, 26 PointerEventManager& pointerEventManager,
26 SelectionController& selectionController) 27 SelectionController& selectionController)
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 WebInputEventResult mouseDownEventResult = 207 WebInputEventResult mouseDownEventResult =
207 WebInputEventResult::HandledSuppressed; 208 WebInputEventResult::HandledSuppressed;
208 if (!m_suppressMouseEventsFromGestures) { 209 if (!m_suppressMouseEventsFromGestures) {
209 m_mouseEventManager->setClickCount(gestureEvent.tapCount()); 210 m_mouseEventManager->setClickCount(gestureEvent.tapCount());
210 211
211 mouseDownEventResult = 212 mouseDownEventResult =
212 m_mouseEventManager->setMousePositionAndDispatchMouseEvent( 213 m_mouseEventManager->setMousePositionAndDispatchMouseEvent(
213 currentHitTest.innerNode(), currentHitTest.canvasRegionId(), 214 currentHitTest.innerNode(), currentHitTest.canvasRegionId(),
214 EventTypeNames::mousedown, fakeMouseDown); 215 EventTypeNames::mousedown, fakeMouseDown);
215 m_selectionController->initializeSelectionState(); 216 m_selectionController->initializeSelectionState();
216 if (mouseDownEventResult == WebInputEventResult::NotHandled) 217 if (mouseDownEventResult == WebInputEventResult::NotHandled) {
217 mouseDownEventResult = m_mouseEventManager->handleMouseFocus( 218 mouseDownEventResult = m_mouseEventManager->handleMouseFocus(
218 currentHitTest, 219 currentHitTest, m_frame->document()
219 InputDeviceCapabilities::firesTouchEventsSourceCapabilities()); 220 ->domWindow()
220 if (mouseDownEventResult == WebInputEventResult::NotHandled) 221 ->getInputDeviceCapabilities()
222 ->firesTouchEvents(true));
223 }
224 if (mouseDownEventResult == WebInputEventResult::NotHandled) {
221 mouseDownEventResult = m_mouseEventManager->handleMousePressEvent( 225 mouseDownEventResult = m_mouseEventManager->handleMousePressEvent(
222 MouseEventWithHitTestResults(fakeMouseDown, currentHitTest)); 226 MouseEventWithHitTestResults(fakeMouseDown, currentHitTest));
227 }
223 } 228 }
224 229
225 if (currentHitTest.innerNode()) { 230 if (currentHitTest.innerNode()) {
226 DCHECK(gestureEvent.type() == WebInputEvent::GestureTap); 231 DCHECK(gestureEvent.type() == WebInputEvent::GestureTap);
227 HitTestResult result = currentHitTest; 232 HitTestResult result = currentHitTest;
228 result.setToShadowHostIfInUserAgentShadowRoot(); 233 result.setToShadowHostIfInUserAgentShadowRoot();
229 m_frame->chromeClient().onMouseDown(result.innerNode()); 234 m_frame->chromeClient().onMouseDown(result.innerNode());
230 } 235 }
231 236
232 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. 237 // FIXME: Use a hit-test cache to avoid unnecessary hit tests.
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 WebInputEvent::IsCompatibilityEventForTouch), 391 WebInputEvent::IsCompatibilityEventForTouch),
387 gestureEvent.timeStampSeconds()); 392 gestureEvent.timeStampSeconds());
388 393
389 if (!m_suppressMouseEventsFromGestures && m_frame->view()) { 394 if (!m_suppressMouseEventsFromGestures && m_frame->view()) {
390 HitTestRequest request(HitTestRequest::Active); 395 HitTestRequest request(HitTestRequest::Active);
391 LayoutPoint documentPoint = m_frame->view()->rootFrameToContents( 396 LayoutPoint documentPoint = m_frame->view()->rootFrameToContents(
392 flooredIntPoint(targetedEvent.event().positionInRootFrame())); 397 flooredIntPoint(targetedEvent.event().positionInRootFrame()));
393 MouseEventWithHitTestResults mev = 398 MouseEventWithHitTestResults mev =
394 m_frame->document()->performMouseEventHitTest(request, documentPoint, 399 m_frame->document()->performMouseEventHitTest(request, documentPoint,
395 mouseEvent); 400 mouseEvent);
396 m_mouseEventManager->handleMouseFocus( 401 m_mouseEventManager->handleMouseFocus(mev.hitTestResult(),
397 mev.hitTestResult(), 402 m_frame->document()
398 InputDeviceCapabilities::firesTouchEventsSourceCapabilities()); 403 ->domWindow()
404 ->getInputDeviceCapabilities()
405 ->firesTouchEvents(true));
399 } 406 }
400 return m_frame->eventHandler().sendContextMenuEvent(mouseEvent); 407 return m_frame->eventHandler().sendContextMenuEvent(mouseEvent);
401 } 408 }
402 409
403 WebInputEventResult GestureManager::handleGestureShowPress() { 410 WebInputEventResult GestureManager::handleGestureShowPress() {
404 m_lastShowPressTimestamp = TimeTicks::Now(); 411 m_lastShowPressTimestamp = TimeTicks::Now();
405 412
406 FrameView* view = m_frame->view(); 413 FrameView* view = m_frame->view();
407 if (!view) 414 if (!view)
408 return WebInputEventResult::NotHandled; 415 return WebInputEventResult::NotHandled;
(...skipping 16 matching lines...) Expand all
425 432
426 return &m_frame->page()->frameHost(); 433 return &m_frame->page()->frameHost();
427 } 434 }
428 435
429 WTF::Optional<WTF::TimeTicks> GestureManager::getLastShowPressTimestamp() 436 WTF::Optional<WTF::TimeTicks> GestureManager::getLastShowPressTimestamp()
430 const { 437 const {
431 return m_lastShowPressTimestamp; 438 return m_lastShowPressTimestamp;
432 } 439 }
433 440
434 } // namespace blink 441 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/input/EventHandler.cpp ('k') | third_party/WebKit/Source/core/input/InputDeviceCapabilities.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698