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