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

Side by Side Diff: webkit/glue/plugins/pepper_event_conversion.cc

Issue 3386019: Pull latest PPAPI. Change support for key handling. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "webkit/glue/plugins/pepper_event_conversion.h" 5 #include "webkit/glue/plugins/pepper_event_conversion.h"
6 6
7 #include "base/i18n/char_iterator.h"
7 #include "base/logging.h" 8 #include "base/logging.h"
8 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
9 #include "third_party/ppapi/c/pp_event.h" 10 #include "base/string_util.h"
11 #include "base/utf_string_conversions.h"
12 #include "base/utf_string_conversion_utils.h"
13 #include "third_party/ppapi/c/pp_input_event.h"
10 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" 14 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h"
11 15
12 using WebKit::WebInputEvent; 16 using WebKit::WebInputEvent;
13 using WebKit::WebKeyboardEvent; 17 using WebKit::WebKeyboardEvent;
14 using WebKit::WebMouseEvent; 18 using WebKit::WebMouseEvent;
15 using WebKit::WebMouseWheelEvent; 19 using WebKit::WebMouseWheelEvent;
16 20
17 namespace { 21 namespace {
18 // Anonymous namespace for functions converting WebInputEvent to PP_Event and 22
19 // back. 23 PP_InputEvent_Type ConvertEventTypes(WebInputEvent::Type wetype) {
20 PP_Event_Type ConvertEventTypes(WebInputEvent::Type wetype) {
21 switch (wetype) { 24 switch (wetype) {
22 case WebInputEvent::MouseDown: 25 case WebInputEvent::MouseDown:
23 return PP_EVENT_TYPE_MOUSEDOWN; 26 return PP_INPUTEVENT_TYPE_MOUSEDOWN;
24 case WebInputEvent::MouseUp: 27 case WebInputEvent::MouseUp:
25 return PP_EVENT_TYPE_MOUSEUP; 28 return PP_INPUTEVENT_TYPE_MOUSEUP;
26 case WebInputEvent::MouseMove: 29 case WebInputEvent::MouseMove:
27 return PP_EVENT_TYPE_MOUSEMOVE; 30 return PP_INPUTEVENT_TYPE_MOUSEMOVE;
28 case WebInputEvent::MouseEnter: 31 case WebInputEvent::MouseEnter:
29 return PP_EVENT_TYPE_MOUSEENTER; 32 return PP_INPUTEVENT_TYPE_MOUSEENTER;
30 case WebInputEvent::MouseLeave: 33 case WebInputEvent::MouseLeave:
31 return PP_EVENT_TYPE_MOUSELEAVE; 34 return PP_INPUTEVENT_TYPE_MOUSELEAVE;
32 case WebInputEvent::MouseWheel: 35 case WebInputEvent::MouseWheel:
33 return PP_EVENT_TYPE_MOUSEWHEEL; 36 return PP_INPUTEVENT_TYPE_MOUSEWHEEL;
34 case WebInputEvent::RawKeyDown: 37 case WebInputEvent::RawKeyDown:
35 return PP_EVENT_TYPE_RAWKEYDOWN; 38 return PP_INPUTEVENT_TYPE_RAWKEYDOWN;
36 case WebInputEvent::KeyDown: 39 case WebInputEvent::KeyDown:
37 return PP_EVENT_TYPE_KEYDOWN; 40 return PP_INPUTEVENT_TYPE_KEYDOWN;
38 case WebInputEvent::KeyUp: 41 case WebInputEvent::KeyUp:
39 return PP_EVENT_TYPE_KEYUP; 42 return PP_INPUTEVENT_TYPE_KEYUP;
40 case WebInputEvent::Char: 43 case WebInputEvent::Char:
41 return PP_EVENT_TYPE_CHAR; 44 return PP_INPUTEVENT_TYPE_CHAR;
42 case WebInputEvent::Undefined: 45 case WebInputEvent::Undefined:
43 default: 46 default:
44 return PP_EVENT_TYPE_UNDEFINED; 47 return PP_INPUTEVENT_TYPE_UNDEFINED;
45 } 48 }
46 } 49 }
47 50
48 void BuildKeyEvent(const WebInputEvent* event, PP_Event* pp_event) { 51 // Generates a PP_InputEvent with the fields common to all events, as well as
49 const WebKeyboardEvent* key_event = 52 // the event type from the given web event. Event-specific fields will be zero
50 reinterpret_cast<const WebKeyboardEvent*>(event); 53 // initialized.
51 pp_event->u.key.modifier = key_event->modifiers; 54 PP_InputEvent GetPPEventWithCommonFieldsAndType(
52 pp_event->u.key.normalizedKeyCode = key_event->windowsKeyCode; 55 const WebInputEvent& web_event) {
56 PP_InputEvent result;
57 memset(&result, 0, sizeof(PP_InputEvent));
58 result.type = ConvertEventTypes(web_event.type);
59 result.time_stamp_seconds = web_event.timeStampSeconds;
60 return result;
53 } 61 }
54 62
55 void BuildCharEvent(const WebInputEvent* event, PP_Event* pp_event) { 63 void AppendKeyEvent(const WebInputEvent& event,
56 const WebKeyboardEvent* key_event = 64 std::vector<PP_InputEvent>* pp_events) {
57 reinterpret_cast<const WebKeyboardEvent*>(event); 65 const WebKeyboardEvent& key_event =
58 pp_event->u.character.modifier = key_event->modifiers; 66 reinterpret_cast<const WebKeyboardEvent&>(event);
59 // For consistency, check that the sizes of the texts agree. 67 PP_InputEvent result = GetPPEventWithCommonFieldsAndType(event);
60 DCHECK(sizeof(pp_event->u.character.text) == sizeof(key_event->text)); 68 result.u.key.modifier = key_event.modifiers;
61 DCHECK(sizeof(pp_event->u.character.unmodifiedText) == 69 result.u.key.key_code = key_event.windowsKeyCode;
62 sizeof(key_event->unmodifiedText)); 70 pp_events->push_back(result);
63 for (size_t i = 0; i < WebKeyboardEvent::textLengthCap; ++i) { 71 }
64 pp_event->u.character.text[i] = key_event->text[i]; 72
65 pp_event->u.character.unmodifiedText[i] = key_event->unmodifiedText[i]; 73 void AppendCharEvent(const WebInputEvent& event,
74 std::vector<PP_InputEvent>* pp_events) {
75 const WebKeyboardEvent& key_event =
76 reinterpret_cast<const WebKeyboardEvent&>(event);
77
78 // This is a bit complex, the input event will normally just have one 16-bit
79 // character in it, but may be zero or more than one. The text array is
80 // just padded with 0 values for the unused ones, but is not necessarily
81 // null-terminated.
82 //
83 // Here we see how many UTF-16 characters we have.
84 size_t utf16_char_count = 0;
85 while (utf16_char_count < WebKeyboardEvent::textLengthCap &&
86 key_event.text[utf16_char_count])
87 utf16_char_count++;
88
89 // Make a separate PP_InputEvent for each Unicode character in the input.
90 base::UTF16CharIterator iter(key_event.text, utf16_char_count);
91 while (!iter.end()) {
92 PP_InputEvent result = GetPPEventWithCommonFieldsAndType(event);
93 result.u.character.modifier = key_event.modifiers;
94
95 std::string utf8_char;
96 base::WriteUnicodeCharacter(iter.get(), &utf8_char);
97 base::strlcpy(result.u.character.text, utf8_char.c_str(),
98 sizeof(result.u.character.text));
99
100 pp_events->push_back(result);
66 } 101 }
67 } 102 }
68 103
69 void BuildMouseEvent(const WebInputEvent* event, PP_Event* pp_event) { 104 void AppendMouseEvent(const WebInputEvent& event,
70 const WebMouseEvent* mouse_event = 105 std::vector<PP_InputEvent>* pp_events) {
71 reinterpret_cast<const WebMouseEvent*>(event); 106 COMPILE_ASSERT(static_cast<int>(WebMouseEvent::ButtonNone) ==
72 pp_event->u.mouse.modifier = mouse_event->modifiers; 107 static_cast<int>(PP_INPUTEVENT_MOUSEBUTTON_NONE),
73 pp_event->u.mouse.button = mouse_event->button; 108 MouseNone);
74 pp_event->u.mouse.x = static_cast<float>(mouse_event->x); 109 COMPILE_ASSERT(static_cast<int>(WebMouseEvent::ButtonLeft) ==
75 pp_event->u.mouse.y = static_cast<float>(mouse_event->y); 110 static_cast<int>(PP_INPUTEVENT_MOUSEBUTTON_LEFT),
76 pp_event->u.mouse.clickCount = mouse_event->clickCount; 111 MouseLeft);
112 COMPILE_ASSERT(static_cast<int>(WebMouseEvent::ButtonRight) ==
113 static_cast<int>(PP_INPUTEVENT_MOUSEBUTTON_RIGHT),
114 MouseRight);
115 COMPILE_ASSERT(static_cast<int>(WebMouseEvent::ButtonMiddle) ==
116 static_cast<int>(PP_INPUTEVENT_MOUSEBUTTON_MIDDLE),
117 MouseMiddle);
118
119 const WebMouseEvent& mouse_event =
120 reinterpret_cast<const WebMouseEvent&>(event);
121 PP_InputEvent result = GetPPEventWithCommonFieldsAndType(event);
122 result.u.mouse.modifier = mouse_event.modifiers;
123 result.u.mouse.button =
124 static_cast<PP_InputEvent_MouseButton>(mouse_event.button);
125 result.u.mouse.x = static_cast<float>(mouse_event.x);
126 result.u.mouse.y = static_cast<float>(mouse_event.y);
127 result.u.mouse.click_count = mouse_event.clickCount;
128 pp_events->push_back(result);
77 } 129 }
78 130
79 void BuildMouseWheelEvent(const WebInputEvent* event, PP_Event* pp_event) { 131 void AppendMouseWheelEvent(const WebInputEvent& event,
80 const WebMouseWheelEvent* mouse_wheel_event = 132 std::vector<PP_InputEvent>* pp_events) {
81 reinterpret_cast<const WebMouseWheelEvent*>(event); 133 const WebMouseWheelEvent& mouse_wheel_event =
82 pp_event->u.wheel.modifier = mouse_wheel_event->modifiers; 134 reinterpret_cast<const WebMouseWheelEvent&>(event);
83 pp_event->u.wheel.deltaX = mouse_wheel_event->deltaX; 135 PP_InputEvent result = GetPPEventWithCommonFieldsAndType(event);
84 pp_event->u.wheel.deltaY = mouse_wheel_event->deltaY; 136 result.u.wheel.modifier = mouse_wheel_event.modifiers;
85 pp_event->u.wheel.wheelTicksX = mouse_wheel_event->wheelTicksX; 137 result.u.wheel.delta_x = mouse_wheel_event.deltaX;
86 pp_event->u.wheel.wheelTicksY = mouse_wheel_event->wheelTicksY; 138 result.u.wheel.delta_y = mouse_wheel_event.deltaY;
87 pp_event->u.wheel.scrollByPage = mouse_wheel_event->scrollByPage; 139 result.u.wheel.wheel_ticks_x = mouse_wheel_event.wheelTicksX;
140 result.u.wheel.wheel_ticks_y = mouse_wheel_event.wheelTicksY;
141 result.u.wheel.scroll_by_page = !!mouse_wheel_event.scrollByPage;
142 pp_events->push_back(result);
88 } 143 }
89 144
90 145
91 WebKeyboardEvent* BuildKeyEvent(const PP_Event& event) { 146 WebKeyboardEvent* BuildKeyEvent(const PP_InputEvent& event) {
92 WebKeyboardEvent* key_event = new WebKeyboardEvent(); 147 WebKeyboardEvent* key_event = new WebKeyboardEvent();
93 switch (event.type) { 148 switch (event.type) {
94 case PP_EVENT_TYPE_RAWKEYDOWN: 149 case PP_INPUTEVENT_TYPE_RAWKEYDOWN:
95 key_event->type = WebInputEvent::RawKeyDown; 150 key_event->type = WebInputEvent::RawKeyDown;
96 break; 151 break;
97 case PP_EVENT_TYPE_KEYDOWN: 152 case PP_INPUTEVENT_TYPE_KEYDOWN:
98 key_event->type = WebInputEvent::KeyDown; 153 key_event->type = WebInputEvent::KeyDown;
99 break; 154 break;
100 case PP_EVENT_TYPE_KEYUP: 155 case PP_INPUTEVENT_TYPE_KEYUP:
101 key_event->type = WebInputEvent::KeyUp; 156 key_event->type = WebInputEvent::KeyUp;
102 break; 157 break;
158 default:
159 NOTREACHED();
103 } 160 }
104 key_event->timeStampSeconds = event.time_stamp_seconds; 161 key_event->timeStampSeconds = event.time_stamp_seconds;
105 key_event->modifiers = event.u.key.modifier; 162 key_event->modifiers = event.u.key.modifier;
106 key_event->windowsKeyCode = event.u.key.normalizedKeyCode; 163 key_event->windowsKeyCode = event.u.key.key_code;
107 return key_event; 164 return key_event;
108 } 165 }
109 166
110 WebKeyboardEvent* BuildCharEvent(const PP_Event& event) { 167 WebKeyboardEvent* BuildCharEvent(const PP_InputEvent& event) {
111 WebKeyboardEvent* key_event = new WebKeyboardEvent(); 168 WebKeyboardEvent* key_event = new WebKeyboardEvent();
112 key_event->type = WebInputEvent::Char; 169 key_event->type = WebInputEvent::Char;
113 key_event->timeStampSeconds = event.time_stamp_seconds; 170 key_event->timeStampSeconds = event.time_stamp_seconds;
114 key_event->modifiers = event.u.character.modifier; 171 key_event->modifiers = event.u.character.modifier;
115 // For consistency, check that the sizes of the texts agree. 172
116 DCHECK(sizeof(event.u.character.text) == sizeof(key_event->text)); 173 // Make sure to not read beyond the buffer in case some bad code doesn't
117 DCHECK(sizeof(event.u.character.unmodifiedText) == 174 // NULL-terminate it (this is called from plugins).
118 sizeof(key_event->unmodifiedText)); 175 size_t text_len = strnlen(event.u.character.text,
119 for (size_t i = 0; i < WebKeyboardEvent::textLengthCap; ++i) { 176 sizeof(event.u.character.text));
120 key_event->text[i] = event.u.character.text[i]; 177 string16 text16 = UTF8ToUTF16(std::string(event.u.character.text, text_len));
121 key_event->unmodifiedText[i] = event.u.character.unmodifiedText[i]; 178
122 } 179 memset(key_event->text, 0, WebKeyboardEvent::textLengthCap);
180 memset(key_event->unmodifiedText, 0, WebKeyboardEvent::textLengthCap);
181 for (size_t i = 0;
182 i < std::min(WebKeyboardEvent::textLengthCap, text16.size();
183 ++i)
184 key_event->text[i] = text16[i];
123 return key_event; 185 return key_event;
124 } 186 }
125 187
126 WebMouseEvent* BuildMouseEvent(const PP_Event& event) { 188 WebMouseEvent* BuildMouseEvent(const PP_InputEvent& event) {
127 WebMouseEvent* mouse_event = new WebMouseEvent(); 189 WebMouseEvent* mouse_event = new WebMouseEvent();
128 switch (event.type) { 190 switch (event.type) {
129 case PP_EVENT_TYPE_MOUSEDOWN: 191 case PP_INPUTEVENT_TYPE_MOUSEDOWN:
130 mouse_event->type = WebInputEvent::MouseDown; 192 mouse_event->type = WebInputEvent::MouseDown;
131 break; 193 break;
132 case PP_EVENT_TYPE_MOUSEUP: 194 case PP_INPUTEVENT_TYPE_MOUSEUP:
133 mouse_event->type = WebInputEvent::MouseUp; 195 mouse_event->type = WebInputEvent::MouseUp;
134 break; 196 break;
135 case PP_EVENT_TYPE_MOUSEMOVE: 197 case PP_INPUTEVENT_TYPE_MOUSEMOVE:
136 mouse_event->type = WebInputEvent::MouseMove; 198 mouse_event->type = WebInputEvent::MouseMove;
137 break; 199 break;
138 case PP_EVENT_TYPE_MOUSEENTER: 200 case PP_INPUTEVENT_TYPE_MOUSEENTER:
139 mouse_event->type = WebInputEvent::MouseEnter; 201 mouse_event->type = WebInputEvent::MouseEnter;
140 break; 202 break;
141 case PP_EVENT_TYPE_MOUSELEAVE: 203 case PP_INPUTEVENT_TYPE_MOUSELEAVE:
142 mouse_event->type = WebInputEvent::MouseLeave; 204 mouse_event->type = WebInputEvent::MouseLeave;
143 break; 205 break;
206 default:
207 NOTREACHED();
144 } 208 }
145 mouse_event->timeStampSeconds = event.time_stamp_seconds; 209 mouse_event->timeStampSeconds = event.time_stamp_seconds;
146 mouse_event->modifiers = event.u.mouse.modifier; 210 mouse_event->modifiers = event.u.mouse.modifier;
147 mouse_event->button = 211 mouse_event->button =
148 static_cast<WebMouseEvent::Button>(event.u.mouse.button); 212 static_cast<WebMouseEvent::Button>(event.u.mouse.button);
149 mouse_event->x = static_cast<int>(event.u.mouse.x); 213 mouse_event->x = static_cast<int>(event.u.mouse.x);
150 mouse_event->y = static_cast<int>(event.u.mouse.y); 214 mouse_event->y = static_cast<int>(event.u.mouse.y);
151 mouse_event->clickCount = event.u.mouse.clickCount; 215 mouse_event->clickCount = event.u.mouse.click_count;
152 return mouse_event; 216 return mouse_event;
153 } 217 }
154 218
155 WebMouseWheelEvent* BuildMouseWheelEvent(const PP_Event& event) { 219 WebMouseWheelEvent* BuildMouseWheelEvent(const PP_InputEvent& event) {
156 WebMouseWheelEvent* mouse_wheel_event = new WebMouseWheelEvent(); 220 WebMouseWheelEvent* mouse_wheel_event = new WebMouseWheelEvent();
157 mouse_wheel_event->type = WebInputEvent::MouseWheel; 221 mouse_wheel_event->type = WebInputEvent::MouseWheel;
158 mouse_wheel_event->timeStampSeconds = event.time_stamp_seconds; 222 mouse_wheel_event->timeStampSeconds = event.time_stamp_seconds;
159 mouse_wheel_event->modifiers = event.u.wheel.modifier; 223 mouse_wheel_event->modifiers = event.u.wheel.modifier;
160 mouse_wheel_event->deltaX = event.u.wheel.deltaX; 224 mouse_wheel_event->deltaX = event.u.wheel.delta_x;
161 mouse_wheel_event->deltaY = event.u.wheel.deltaY; 225 mouse_wheel_event->deltaY = event.u.wheel.delta_y;
162 mouse_wheel_event->wheelTicksX = event.u.wheel.wheelTicksX; 226 mouse_wheel_event->wheelTicksX = event.u.wheel.wheel_ticks_x;
163 mouse_wheel_event->wheelTicksY = event.u.wheel.wheelTicksY; 227 mouse_wheel_event->wheelTicksY = event.u.wheel.wheel_ticks_y;
164 mouse_wheel_event->scrollByPage = event.u.wheel.scrollByPage; 228 mouse_wheel_event->scrollByPage = event.u.wheel.scroll_by_page;
165 return mouse_wheel_event; 229 return mouse_wheel_event;
166 } 230 }
167 231
168 } // namespace 232 } // namespace
169 233
170 namespace pepper { 234 namespace pepper {
171 235
172 PP_Event* CreatePP_Event(const WebInputEvent& event) { 236 void CreatePPEvent(const WebInputEvent& event,
173 scoped_ptr<PP_Event> pp_event(new PP_Event); 237 std::vector<PP_InputEvent>* pp_events) {
238 pp_events->clear();
174 239
175 pp_event->type = ConvertEventTypes(event.type); 240 switch (event.type) {
176 pp_event->size = sizeof(pp_event); 241 case WebInputEvent::MouseDown:
177 pp_event->time_stamp_seconds = event.timeStampSeconds; 242 case WebInputEvent::MouseUp:
178 switch (pp_event->type) { 243 case WebInputEvent::MouseMove:
179 case PP_EVENT_TYPE_UNDEFINED: 244 case WebInputEvent::MouseEnter:
245 case WebInputEvent::MouseLeave:
246 AppendMouseEvent(event, pp_events);
247 break;
248 case WebInputEvent::MouseWheel:
249 AppendMouseWheelEvent(event, pp_events);
250 break;
251 case WebInputEvent::RawKeyDown:
252 case WebInputEvent::KeyDown:
253 case WebInputEvent::KeyUp:
254 AppendKeyEvent(event, pp_events);
255 break;
256 case WebInputEvent::Char:
257 AppendCharEvent(event, pp_events);
258 break;
259 case WebInputEvent::Undefined:
260 default:
261 break;
262 }
263 }
264
265 WebInputEvent* CreateWebInputEvent(const PP_InputEvent& event) {
266 scoped_ptr<WebInputEvent> web_input_event;
267 switch (event.type) {
268 case PP_INPUTEVENT_TYPE_UNDEFINED:
180 return NULL; 269 return NULL;
181 case PP_EVENT_TYPE_MOUSEDOWN: 270 case PP_INPUTEVENT_TYPE_MOUSEDOWN:
182 case PP_EVENT_TYPE_MOUSEUP: 271 case PP_INPUTEVENT_TYPE_MOUSEUP:
183 case PP_EVENT_TYPE_MOUSEMOVE: 272 case PP_INPUTEVENT_TYPE_MOUSEMOVE:
184 case PP_EVENT_TYPE_MOUSEENTER: 273 case PP_INPUTEVENT_TYPE_MOUSEENTER:
185 case PP_EVENT_TYPE_MOUSELEAVE: 274 case PP_INPUTEVENT_TYPE_MOUSELEAVE:
186 BuildMouseEvent(&event, pp_event.get()); 275 web_input_event.reset(BuildMouseEvent(event));
187 break; 276 break;
188 case PP_EVENT_TYPE_MOUSEWHEEL: 277 case PP_INPUTEVENT_TYPE_MOUSEWHEEL:
189 BuildMouseWheelEvent(&event, pp_event.get()); 278 web_input_event.reset(BuildMouseWheelEvent(event));
190 break; 279 break;
191 case PP_EVENT_TYPE_RAWKEYDOWN: 280 case PP_INPUTEVENT_TYPE_RAWKEYDOWN:
192 case PP_EVENT_TYPE_KEYDOWN: 281 case PP_INPUTEVENT_TYPE_KEYDOWN:
193 case PP_EVENT_TYPE_KEYUP: 282 case PP_INPUTEVENT_TYPE_KEYUP:
194 BuildKeyEvent(&event, pp_event.get()); 283 web_input_event.reset(BuildKeyEvent(event));
195 break; 284 break;
196 case PP_EVENT_TYPE_CHAR: 285 case PP_INPUTEVENT_TYPE_CHAR:
197 BuildCharEvent(&event, pp_event.get()); 286 web_input_event.reset(BuildCharEvent(event));
198 break; 287 break;
199 } 288 }
200 289
201 return pp_event.release();
202 }
203
204 WebInputEvent* CreateWebInputEvent(const PP_Event& event) {
205 scoped_ptr<WebInputEvent> web_input_event;
206 switch (event.type) {
207 case PP_EVENT_TYPE_UNDEFINED:
208 return NULL;
209 case PP_EVENT_TYPE_MOUSEDOWN:
210 case PP_EVENT_TYPE_MOUSEUP:
211 case PP_EVENT_TYPE_MOUSEMOVE:
212 case PP_EVENT_TYPE_MOUSEENTER:
213 case PP_EVENT_TYPE_MOUSELEAVE:
214 web_input_event.reset(BuildMouseEvent(event));
215 break;
216 case PP_EVENT_TYPE_MOUSEWHEEL:
217 web_input_event.reset(BuildMouseWheelEvent(event));
218 break;
219 case PP_EVENT_TYPE_RAWKEYDOWN:
220 case PP_EVENT_TYPE_KEYDOWN:
221 case PP_EVENT_TYPE_KEYUP:
222 web_input_event.reset(BuildKeyEvent(event));
223 break;
224 case PP_EVENT_TYPE_CHAR:
225 web_input_event.reset(BuildCharEvent(event));
226 break;
227 case PP_EVENT_TYPE_FOCUS:
228 // NOTIMPLEMENTED();
229 return NULL;
230 }
231
232 return web_input_event.release(); 290 return web_input_event.release();
233 } 291 }
234 292
235 } // namespace pepper 293 } // namespace pepper
OLDNEW
« no previous file with comments | « webkit/glue/plugins/pepper_event_conversion.h ('k') | webkit/glue/plugins/pepper_plugin_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698