Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 6 * | 6 * |
| 7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
| 8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
| 9 * are met: | 9 * are met: |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 28 | 28 |
| 29 #include "core/input/EventHandler.h" | 29 #include "core/input/EventHandler.h" |
| 30 | 30 |
| 31 #include "bindings/core/v8/ExceptionStatePlaceholder.h" | 31 #include "bindings/core/v8/ExceptionStatePlaceholder.h" |
| 32 #include "core/HTMLNames.h" | 32 #include "core/HTMLNames.h" |
| 33 #include "core/InputTypeNames.h" | 33 #include "core/InputTypeNames.h" |
| 34 #include "core/clipboard/DataTransfer.h" | 34 #include "core/clipboard/DataTransfer.h" |
| 35 #include "core/dom/DOMNodeIds.h" | 35 #include "core/dom/DOMNodeIds.h" |
| 36 #include "core/dom/Document.h" | 36 #include "core/dom/Document.h" |
| 37 #include "core/dom/DocumentUserGestureToken.h" | 37 #include "core/dom/DocumentUserGestureToken.h" |
| 38 #include "core/dom/TaskRunnerHelper.h" | |
| 38 #include "core/dom/TouchList.h" | 39 #include "core/dom/TouchList.h" |
| 39 #include "core/dom/shadow/FlatTreeTraversal.h" | 40 #include "core/dom/shadow/FlatTreeTraversal.h" |
| 40 #include "core/dom/shadow/ShadowRoot.h" | 41 #include "core/dom/shadow/ShadowRoot.h" |
| 41 #include "core/editing/EditingUtilities.h" | 42 #include "core/editing/EditingUtilities.h" |
| 42 #include "core/editing/Editor.h" | 43 #include "core/editing/Editor.h" |
| 43 #include "core/editing/FrameSelection.h" | 44 #include "core/editing/FrameSelection.h" |
| 44 #include "core/editing/SelectionController.h" | 45 #include "core/editing/SelectionController.h" |
| 45 #include "core/events/EventPath.h" | 46 #include "core/events/EventPath.h" |
| 46 #include "core/events/GestureEvent.h" | 47 #include "core/events/GestureEvent.h" |
| 47 #include "core/events/KeyboardEvent.h" | 48 #include "core/events/KeyboardEvent.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 153 const Cursor& cursor() const { | 154 const Cursor& cursor() const { |
| 154 ASSERT(m_isCursorChange); | 155 ASSERT(m_isCursorChange); |
| 155 return m_cursor; | 156 return m_cursor; |
| 156 } | 157 } |
| 157 | 158 |
| 158 private: | 159 private: |
| 159 bool m_isCursorChange; | 160 bool m_isCursorChange; |
| 160 Cursor m_cursor; | 161 Cursor m_cursor; |
| 161 }; | 162 }; |
| 162 | 163 |
| 163 EventHandler::EventHandler(LocalFrame* frame) | 164 EventHandler::EventHandler(LocalFrame& frame) |
| 164 : m_frame(frame), | 165 : m_frame(frame), |
| 165 m_selectionController(SelectionController::create(*frame)), | 166 m_selectionController(SelectionController::create(frame)), |
| 166 m_hoverTimer(this, &EventHandler::hoverTimerFired), | 167 m_hoverTimer(TaskRunnerHelper::get(TaskType::UserInteraction, &frame), |
|
dcheng
2016/11/18 06:11:37
The spec doesn't say that this must happen on the
| |
| 167 m_cursorUpdateTimer(this, &EventHandler::cursorUpdateTimerFired), | 168 this, |
| 169 &EventHandler::hoverTimerFired), | |
| 170 m_cursorUpdateTimer(TaskRunnerHelper::get(TaskType::Internal, &frame), | |
|
dcheng
2016/11/18 06:11:37
On the other hand, cursor updates aren't really in
| |
| 171 this, | |
| 172 &EventHandler::cursorUpdateTimerFired), | |
| 168 m_eventHandlerWillResetCapturingMouseEventsNode(0), | 173 m_eventHandlerWillResetCapturingMouseEventsNode(0), |
| 169 m_shouldOnlyFireDragOverEvent(false), | 174 m_shouldOnlyFireDragOverEvent(false), |
| 170 m_scrollManager(new ScrollManager(frame)), | 175 m_scrollManager(new ScrollManager(frame)), |
| 171 m_mouseEventManager(new MouseEventManager(frame, m_scrollManager)), | 176 m_mouseEventManager(new MouseEventManager(frame, *m_scrollManager)), |
| 172 m_keyboardEventManager(new KeyboardEventManager(frame, m_scrollManager)), | 177 m_keyboardEventManager(new KeyboardEventManager(frame, *m_scrollManager)), |
| 173 m_pointerEventManager( | 178 m_pointerEventManager( |
| 174 new PointerEventManager(frame, m_mouseEventManager)), | 179 new PointerEventManager(frame, *m_mouseEventManager)), |
| 175 m_gestureManager(new GestureManager(frame, | 180 m_gestureManager(new GestureManager(frame, |
| 176 m_scrollManager, | 181 *m_scrollManager, |
| 177 m_mouseEventManager, | 182 *m_mouseEventManager, |
| 178 m_pointerEventManager, | 183 *m_pointerEventManager, |
| 179 m_selectionController)), | 184 *m_selectionController)), |
| 180 m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired) {} | 185 m_activeIntervalTimer( |
| 186 TaskRunnerHelper::get(TaskType::UserInteraction, &frame), | |
|
dcheng
2016/11/18 06:11:37
This is used when handling gesture events, so for
| |
| 187 this, | |
| 188 &EventHandler::activeIntervalTimerFired) {} | |
| 181 | 189 |
| 182 DEFINE_TRACE(EventHandler) { | 190 DEFINE_TRACE(EventHandler) { |
| 183 visitor->trace(m_frame); | 191 visitor->trace(m_frame); |
| 184 visitor->trace(m_selectionController); | 192 visitor->trace(m_selectionController); |
| 185 visitor->trace(m_capturingMouseEventsNode); | 193 visitor->trace(m_capturingMouseEventsNode); |
| 186 visitor->trace(m_lastMouseMoveEventSubframe); | 194 visitor->trace(m_lastMouseMoveEventSubframe); |
| 187 visitor->trace(m_lastScrollbarUnderMouse); | 195 visitor->trace(m_lastScrollbarUnderMouse); |
| 188 visitor->trace(m_dragTarget); | 196 visitor->trace(m_dragTarget); |
| 189 visitor->trace(m_frameSetBeingResized); | 197 visitor->trace(m_frameSetBeingResized); |
| 190 visitor->trace(m_scrollManager); | 198 visitor->trace(m_scrollManager); |
| (...skipping 1715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1906 void EventHandler::setResizingFrameSet(HTMLFrameSetElement* frameSet) { | 1914 void EventHandler::setResizingFrameSet(HTMLFrameSetElement* frameSet) { |
| 1907 m_frameSetBeingResized = frameSet; | 1915 m_frameSetBeingResized = frameSet; |
| 1908 } | 1916 } |
| 1909 | 1917 |
| 1910 void EventHandler::resizeScrollableAreaDestroyed() { | 1918 void EventHandler::resizeScrollableAreaDestroyed() { |
| 1911 m_scrollManager->clearResizeScrollableArea(true); | 1919 m_scrollManager->clearResizeScrollableArea(true); |
| 1912 } | 1920 } |
| 1913 | 1921 |
| 1914 void EventHandler::hoverTimerFired(TimerBase*) { | 1922 void EventHandler::hoverTimerFired(TimerBase*) { |
| 1915 TRACE_EVENT0("input", "EventHandler::hoverTimerFired"); | 1923 TRACE_EVENT0("input", "EventHandler::hoverTimerFired"); |
| 1916 m_hoverTimer.stop(); | |
| 1917 | 1924 |
| 1918 ASSERT(m_frame); | 1925 ASSERT(m_frame); |
| 1919 ASSERT(m_frame->document()); | 1926 ASSERT(m_frame->document()); |
| 1920 | 1927 |
| 1921 if (LayoutViewItem layoutItem = m_frame->contentLayoutItem()) { | 1928 if (LayoutViewItem layoutItem = m_frame->contentLayoutItem()) { |
| 1922 if (FrameView* view = m_frame->view()) { | 1929 if (FrameView* view = m_frame->view()) { |
| 1923 HitTestRequest request(HitTestRequest::Move); | 1930 HitTestRequest request(HitTestRequest::Move); |
| 1924 HitTestResult result(request, | 1931 HitTestResult result(request, |
| 1925 view->rootFrameToContents( | 1932 view->rootFrameToContents( |
| 1926 m_mouseEventManager->lastKnownMousePosition())); | 1933 m_mouseEventManager->lastKnownMousePosition())); |
| 1927 layoutItem.hitTest(result); | 1934 layoutItem.hitTest(result); |
| 1928 m_frame->document()->updateHoverActiveState( | 1935 m_frame->document()->updateHoverActiveState( |
| 1929 request, result.innerElement(), result.scrollbar()); | 1936 request, result.innerElement(), result.scrollbar()); |
| 1930 } | 1937 } |
| 1931 } | 1938 } |
| 1932 } | 1939 } |
| 1933 | 1940 |
| 1934 void EventHandler::activeIntervalTimerFired(TimerBase*) { | 1941 void EventHandler::activeIntervalTimerFired(TimerBase*) { |
| 1935 TRACE_EVENT0("input", "EventHandler::activeIntervalTimerFired"); | 1942 TRACE_EVENT0("input", "EventHandler::activeIntervalTimerFired"); |
| 1936 m_activeIntervalTimer.stop(); | |
| 1937 | 1943 |
| 1938 if (m_frame && m_frame->document() && m_lastDeferredTapElement) { | 1944 if (m_frame && m_frame->document() && m_lastDeferredTapElement) { |
| 1939 // FIXME: Enable condition when http://crbug.com/226842 lands | 1945 // FIXME: Enable condition when http://crbug.com/226842 lands |
| 1940 // m_lastDeferredTapElement.get() == m_frame->document()->activeElement() | 1946 // m_lastDeferredTapElement.get() == m_frame->document()->activeElement() |
| 1941 HitTestRequest request(HitTestRequest::TouchEvent | | 1947 HitTestRequest request(HitTestRequest::TouchEvent | |
| 1942 HitTestRequest::Release); | 1948 HitTestRequest::Release); |
| 1943 m_frame->document()->updateHoverActiveState( | 1949 m_frame->document()->updateHoverActiveState( |
| 1944 request, m_lastDeferredTapElement.get(), false); | 1950 request, m_lastDeferredTapElement.get(), false); |
| 1945 } | 1951 } |
| 1946 m_lastDeferredTapElement = nullptr; | 1952 m_lastDeferredTapElement = nullptr; |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2102 } | 2108 } |
| 2103 | 2109 |
| 2104 FrameHost* EventHandler::frameHost() const { | 2110 FrameHost* EventHandler::frameHost() const { |
| 2105 if (!m_frame->page()) | 2111 if (!m_frame->page()) |
| 2106 return nullptr; | 2112 return nullptr; |
| 2107 | 2113 |
| 2108 return &m_frame->page()->frameHost(); | 2114 return &m_frame->page()->frameHost(); |
| 2109 } | 2115 } |
| 2110 | 2116 |
| 2111 } // namespace blink | 2117 } // namespace blink |
| OLD | NEW |