OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 content::NativeWebKeyboardEvent event(blink::WebKeyboardEvent::kRawKeyDown, | 477 content::NativeWebKeyboardEvent event(blink::WebKeyboardEvent::kRawKeyDown, |
478 blink::WebInputEvent::kNoModifiers, | 478 blink::WebInputEvent::kNoModifiers, |
479 ui::EventTimeForNow()); | 479 ui::EventTimeForNow()); |
480 event.windows_key_code = key_code; | 480 event.windows_key_code = key_code; |
481 event.dom_code = static_cast<int>(code); | 481 event.dom_code = static_cast<int>(code); |
482 event.dom_key = key; | 482 event.dom_key = key; |
483 test_delegate_.Reset(); | 483 test_delegate_.Reset(); |
484 // Install the key press event sink to ensure that any events that are not | 484 // Install the key press event sink to ensure that any events that are not |
485 // handled by the installed callbacks do not end up crashing the test. | 485 // handled by the installed callbacks do not end up crashing the test. |
486 widget->AddKeyPressEventCallback(key_press_event_sink_); | 486 widget->AddKeyPressEventCallback(key_press_event_sink_); |
487 widget->ForwardKeyboardEvent(event); | 487 widget->ForwardKeyboardEventWithLatencyInfo(event, ui::LatencyInfo()); |
488 test_delegate_.Wait(); | 488 test_delegate_.Wait(); |
489 widget->RemoveKeyPressEventCallback(key_press_event_sink_); | 489 widget->RemoveKeyPressEventCallback(key_press_event_sink_); |
490 } | 490 } |
491 | 491 |
492 void SendKeyToDataListPopup(ui::DomKey key) { | 492 void SendKeyToDataListPopup(ui::DomKey key) { |
493 ui::KeyboardCode key_code = ui::NonPrintableDomKeyToKeyboardCode(key); | 493 ui::KeyboardCode key_code = ui::NonPrintableDomKeyToKeyboardCode(key); |
494 ui::DomCode code = ui::UsLayoutKeyboardCodeToDomCode(key_code); | 494 ui::DomCode code = ui::UsLayoutKeyboardCodeToDomCode(key_code); |
495 SendKeyToDataListPopup(key, code, key_code); | 495 SendKeyToDataListPopup(key, code, key_code); |
496 } | 496 } |
497 | 497 |
498 // Datalist does not support autofill preview. There is no need to start | 498 // Datalist does not support autofill preview. There is no need to start |
499 // message loop for Datalist. | 499 // message loop for Datalist. |
500 void SendKeyToDataListPopup(ui::DomKey key, | 500 void SendKeyToDataListPopup(ui::DomKey key, |
501 ui::DomCode code, | 501 ui::DomCode code, |
502 ui::KeyboardCode key_code) { | 502 ui::KeyboardCode key_code) { |
503 // Route popup-targeted key presses via the render view host. | 503 // Route popup-targeted key presses via the render view host. |
504 content::NativeWebKeyboardEvent event(blink::WebKeyboardEvent::kRawKeyDown, | 504 content::NativeWebKeyboardEvent event(blink::WebKeyboardEvent::kRawKeyDown, |
505 blink::WebInputEvent::kNoModifiers, | 505 blink::WebInputEvent::kNoModifiers, |
506 ui::EventTimeForNow()); | 506 ui::EventTimeForNow()); |
507 event.windows_key_code = key_code; | 507 event.windows_key_code = key_code; |
508 event.dom_code = static_cast<int>(code); | 508 event.dom_code = static_cast<int>(code); |
509 event.dom_key = key; | 509 event.dom_key = key; |
510 // Install the key press event sink to ensure that any events that are not | 510 // Install the key press event sink to ensure that any events that are not |
511 // handled by the installed callbacks do not end up crashing the test. | 511 // handled by the installed callbacks do not end up crashing the test. |
512 GetRenderViewHost()->GetWidget()->AddKeyPressEventCallback( | 512 GetRenderViewHost()->GetWidget()->AddKeyPressEventCallback( |
513 key_press_event_sink_); | 513 key_press_event_sink_); |
514 GetRenderViewHost()->GetWidget()->ForwardKeyboardEvent(event); | 514 GetRenderViewHost()->GetWidget()->ForwardKeyboardEventWithLatencyInfo( |
| 515 event, ui::LatencyInfo()); |
515 GetRenderViewHost()->GetWidget()->RemoveKeyPressEventCallback( | 516 GetRenderViewHost()->GetWidget()->RemoveKeyPressEventCallback( |
516 key_press_event_sink_); | 517 key_press_event_sink_); |
517 } | 518 } |
518 | 519 |
519 void TryBasicFormFill() { | 520 void TryBasicFormFill() { |
520 FocusFirstNameField(); | 521 FocusFirstNameField(); |
521 | 522 |
522 // Start filling the first name field with "M" and wait for the popup to be | 523 // Start filling the first name field with "M" and wait for the popup to be |
523 // shown. | 524 // shown. |
524 SendKeyToPageAndWait(ui::DomKey::FromCharacter('M'), ui::DomCode::US_M, | 525 SendKeyToPageAndWait(ui::DomKey::FromCharacter('M'), ui::DomCode::US_M, |
(...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1860 std::string script_focus( | 1861 std::string script_focus( |
1861 "window.focus();" | 1862 "window.focus();" |
1862 "document.getElementById('CREDIT_CARD_NUMBER').focus();"); | 1863 "document.getElementById('CREDIT_CARD_NUMBER').focus();"); |
1863 ASSERT_TRUE(content::ExecuteScript(cross_frame, script_focus)); | 1864 ASSERT_TRUE(content::ExecuteScript(cross_frame, script_focus)); |
1864 | 1865 |
1865 // Send an arrow dow keypress in order to trigger the autofill popup. | 1866 // Send an arrow dow keypress in order to trigger the autofill popup. |
1866 SendKeyToPageAndWait(ui::DomKey::ARROW_DOWN); | 1867 SendKeyToPageAndWait(ui::DomKey::ARROW_DOWN); |
1867 } | 1868 } |
1868 | 1869 |
1869 } // namespace autofill | 1870 } // namespace autofill |
OLD | NEW |