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

Side by Side Diff: mojo/converters/blink/blink_input_events_type_converters.cc

Issue 1975533002: Change ui::Event::time_stamp from TimeDelta to TimeTicks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/converters/blink/blink_input_events_type_converters.h" 5 #include "mojo/converters/blink/blink_input_events_type_converters.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "third_party/WebKit/public/web/WebInputEvent.h" 11 #include "third_party/WebKit/public/web/WebInputEvent.h"
12 #include "ui/events/base_event_utils.h" 12 #include "ui/events/base_event_utils.h"
13 #include "ui/events/event.h" 13 #include "ui/events/event.h"
14 #include "ui/events/keycodes/dom/keycode_converter.h" 14 #include "ui/events/keycodes/dom/keycode_converter.h"
15 15
16 namespace mojo { 16 namespace mojo {
17 namespace { 17 namespace {
18 18
19 double EventTimeToWebEventTime(const ui::Event& event) { 19 // TODO(majidvp): remove this and directly use ui::EventFlagsToWebEventModifiers
20 return base::TimeDelta::FromInternalValue(
21 event.time_stamp().ToInternalValue())
22 .InSecondsF();
23 }
24
25 int EventFlagsToWebEventModifiers(int flags) { 20 int EventFlagsToWebEventModifiers(int flags) {
26 int modifiers = 0; 21 int modifiers = 0;
27 22
28 if (flags & ui::EF_SHIFT_DOWN) 23 if (flags & ui::EF_SHIFT_DOWN)
29 modifiers |= blink::WebInputEvent::ShiftKey; 24 modifiers |= blink::WebInputEvent::ShiftKey;
30 if (flags & ui::EF_CONTROL_DOWN) 25 if (flags & ui::EF_CONTROL_DOWN)
31 modifiers |= blink::WebInputEvent::ControlKey; 26 modifiers |= blink::WebInputEvent::ControlKey;
32 if (flags & ui::EF_ALT_DOWN) 27 if (flags & ui::EF_ALT_DOWN)
33 modifiers |= blink::WebInputEvent::AltKey; 28 modifiers |= blink::WebInputEvent::AltKey;
34 // TODO(beng): MetaKey/META_MASK 29 // TODO(beng): MetaKey/META_MASK
35 if (flags & ui::EF_LEFT_MOUSE_BUTTON) 30 if (flags & ui::EF_LEFT_MOUSE_BUTTON)
36 modifiers |= blink::WebInputEvent::LeftButtonDown; 31 modifiers |= blink::WebInputEvent::LeftButtonDown;
37 if (flags & ui::EF_MIDDLE_MOUSE_BUTTON) 32 if (flags & ui::EF_MIDDLE_MOUSE_BUTTON)
38 modifiers |= blink::WebInputEvent::MiddleButtonDown; 33 modifiers |= blink::WebInputEvent::MiddleButtonDown;
39 if (flags & ui::EF_RIGHT_MOUSE_BUTTON) 34 if (flags & ui::EF_RIGHT_MOUSE_BUTTON)
40 modifiers |= blink::WebInputEvent::RightButtonDown; 35 modifiers |= blink::WebInputEvent::RightButtonDown;
41 if (flags & ui::EF_CAPS_LOCK_ON) 36 if (flags & ui::EF_CAPS_LOCK_ON)
42 modifiers |= blink::WebInputEvent::CapsLockOn; 37 modifiers |= blink::WebInputEvent::CapsLockOn;
43 return modifiers; 38 return modifiers;
44 } 39 }
45 40
41 // TODO(majidvp): remove this and directly use ui::EventFlagsToWebEventModifiers
46 int EventFlagsToWebInputEventModifiers(int flags) { 42 int EventFlagsToWebInputEventModifiers(int flags) {
47 return (flags & ui::EF_SHIFT_DOWN ? blink::WebInputEvent::ShiftKey : 0) | 43 return (flags & ui::EF_SHIFT_DOWN ? blink::WebInputEvent::ShiftKey : 0) |
48 (flags & ui::EF_CONTROL_DOWN ? blink::WebInputEvent::ControlKey : 0) | 44 (flags & ui::EF_CONTROL_DOWN ? blink::WebInputEvent::ControlKey : 0) |
49 (flags & ui::EF_CAPS_LOCK_ON ? blink::WebInputEvent::CapsLockOn : 0) | 45 (flags & ui::EF_CAPS_LOCK_ON ? blink::WebInputEvent::CapsLockOn : 0) |
50 (flags & ui::EF_ALT_DOWN ? blink::WebInputEvent::AltKey : 0); 46 (flags & ui::EF_ALT_DOWN ? blink::WebInputEvent::AltKey : 0);
51 } 47 }
52 48
53 int GetClickCount(int flags) { 49 int GetClickCount(int flags) {
54 if (flags & ui::EF_IS_TRIPLE_CLICK) 50 if (flags & ui::EF_IS_TRIPLE_CLICK)
55 return 3; 51 return 3;
(...skipping 12 matching lines...) Expand all
68 } 64 }
69 65
70 std::unique_ptr<blink::WebInputEvent> BuildWebMouseEventFrom( 66 std::unique_ptr<blink::WebInputEvent> BuildWebMouseEventFrom(
71 const ui::PointerEvent& event) { 67 const ui::PointerEvent& event) {
72 std::unique_ptr<blink::WebMouseEvent> web_event(new blink::WebMouseEvent); 68 std::unique_ptr<blink::WebMouseEvent> web_event(new blink::WebMouseEvent);
73 69
74 web_event->pointerType = blink::WebPointerProperties::PointerType::Mouse; 70 web_event->pointerType = blink::WebPointerProperties::PointerType::Mouse;
75 SetWebMouseEventLocation(event, web_event.get()); 71 SetWebMouseEventLocation(event, web_event.get());
76 72
77 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags()); 73 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags());
78 web_event->timeStampSeconds = EventTimeToWebEventTime(event); 74 web_event->timeStampSeconds = ui::EventTimeStampToSeconds(event.time_stamp());
79 75
80 web_event->button = blink::WebMouseEvent::ButtonNone; 76 web_event->button = blink::WebMouseEvent::ButtonNone;
81 if (event.flags() & ui::EF_LEFT_MOUSE_BUTTON) 77 if (event.flags() & ui::EF_LEFT_MOUSE_BUTTON)
82 web_event->button = blink::WebMouseEvent::ButtonLeft; 78 web_event->button = blink::WebMouseEvent::ButtonLeft;
83 if (event.flags() & ui::EF_MIDDLE_MOUSE_BUTTON) 79 if (event.flags() & ui::EF_MIDDLE_MOUSE_BUTTON)
84 web_event->button = blink::WebMouseEvent::ButtonMiddle; 80 web_event->button = blink::WebMouseEvent::ButtonMiddle;
85 if (event.flags() & ui::EF_RIGHT_MOUSE_BUTTON) 81 if (event.flags() & ui::EF_RIGHT_MOUSE_BUTTON)
86 web_event->button = blink::WebMouseEvent::ButtonRight; 82 web_event->button = blink::WebMouseEvent::ButtonRight;
87 83
88 switch (event.type()) { 84 switch (event.type()) {
(...skipping 18 matching lines...) Expand all
107 103
108 return std::move(web_event); 104 return std::move(web_event);
109 } 105 }
110 106
111 std::unique_ptr<blink::WebInputEvent> BuildWebKeyboardEvent( 107 std::unique_ptr<blink::WebInputEvent> BuildWebKeyboardEvent(
112 const ui::KeyEvent& event) { 108 const ui::KeyEvent& event) {
113 std::unique_ptr<blink::WebKeyboardEvent> web_event( 109 std::unique_ptr<blink::WebKeyboardEvent> web_event(
114 new blink::WebKeyboardEvent); 110 new blink::WebKeyboardEvent);
115 111
116 web_event->modifiers = EventFlagsToWebInputEventModifiers(event.flags()); 112 web_event->modifiers = EventFlagsToWebInputEventModifiers(event.flags());
117 web_event->timeStampSeconds = EventTimeToWebEventTime(event); 113 web_event->timeStampSeconds = ui::EventTimeStampToSeconds(event.time_stamp());
118 114
119 switch (event.type()) { 115 switch (event.type()) {
120 case ui::ET_KEY_PRESSED: 116 case ui::ET_KEY_PRESSED:
121 web_event->type = event.is_char() ? blink::WebInputEvent::Char 117 web_event->type = event.is_char() ? blink::WebInputEvent::Char
122 : blink::WebInputEvent::RawKeyDown; 118 : blink::WebInputEvent::RawKeyDown;
123 break; 119 break;
124 case ui::ET_KEY_RELEASED: 120 case ui::ET_KEY_RELEASED:
125 web_event->type = blink::WebInputEvent::KeyUp; 121 web_event->type = blink::WebInputEvent::KeyUp;
126 break; 122 break;
127 default: 123 default:
(...skipping 13 matching lines...) Expand all
141 return std::move(web_event); 137 return std::move(web_event);
142 } 138 }
143 139
144 std::unique_ptr<blink::WebInputEvent> BuildWebMouseWheelEventFrom( 140 std::unique_ptr<blink::WebInputEvent> BuildWebMouseWheelEventFrom(
145 const ui::MouseWheelEvent& event) { 141 const ui::MouseWheelEvent& event) {
146 std::unique_ptr<blink::WebMouseWheelEvent> web_event( 142 std::unique_ptr<blink::WebMouseWheelEvent> web_event(
147 new blink::WebMouseWheelEvent); 143 new blink::WebMouseWheelEvent);
148 web_event->type = blink::WebInputEvent::MouseWheel; 144 web_event->type = blink::WebInputEvent::MouseWheel;
149 web_event->button = blink::WebMouseEvent::ButtonNone; 145 web_event->button = blink::WebMouseEvent::ButtonNone;
150 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags()); 146 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags());
151 web_event->timeStampSeconds = EventTimeToWebEventTime(event); 147 web_event->timeStampSeconds = ui::EventTimeStampToSeconds(event.time_stamp());
152 148
153 SetWebMouseEventLocation(event, web_event.get()); 149 SetWebMouseEventLocation(event, web_event.get());
154 150
155 // TODO(rjkroege): Update the following code once Blink supports 151 // TODO(rjkroege): Update the following code once Blink supports
156 // DOM Level 3 wheel events 152 // DOM Level 3 wheel events
157 // (http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents) 153 // (http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents)
158 web_event->deltaX = event.x_offset(); 154 web_event->deltaX = event.x_offset();
159 web_event->deltaY = event.y_offset(); 155 web_event->deltaY = event.y_offset();
160 156
161 web_event->wheelTicksX = web_event->deltaX / ui::MouseWheelEvent::kWheelDelta; 157 web_event->wheelTicksX = web_event->deltaX / ui::MouseWheelEvent::kWheelDelta;
(...skipping 22 matching lines...) Expand all
184 blink::WebTouchPoint* touch = &web_event->touches[event.pointer_id()]; 180 blink::WebTouchPoint* touch = &web_event->touches[event.pointer_id()];
185 181
186 // TODO(jonross): we will need to buffer input events, as blink expects all 182 // TODO(jonross): we will need to buffer input events, as blink expects all
187 // active touch points to be in each WebInputEvent (crbug.com/578160) 183 // active touch points to be in each WebInputEvent (crbug.com/578160)
188 SetWebTouchEventLocation(event, touch); 184 SetWebTouchEventLocation(event, touch);
189 touch->pointerType = blink::WebPointerProperties::PointerType::Touch; 185 touch->pointerType = blink::WebPointerProperties::PointerType::Touch;
190 touch->radiusX = event.pointer_details().radius_x; 186 touch->radiusX = event.pointer_details().radius_x;
191 touch->radiusY = event.pointer_details().radius_y; 187 touch->radiusY = event.pointer_details().radius_y;
192 188
193 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags()); 189 web_event->modifiers = EventFlagsToWebEventModifiers(event.flags());
194 web_event->timeStampSeconds = EventTimeToWebEventTime(event); 190 web_event->timeStampSeconds = ui::EventTimeStampToSeconds(event.time_stamp());
195 web_event->uniqueTouchEventId = ui::GetNextTouchEventId(); 191 web_event->uniqueTouchEventId = ui::GetNextTouchEventId();
196 192
197 switch (event.type()) { 193 switch (event.type()) {
198 case ui::ET_POINTER_DOWN: 194 case ui::ET_POINTER_DOWN:
199 web_event->type = blink::WebInputEvent::TouchStart; 195 web_event->type = blink::WebInputEvent::TouchStart;
200 touch->state = blink::WebTouchPoint::StatePressed; 196 touch->state = blink::WebTouchPoint::StatePressed;
201 break; 197 break;
202 case ui::ET_POINTER_UP: 198 case ui::ET_POINTER_UP:
203 web_event->type = blink::WebInputEvent::TouchEnd; 199 web_event->type = blink::WebInputEvent::TouchEnd;
204 touch->state = blink::WebTouchPoint::StateReleased; 200 touch->state = blink::WebTouchPoint::StateReleased;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 return BuildWebMouseWheelEventFrom(*event.AsMouseWheelEvent()); 240 return BuildWebMouseWheelEventFrom(*event.AsMouseWheelEvent());
245 case ui::ET_KEY_PRESSED: 241 case ui::ET_KEY_PRESSED:
246 case ui::ET_KEY_RELEASED: 242 case ui::ET_KEY_RELEASED:
247 return BuildWebKeyboardEvent(*event.AsKeyEvent()); 243 return BuildWebKeyboardEvent(*event.AsKeyEvent());
248 default: 244 default:
249 return nullptr; 245 return nullptr;
250 } 246 }
251 } 247 }
252 248
253 } // namespace mojo 249 } // namespace mojo
OLDNEW
« no previous file with comments | « content/public/test/browser_test_utils.cc ('k') | mojo/converters/blink/blink_input_events_type_converters_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698