Index: ui/events/test/event_generator.cc |
diff --git a/ui/events/test/event_generator.cc b/ui/events/test/event_generator.cc |
index f743ba18408f9b98626ff2859a806d2a53225577..ae3bcb6d667a786c82a7e55a47d290835d3c1898 100644 |
--- a/ui/events/test/event_generator.cc |
+++ b/ui/events/test/event_generator.cc |
@@ -9,7 +9,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/single_thread_task_runner.h" |
#include "base/thread_task_runner_handle.h" |
-#include "base/time/default_tick_clock.h" |
+#include "base/time/tick_clock.h" |
#include "ui/events/event.h" |
#include "ui/events/event_source.h" |
#include "ui/events/event_utils.h" |
@@ -32,6 +32,21 @@ namespace { |
void DummyCallback(EventType, const gfx::Vector2dF&) { |
} |
+class TestTickClock : public base::TickClock { |
+ public: |
+ // Starts off with a clock set to TimeTicks(). |
+ TestTickClock() {} |
+ |
+ base::TimeTicks NowTicks() override { |
+ return base::TimeTicks::FromInternalValue(ticks_++ * 1000); |
+ } |
+ |
+ private: |
+ int64 ticks_ = 1; |
sadrul
2015/03/19 10:36:53
Oh, does the style guide allow this?
oshima
2015/03/19 16:41:57
Yep, see "Non-Static Class Member Initializers" in
|
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestTickClock); |
+}; |
+ |
class TestKeyEvent : public ui::KeyEvent { |
public: |
TestKeyEvent(const base::NativeEvent& native_event, int flags) |
@@ -67,7 +82,7 @@ EventGenerator::EventGenerator(gfx::NativeWindow root_window) |
grab_(false), |
async_(false), |
targeting_application_(false), |
- tick_clock_(new base::DefaultTickClock()) { |
+ tick_clock_(new TestTickClock()) { |
Init(root_window, NULL); |
} |
@@ -79,7 +94,7 @@ EventGenerator::EventGenerator(gfx::NativeWindow root_window, |
grab_(false), |
async_(false), |
targeting_application_(false), |
- tick_clock_(new base::DefaultTickClock()) { |
+ tick_clock_(new TestTickClock()) { |
Init(root_window, NULL); |
} |
@@ -90,7 +105,7 @@ EventGenerator::EventGenerator(gfx::NativeWindow root_window, |
grab_(false), |
async_(false), |
targeting_application_(false), |
- tick_clock_(new base::DefaultTickClock()) { |
+ tick_clock_(new TestTickClock()) { |
Init(root_window, window); |
} |
@@ -101,7 +116,7 @@ EventGenerator::EventGenerator(EventGeneratorDelegate* delegate) |
grab_(false), |
async_(false), |
targeting_application_(false), |
- tick_clock_(new base::DefaultTickClock()) { |
+ tick_clock_(new TestTickClock()) { |
Init(NULL, NULL); |
} |
@@ -537,12 +552,14 @@ void EventGenerator::DispatchKeyEvent(bool is_press, |
} |
MSG native_event = |
{ NULL, (is_press ? key_press : WM_KEYUP), key_code, 0 }; |
+ native_event.time = Now().InMicroseconds(); |
TestKeyEvent keyev(native_event, flags); |
#elif defined(USE_X11) |
ui::ScopedXI2Event xevent; |
xevent.InitKeyEvent(is_press ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED, |
key_code, |
flags); |
+ static_cast<XEvent*>(xevent)->xkey.time = Now().InMicroseconds(); |
ui::KeyEvent keyev(xevent); |
#else |
ui::EventType type = is_press ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED; |