Index: content/browser/renderer_host/input/synthetic_gesture_controller.cc |
diff --git a/content/browser/renderer_host/input/synthetic_gesture_controller.cc b/content/browser/renderer_host/input/synthetic_gesture_controller.cc |
index 51c28aa406042f57fed6562efd9c550582f7a982..9c5fdeaa7aa8ed6a4d47a17b5630378aed63b0f3 100644 |
--- a/content/browser/renderer_host/input/synthetic_gesture_controller.cc |
+++ b/content/browser/renderer_host/input/synthetic_gesture_controller.cc |
@@ -39,9 +39,17 @@ void SyntheticGestureController::QueueSyntheticGesture( |
} |
void SyntheticGestureController::OnBeginFrame() { |
- // TODO(sad): Instead of dispatching the events immediately, dispatch after an |
- // offset. |
- DispatchNextEvent(); |
+ constexpr base::TimeDelta kSynthesizedDispatchDelay = |
+ base::TimeDelta::FromMilliseconds(2); |
+ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
+ FROM_HERE, |
+ base::BindOnce( |
+ [](base::WeakPtr<SyntheticGestureController> weak_ptr) { |
+ if (weak_ptr) |
+ weak_ptr->DispatchNextEvent(base::TimeTicks::Now()); |
+ }, |
+ weak_ptr_factory_.GetWeakPtr()), |
+ kSynthesizedDispatchDelay); |
} |
bool SyntheticGestureController::DispatchNextEvent(base::TimeTicks timestamp) { |