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