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 "chrome/test/webdriver/webdriver_session.h" | 5 #include "chrome/test/webdriver/webdriver_session.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 1520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1531 void Session::SendKeysOnSessionThread(const string16& keys, | 1531 void Session::SendKeysOnSessionThread(const string16& keys, |
1532 bool release_modifiers, Error** error) { | 1532 bool release_modifiers, Error** error) { |
1533 std::vector<WebKeyEvent> key_events; | 1533 std::vector<WebKeyEvent> key_events; |
1534 std::string error_msg; | 1534 std::string error_msg; |
1535 if (!ConvertKeysToWebKeyEvents(keys, logger_, release_modifiers, | 1535 if (!ConvertKeysToWebKeyEvents(keys, logger_, release_modifiers, |
1536 &sticky_modifiers_, &key_events, &error_msg)) { | 1536 &sticky_modifiers_, &key_events, &error_msg)) { |
1537 *error = new Error(kUnknownError, error_msg); | 1537 *error = new Error(kUnknownError, error_msg); |
1538 return; | 1538 return; |
1539 } | 1539 } |
1540 for (size_t i = 0; i < key_events.size(); ++i) { | 1540 for (size_t i = 0; i < key_events.size(); ++i) { |
1541 if (capabilities_.native_events) { | 1541 automation_->SendWebKeyEvent( |
1542 // The automation provider will generate up/down events for us, we | 1542 current_target_.view_id, |
1543 // only need to call it once as compared to the WebKeyEvent method. | 1543 key_events[i], error); |
1544 // Hence we filter events by their types, keeping only rawkeydown. | |
1545 if (key_events[i].type != automation::kRawKeyDownType) | |
1546 continue; | |
1547 automation_->SendNativeKeyEvent( | |
1548 current_target_.view_id, | |
1549 key_events[i].key_code, | |
1550 key_events[i].modifiers, | |
1551 error); | |
1552 } else { | |
1553 automation_->SendWebKeyEvent( | |
1554 current_target_.view_id, | |
1555 key_events[i], error); | |
1556 } | |
1557 if (*error) { | 1544 if (*error) { |
1558 std::string details = base::StringPrintf( | 1545 std::string details = base::StringPrintf( |
1559 "Failed to send key event. Event details:\n" | 1546 "Failed to send key event. Event details:\n" |
1560 "Type: %d, KeyCode: %d, UnmodifiedText: %s, ModifiedText: %s, " | 1547 "Type: %d, KeyCode: %d, UnmodifiedText: %s, ModifiedText: %s, " |
1561 "Modifiers: %d", | 1548 "Modifiers: %d", |
1562 key_events[i].type, | 1549 key_events[i].type, |
1563 key_events[i].key_code, | 1550 key_events[i].key_code, |
1564 key_events[i].unmodified_text.c_str(), | 1551 key_events[i].unmodified_text.c_str(), |
1565 key_events[i].modified_text.c_str(), | 1552 key_events[i].modified_text.c_str(), |
1566 key_events[i].modifiers); | 1553 key_events[i].modifiers); |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1952 capabilities_.local_state->GetWithoutPathExpansion(*iter, &value); | 1939 capabilities_.local_state->GetWithoutPathExpansion(*iter, &value); |
1953 Error* error = SetPreference(*iter, false /* is_user_pref */, | 1940 Error* error = SetPreference(*iter, false /* is_user_pref */, |
1954 value->DeepCopy()); | 1941 value->DeepCopy()); |
1955 if (error) | 1942 if (error) |
1956 return error; | 1943 return error; |
1957 } | 1944 } |
1958 return NULL; | 1945 return NULL; |
1959 } | 1946 } |
1960 | 1947 |
1961 } // namespace webdriver | 1948 } // namespace webdriver |
OLD | NEW |