| 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 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 blink::WebInputEvent::NoModifiers, | 459 blink::WebInputEvent::NoModifiers, |
| 460 ui::EventTimeForNow()); | 460 ui::EventTimeForNow()); |
| 461 event.windowsKeyCode = key_code; | 461 event.windowsKeyCode = key_code; |
| 462 event.domCode = static_cast<int>(code); | 462 event.domCode = static_cast<int>(code); |
| 463 event.domKey = key; | 463 event.domKey = key; |
| 464 test_delegate_.Reset(); | 464 test_delegate_.Reset(); |
| 465 // Install the key press event sink to ensure that any events that are not | 465 // Install the key press event sink to ensure that any events that are not |
| 466 // handled by the installed callbacks do not end up crashing the test. | 466 // handled by the installed callbacks do not end up crashing the test. |
| 467 GetRenderViewHost()->GetWidget()->AddKeyPressEventCallback( | 467 GetRenderViewHost()->GetWidget()->AddKeyPressEventCallback( |
| 468 key_press_event_sink_); | 468 key_press_event_sink_); |
| 469 GetRenderViewHost()->GetWidget()->ForwardKeyboardEvent(event); | 469 GetRenderViewHost()->GetWidget()->ForwardKeyboardEventWithLatencyInfo( |
| 470 event, ui::LatencyInfo()); |
| 470 test_delegate_.Wait(); | 471 test_delegate_.Wait(); |
| 471 GetRenderViewHost()->GetWidget()->RemoveKeyPressEventCallback( | 472 GetRenderViewHost()->GetWidget()->RemoveKeyPressEventCallback( |
| 472 key_press_event_sink_); | 473 key_press_event_sink_); |
| 473 } | 474 } |
| 474 | 475 |
| 475 void SendKeyToDataListPopup(ui::DomKey key) { | 476 void SendKeyToDataListPopup(ui::DomKey key) { |
| 476 ui::KeyboardCode key_code = ui::NonPrintableDomKeyToKeyboardCode(key); | 477 ui::KeyboardCode key_code = ui::NonPrintableDomKeyToKeyboardCode(key); |
| 477 ui::DomCode code = ui::UsLayoutKeyboardCodeToDomCode(key_code); | 478 ui::DomCode code = ui::UsLayoutKeyboardCodeToDomCode(key_code); |
| 478 SendKeyToDataListPopup(key, code, key_code); | 479 SendKeyToDataListPopup(key, code, key_code); |
| 479 } | 480 } |
| 480 | 481 |
| 481 // Datalist does not support autofill preview. There is no need to start | 482 // Datalist does not support autofill preview. There is no need to start |
| 482 // message loop for Datalist. | 483 // message loop for Datalist. |
| 483 void SendKeyToDataListPopup(ui::DomKey key, | 484 void SendKeyToDataListPopup(ui::DomKey key, |
| 484 ui::DomCode code, | 485 ui::DomCode code, |
| 485 ui::KeyboardCode key_code) { | 486 ui::KeyboardCode key_code) { |
| 486 // Route popup-targeted key presses via the render view host. | 487 // Route popup-targeted key presses via the render view host. |
| 487 content::NativeWebKeyboardEvent event(blink::WebKeyboardEvent::RawKeyDown, | 488 content::NativeWebKeyboardEvent event(blink::WebKeyboardEvent::RawKeyDown, |
| 488 blink::WebInputEvent::NoModifiers, | 489 blink::WebInputEvent::NoModifiers, |
| 489 ui::EventTimeForNow()); | 490 ui::EventTimeForNow()); |
| 490 event.windowsKeyCode = key_code; | 491 event.windowsKeyCode = key_code; |
| 491 event.domCode = static_cast<int>(code); | 492 event.domCode = static_cast<int>(code); |
| 492 event.domKey = key; | 493 event.domKey = key; |
| 493 // Install the key press event sink to ensure that any events that are not | 494 // Install the key press event sink to ensure that any events that are not |
| 494 // handled by the installed callbacks do not end up crashing the test. | 495 // handled by the installed callbacks do not end up crashing the test. |
| 495 GetRenderViewHost()->GetWidget()->AddKeyPressEventCallback( | 496 GetRenderViewHost()->GetWidget()->AddKeyPressEventCallback( |
| 496 key_press_event_sink_); | 497 key_press_event_sink_); |
| 497 GetRenderViewHost()->GetWidget()->ForwardKeyboardEvent(event); | 498 GetRenderViewHost()->GetWidget()->ForwardKeyboardEventWithLatencyInfo( |
| 499 event, ui::LatencyInfo()); |
| 498 GetRenderViewHost()->GetWidget()->RemoveKeyPressEventCallback( | 500 GetRenderViewHost()->GetWidget()->RemoveKeyPressEventCallback( |
| 499 key_press_event_sink_); | 501 key_press_event_sink_); |
| 500 } | 502 } |
| 501 | 503 |
| 502 void TryBasicFormFill() { | 504 void TryBasicFormFill() { |
| 503 FocusFirstNameField(); | 505 FocusFirstNameField(); |
| 504 | 506 |
| 505 // Start filling the first name field with "M" and wait for the popup to be | 507 // Start filling the first name field with "M" and wait for the popup to be |
| 506 // shown. | 508 // shown. |
| 507 SendKeyToPageAndWait(ui::DomKey::FromCharacter('M'), ui::DomCode::US_M, | 509 SendKeyToPageAndWait(ui::DomKey::FromCharacter('M'), ui::DomCode::US_M, |
| (...skipping 1221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1729 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(), url)); | 1731 ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL(browser(), url)); |
| 1730 | 1732 |
| 1731 ASSERT_TRUE(content::ExecuteScript( | 1733 ASSERT_TRUE(content::ExecuteScript( |
| 1732 GetRenderViewHost(), | 1734 GetRenderViewHost(), |
| 1733 "document.getElementById('user').value = 'user';")); | 1735 "document.getElementById('user').value = 'user';")); |
| 1734 FocusFieldByName("password"); | 1736 FocusFieldByName("password"); |
| 1735 PasteStringAndWait("foobar"); | 1737 PasteStringAndWait("foobar"); |
| 1736 } | 1738 } |
| 1737 | 1739 |
| 1738 } // namespace autofill | 1740 } // namespace autofill |
| OLD | NEW |