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

Unified Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 2514733003: Move EventHandler timers to per-frame task queues. (Closed)
Patch Set: Remove stray brace Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/input/EventHandler.cpp
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp
index 5f190e34632e3af7be1801d3fd9989d948fbce0d..aa3d5c76e5e3137a9e1ce84e27f3ef0b878912fb 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -35,6 +35,7 @@
#include "core/dom/DOMNodeIds.h"
#include "core/dom/Document.h"
#include "core/dom/DocumentUserGestureToken.h"
+#include "core/dom/TaskRunnerHelper.h"
#include "core/dom/TouchList.h"
#include "core/dom/shadow/FlatTreeTraversal.h"
#include "core/dom/shadow/ShadowRoot.h"
@@ -160,24 +161,31 @@ class OptionalCursor {
Cursor m_cursor;
};
-EventHandler::EventHandler(LocalFrame* frame)
+EventHandler::EventHandler(LocalFrame& frame)
: m_frame(frame),
- m_selectionController(SelectionController::create(*frame)),
- m_hoverTimer(this, &EventHandler::hoverTimerFired),
- m_cursorUpdateTimer(this, &EventHandler::cursorUpdateTimerFired),
+ m_selectionController(SelectionController::create(frame)),
+ m_hoverTimer(TaskRunnerHelper::get(TaskType::UserInteraction, &frame),
+ this,
+ &EventHandler::hoverTimerFired),
+ m_cursorUpdateTimer(TaskRunnerHelper::get(TaskType::Internal, &frame),
+ this,
+ &EventHandler::cursorUpdateTimerFired),
m_eventHandlerWillResetCapturingMouseEventsNode(0),
m_shouldOnlyFireDragOverEvent(false),
m_scrollManager(new ScrollManager(frame)),
- m_mouseEventManager(new MouseEventManager(frame, m_scrollManager)),
- m_keyboardEventManager(new KeyboardEventManager(frame, m_scrollManager)),
+ m_mouseEventManager(new MouseEventManager(frame, *m_scrollManager)),
+ m_keyboardEventManager(new KeyboardEventManager(frame, *m_scrollManager)),
m_pointerEventManager(
- new PointerEventManager(frame, m_mouseEventManager)),
+ new PointerEventManager(frame, *m_mouseEventManager)),
m_gestureManager(new GestureManager(frame,
- m_scrollManager,
- m_mouseEventManager,
- m_pointerEventManager,
- m_selectionController)),
- m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired) {}
+ *m_scrollManager,
+ *m_mouseEventManager,
+ *m_pointerEventManager,
+ *m_selectionController)),
+ m_activeIntervalTimer(
+ TaskRunnerHelper::get(TaskType::UserInteraction, &frame),
+ this,
+ &EventHandler::activeIntervalTimerFired) {}
DEFINE_TRACE(EventHandler) {
visitor->trace(m_frame);
@@ -1668,6 +1676,7 @@ GestureEventWithHitTestResults EventHandler::targetGestureEvent(
if (shouldKeepActiveForMinInterval) {
m_lastDeferredTapElement =
eventWithHitTestResults.hitTestResult().innerElement();
+ // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this.
m_activeIntervalTimer.startOneShot(minimumActiveInterval - activeInterval,
BLINK_FROM_HERE);
}
@@ -1878,6 +1887,7 @@ WebInputEventResult EventHandler::sendContextMenuEventForKey(
}
void EventHandler::scheduleHoverStateUpdate() {
+ // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this.
if (!m_hoverTimer.isActive())
m_hoverTimer.startOneShot(0, BLINK_FROM_HERE);
}
@@ -1887,6 +1897,7 @@ void EventHandler::scheduleCursorUpdate() {
// timer competing which eachother (since there's only one mouse cursor).
ASSERT(m_frame == m_frame->localFrameRoot());
+ // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this.
if (!m_cursorUpdateTimer.isActive())
m_cursorUpdateTimer.startOneShot(cursorUpdateInterval, BLINK_FROM_HERE);
}
@@ -1913,7 +1924,6 @@ void EventHandler::resizeScrollableAreaDestroyed() {
void EventHandler::hoverTimerFired(TimerBase*) {
TRACE_EVENT0("input", "EventHandler::hoverTimerFired");
- m_hoverTimer.stop();
ASSERT(m_frame);
ASSERT(m_frame->document());
@@ -1933,7 +1943,6 @@ void EventHandler::hoverTimerFired(TimerBase*) {
void EventHandler::activeIntervalTimerFired(TimerBase*) {
TRACE_EVENT0("input", "EventHandler::activeIntervalTimerFired");
- m_activeIntervalTimer.stop();
if (m_frame && m_frame->document() && m_lastDeferredTapElement) {
// FIXME: Enable condition when http://crbug.com/226842 lands
« no previous file with comments | « third_party/WebKit/Source/core/input/EventHandler.h ('k') | third_party/WebKit/Source/core/input/GestureManager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698