OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/memory/shared_memory.h" | 8 #include "base/memory/shared_memory.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 ui::KeyEvent event1(xevent); | 228 ui::KeyEvent event1(xevent); |
229 NativeWebKeyboardEvent keydown_event(&event1); | 229 NativeWebKeyboardEvent keydown_event(&event1); |
230 SendNativeKeyEvent(keydown_event); | 230 SendNativeKeyEvent(keydown_event); |
231 | 231 |
232 // X11 doesn't actually have native character events, but give the test | 232 // X11 doesn't actually have native character events, but give the test |
233 // what it wants. | 233 // what it wants. |
234 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, | 234 xevent.InitKeyEvent(ui::ET_KEY_PRESSED, |
235 static_cast<ui::KeyboardCode>(key_code), | 235 static_cast<ui::KeyboardCode>(key_code), |
236 flags); | 236 flags); |
237 ui::KeyEvent event2(xevent); | 237 ui::KeyEvent event2(xevent); |
| 238 event2.set_character(GetCharacterFromKeyCode(event2.key_code(), |
| 239 event2.flags())); |
238 ui::KeyEventTestApi test_event2(&event2); | 240 ui::KeyEventTestApi test_event2(&event2); |
239 test_event2.set_is_char(true); | 241 test_event2.set_is_char(true); |
240 NativeWebKeyboardEvent char_event(&event2); | 242 NativeWebKeyboardEvent char_event(&event2); |
241 SendNativeKeyEvent(char_event); | 243 SendNativeKeyEvent(char_event); |
242 | 244 |
243 xevent.InitKeyEvent(ui::ET_KEY_RELEASED, | 245 xevent.InitKeyEvent(ui::ET_KEY_RELEASED, |
244 static_cast<ui::KeyboardCode>(key_code), | 246 static_cast<ui::KeyboardCode>(key_code), |
245 flags); | 247 flags); |
246 ui::KeyEvent event3(xevent); | 248 ui::KeyEvent event3(xevent); |
247 NativeWebKeyboardEvent keyup_event(&event3); | 249 NativeWebKeyboardEvent keyup_event(&event3); |
248 SendNativeKeyEvent(keyup_event); | 250 SendNativeKeyEvent(keyup_event); |
249 | 251 |
250 long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code), | 252 long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code), |
251 flags); | 253 flags); |
252 output->assign(1, static_cast<base::char16>(c)); | 254 output->assign(1, static_cast<base::char16>(c)); |
253 return 1; | 255 return 1; |
254 #elif defined(USE_OZONE) | 256 #elif defined(USE_OZONE) |
255 const int flags = ConvertMockKeyboardModifier(modifiers); | 257 const int flags = ConvertMockKeyboardModifier(modifiers); |
256 | 258 |
257 // Ozone's native events are ui::Events. So first create the "native" event, | 259 ui::KeyEvent keydown_event(ui::ET_KEY_PRESSED, |
258 // then create the actual ui::KeyEvent with the native event. | 260 static_cast<ui::KeyboardCode>(key_code), |
259 ui::KeyEvent keydown_native_event(ui::ET_KEY_PRESSED, | 261 flags); |
260 static_cast<ui::KeyboardCode>(key_code), | |
261 flags); | |
262 ui::KeyEvent keydown_event(&keydown_native_event); | |
263 NativeWebKeyboardEvent keydown_web_event(&keydown_event); | 262 NativeWebKeyboardEvent keydown_web_event(&keydown_event); |
264 SendNativeKeyEvent(keydown_web_event); | 263 SendNativeKeyEvent(keydown_web_event); |
265 | 264 |
266 ui::KeyEvent char_native_event(static_cast<base::char16>(key_code), | 265 ui::KeyEvent char_event(keydown_event.GetCharacter(), |
267 static_cast<ui::KeyboardCode>(key_code), | 266 static_cast<ui::KeyboardCode>(key_code), |
268 flags); | 267 flags); |
269 ui::KeyEvent char_event(&char_native_event); | |
270 NativeWebKeyboardEvent char_web_event(&char_event); | 268 NativeWebKeyboardEvent char_web_event(&char_event); |
271 SendNativeKeyEvent(char_web_event); | 269 SendNativeKeyEvent(char_web_event); |
272 | 270 |
273 ui::KeyEvent keyup_native_event(ui::ET_KEY_RELEASED, | 271 ui::KeyEvent keyup_event(ui::ET_KEY_RELEASED, |
274 static_cast<ui::KeyboardCode>(key_code), | 272 static_cast<ui::KeyboardCode>(key_code), |
275 flags); | 273 flags); |
276 ui::KeyEvent keyup_event(&keyup_native_event); | |
277 NativeWebKeyboardEvent keyup_web_event(&keyup_event); | 274 NativeWebKeyboardEvent keyup_web_event(&keyup_event); |
278 SendNativeKeyEvent(keyup_web_event); | 275 SendNativeKeyEvent(keyup_web_event); |
279 | 276 |
280 long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code), | 277 long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code), |
281 flags); | 278 flags); |
282 output->assign(1, static_cast<base::char16>(c)); | 279 output->assign(1, static_cast<base::char16>(c)); |
283 return 1; | 280 return 1; |
284 #else | 281 #else |
285 NOTIMPLEMENTED(); | 282 NOTIMPLEMENTED(); |
286 return L'\0'; | 283 return L'\0'; |
(...skipping 2143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2430 ProcessPendingMessages(); | 2427 ProcessPendingMessages(); |
2431 base::Time after_navigation = | 2428 base::Time after_navigation = |
2432 base::Time::Now() + base::TimeDelta::FromDays(1); | 2429 base::Time::Now() + base::TimeDelta::FromDays(1); |
2433 | 2430 |
2434 base::Time late_nav_reported_start = | 2431 base::Time late_nav_reported_start = |
2435 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart()); | 2432 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart()); |
2436 EXPECT_LE(late_nav_reported_start, after_navigation); | 2433 EXPECT_LE(late_nav_reported_start, after_navigation); |
2437 } | 2434 } |
2438 | 2435 |
2439 } // namespace content | 2436 } // namespace content |
OLD | NEW |