| Index: ui/events/test/event_generator.cc
|
| diff --git a/ui/events/test/event_generator.cc b/ui/events/test/event_generator.cc
|
| index 05f8e683ebbfd2f39fbae1dc1ff60d8b01c82032..92eef76a5fc4d618939aab9e779ab9349cfbdefd 100644
|
| --- a/ui/events/test/event_generator.cc
|
| +++ b/ui/events/test/event_generator.cc
|
| @@ -41,41 +41,6 @@ namespace {
|
| void DummyCallback(EventType, const gfx::Vector2dF&) {
|
| }
|
|
|
| -// A proxy for TickClock that allows passing the same underlying clock
|
| -// to multiple consumers, each retaining a unique_ptr to their own
|
| -// instance of TickClock proxy.
|
| -class ClonableTickClock : public base::TickClock,
|
| - public base::RefCounted<ClonableTickClock> {
|
| - private:
|
| - class TickClockProxy : public base::TickClock {
|
| - public:
|
| - explicit TickClockProxy(ClonableTickClock* tick_clock)
|
| - : tick_clock_(tick_clock) {}
|
| -
|
| - private:
|
| - base::TimeTicks NowTicks() override { return tick_clock_->NowTicks(); }
|
| -
|
| - scoped_refptr<ClonableTickClock> tick_clock_;
|
| - DISALLOW_COPY_AND_ASSIGN(TickClockProxy);
|
| - };
|
| -
|
| - public:
|
| - explicit ClonableTickClock(std::unique_ptr<base::TickClock> tick_clock)
|
| - : tick_clock_(std::move(tick_clock)) {}
|
| -
|
| - base::TimeTicks NowTicks() override { return tick_clock_->NowTicks(); }
|
| - std::unique_ptr<TickClock> Clone() {
|
| - return WrapUnique(new TickClockProxy(this));
|
| - }
|
| -
|
| - private:
|
| - friend class base::RefCounted<ClonableTickClock>;
|
| - ~ClonableTickClock() override = default;
|
| - std::unique_ptr<TickClock> tick_clock_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ClonableTickClock);
|
| -};
|
| -
|
| class TestTickClock : public base::TickClock {
|
| public:
|
| // Starts off with a clock set to TimeTicks().
|
| @@ -214,20 +179,21 @@ void EventGenerator::MoveMouseToWithNative(const gfx::Point& point_in_host,
|
| ui::ScopedXI2Event xevent;
|
| xevent.InitMotionEvent(point_in_host, point_for_native, flags_);
|
| static_cast<XEvent*>(xevent)->xmotion.time =
|
| - (Now() - base::TimeTicks()).InMilliseconds() & UINT32_MAX;
|
| + (ui::EventTimeForNow() - base::TimeTicks()).InMilliseconds() & UINT32_MAX;
|
| ui::MouseEvent mouseev(xevent);
|
| #elif defined(USE_OZONE)
|
| // Ozone uses the location in native event as a system location.
|
| // Create a fake event with the point in host, which will be passed
|
| // to the non native event, then update the native event with the native
|
| // (root) one.
|
| - std::unique_ptr<ui::MouseEvent> native_event(new ui::MouseEvent(
|
| - ui::ET_MOUSE_MOVED, point_in_host, point_in_host, Now(), flags_, 0));
|
| + std::unique_ptr<ui::MouseEvent> native_event(
|
| + new ui::MouseEvent(ui::ET_MOUSE_MOVED, point_in_host, point_in_host,
|
| + ui::EventTimeForNow(), flags_, 0));
|
| ui::MouseEvent mouseev(native_event.get());
|
| native_event->set_location(point_for_native);
|
| #else
|
| ui::MouseEvent mouseev(ui::ET_MOUSE_MOVED, point_in_host, point_for_native,
|
| - Now(), flags_, 0);
|
| + ui::EventTimeForNow(), flags_, 0);
|
| LOG(FATAL)
|
| << "Generating a native motion event is not supported on this platform";
|
| #endif
|
| @@ -291,9 +257,8 @@ void EventGenerator::PressTouch() {
|
| }
|
|
|
| void EventGenerator::PressTouchId(int touch_id) {
|
| - TestTouchEvent touchev(
|
| - ui::ET_TOUCH_PRESSED, GetLocationInCurrentRoot(), touch_id, flags_,
|
| - Now());
|
| + TestTouchEvent touchev(ui::ET_TOUCH_PRESSED, GetLocationInCurrentRoot(),
|
| + touch_id, flags_, ui::EventTimeForNow());
|
| Dispatch(&touchev);
|
| }
|
|
|
| @@ -303,9 +268,8 @@ void EventGenerator::MoveTouch(const gfx::Point& point) {
|
|
|
| void EventGenerator::MoveTouchId(const gfx::Point& point, int touch_id) {
|
| current_location_ = point;
|
| - TestTouchEvent touchev(
|
| - ui::ET_TOUCH_MOVED, GetLocationInCurrentRoot(), touch_id, flags_,
|
| - Now());
|
| + TestTouchEvent touchev(ui::ET_TOUCH_MOVED, GetLocationInCurrentRoot(),
|
| + touch_id, flags_, ui::EventTimeForNow());
|
| Dispatch(&touchev);
|
|
|
| if (!grab_)
|
| @@ -317,9 +281,8 @@ void EventGenerator::ReleaseTouch() {
|
| }
|
|
|
| void EventGenerator::ReleaseTouchId(int touch_id) {
|
| - TestTouchEvent touchev(
|
| - ui::ET_TOUCH_RELEASED, GetLocationInCurrentRoot(), touch_id, flags_,
|
| - Now());
|
| + TestTouchEvent touchev(ui::ET_TOUCH_RELEASED, GetLocationInCurrentRoot(),
|
| + touch_id, flags_, ui::EventTimeForNow());
|
| Dispatch(&touchev);
|
| }
|
|
|
| @@ -336,16 +299,14 @@ void EventGenerator::PressMoveAndReleaseTouchToCenterOf(EventTarget* window) {
|
| void EventGenerator::GestureEdgeSwipe() {
|
| GestureEventDetails details(ET_GESTURE_WIN8_EDGE_SWIPE);
|
| details.set_device_type(GestureDeviceType::DEVICE_TOUCHSCREEN);
|
| - GestureEvent gesture(0, 0, 0, Now(), details);
|
| + GestureEvent gesture(0, 0, 0, ui::EventTimeForNow(), details);
|
| Dispatch(&gesture);
|
| }
|
|
|
| void EventGenerator::GestureTapAt(const gfx::Point& location) {
|
| const int kTouchId = 2;
|
| - ui::TouchEvent press(ui::ET_TOUCH_PRESSED,
|
| - location,
|
| - kTouchId,
|
| - Now());
|
| + ui::TouchEvent press(ui::ET_TOUCH_PRESSED, location, kTouchId,
|
| + ui::EventTimeForNow());
|
| Dispatch(&press);
|
|
|
| ui::TouchEvent release(
|
| @@ -356,10 +317,8 @@ void EventGenerator::GestureTapAt(const gfx::Point& location) {
|
|
|
| void EventGenerator::GestureTapDownAndUp(const gfx::Point& location) {
|
| const int kTouchId = 3;
|
| - ui::TouchEvent press(ui::ET_TOUCH_PRESSED,
|
| - location,
|
| - kTouchId,
|
| - Now());
|
| + ui::TouchEvent press(ui::ET_TOUCH_PRESSED, location, kTouchId,
|
| + ui::EventTimeForNow());
|
| Dispatch(&press);
|
|
|
| ui::TouchEvent release(
|
| @@ -393,7 +352,7 @@ void EventGenerator::GestureScrollSequenceWithCallback(
|
| int steps,
|
| const ScrollStepCallback& callback) {
|
| const int kTouchId = 5;
|
| - base::TimeTicks timestamp = Now();
|
| + base::TimeTicks timestamp = ui::EventTimeForNow();
|
| ui::TouchEvent press(ui::ET_TOUCH_PRESSED, start, 0, kTouchId,
|
| timestamp, 5.0f, 5.0f, 0.0f, 1.0f);
|
| Dispatch(&press);
|
| @@ -453,7 +412,7 @@ void EventGenerator::GestureMultiFingerScrollWithDelays(
|
| points[i] = start[i];
|
| }
|
|
|
| - base::TimeTicks press_time_first = Now();
|
| + base::TimeTicks press_time_first = ui::EventTimeForNow();
|
| base::TimeTicks press_time[kMaxTouchPoints];
|
| bool pressed[kMaxTouchPoints];
|
| for (int i = 0; i < count; ++i) {
|
| @@ -505,7 +464,7 @@ void EventGenerator::ScrollSequence(const gfx::Point& start,
|
| float y_offset,
|
| int steps,
|
| int num_fingers) {
|
| - base::TimeTicks timestamp = Now();
|
| + base::TimeTicks timestamp = ui::EventTimeForNow();
|
| ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL,
|
| start,
|
| timestamp,
|
| @@ -544,7 +503,7 @@ void EventGenerator::ScrollSequence(const gfx::Point& start,
|
| const std::vector<gfx::PointF>& offsets,
|
| int num_fingers) {
|
| size_t steps = offsets.size();
|
| - base::TimeTicks timestamp = Now();
|
| + base::TimeTicks timestamp = ui::EventTimeForNow();
|
| ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL,
|
| start,
|
| timestamp,
|
| @@ -588,24 +547,9 @@ void EventGenerator::Dispatch(ui::Event* event) {
|
| DoDispatchEvent(event, async_);
|
| }
|
|
|
| -void EventGenerator::SetTickClock(std::unique_ptr<base::TickClock> tick_clock) {
|
| - scoped_refptr<ClonableTickClock> clonable =
|
| - new ClonableTickClock(std::move(tick_clock));
|
| - ui::SetEventTickClockForTesting(clonable->Clone());
|
| - tick_clock_ = clonable->Clone();
|
| -}
|
| -
|
| -base::TimeTicks EventGenerator::Now() {
|
| - // This is the same as what EventTimeForNow() does, but here we do it
|
| - // with a tick clock that can be replaced with a simulated clock for tests.
|
| - // TODO(majidvp): The tick clock used by |ui::EventTimeForNow()| is now
|
| - // mockable so we no longer need this.
|
| - return tick_clock_->NowTicks();
|
| -}
|
| -
|
| void EventGenerator::Init(gfx::NativeWindow root_window,
|
| gfx::NativeWindow window_context) {
|
| - SetTickClock(WrapUnique(new TestTickClock()));
|
| + ui::SetEventTickClockForTesting(WrapUnique(new TestTickClock()));
|
| delegate()->SetContext(this, root_window, window_context);
|
| if (window_context)
|
| current_location_ = delegate()->CenterOfWindow(window_context);
|
| @@ -630,7 +574,8 @@ void EventGenerator::DispatchKeyEvent(bool is_press,
|
| }
|
| MSG native_event =
|
| { NULL, (is_press ? key_press : WM_KEYUP), key_code, 0 };
|
| - native_event.time = (Now() - base::TimeTicks()).InMicroseconds();
|
| + native_event.time =
|
| + (ui::EventTimeForNow() - base::TimeTicks()).InMicroseconds();
|
| ui::KeyEvent keyev(native_event, flags);
|
| #elif defined(USE_X11)
|
| ui::ScopedXI2Event xevent;
|
| @@ -638,7 +583,7 @@ void EventGenerator::DispatchKeyEvent(bool is_press,
|
| key_code,
|
| flags);
|
| static_cast<XEvent*>(xevent)->xkey.time =
|
| - (Now() - base::TimeTicks()).InMilliseconds() & UINT32_MAX;
|
| + (ui::EventTimeForNow() - base::TimeTicks()).InMilliseconds() & UINT32_MAX;
|
| ui::KeyEvent keyev(xevent);
|
| #else
|
| ui::EventType type = is_press ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED;
|
|
|