| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/renderer/password_autocomplete_manager.h" | 5 #include "chrome/renderer/password_autocomplete_manager.h" |
| 6 | 6 |
| 7 #include "app/keyboard_codes.h" | 7 #include "app/keyboard_codes.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/scoped_ptr.h" | 9 #include "base/scoped_ptr.h" |
| 10 #include "chrome/common/render_messages.h" | 10 #include "chrome/common/render_messages.h" |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 for (iter = fill_data.additional_logins.begin(); | 406 for (iter = fill_data.additional_logins.begin(); |
| 407 iter != fill_data.additional_logins.end(); ++iter) { | 407 iter != fill_data.additional_logins.end(); ++iter) { |
| 408 if (StartsWith(iter->first, input, false)) | 408 if (StartsWith(iter->first, input, false)) |
| 409 suggestions->push_back(iter->first); | 409 suggestions->push_back(iter->first); |
| 410 } | 410 } |
| 411 } | 411 } |
| 412 | 412 |
| 413 bool PasswordAutocompleteManager::ShowSuggestionPopup( | 413 bool PasswordAutocompleteManager::ShowSuggestionPopup( |
| 414 const webkit_glue::PasswordFormFillData& fill_data, | 414 const webkit_glue::PasswordFormFillData& fill_data, |
| 415 const WebKit::WebInputElement& user_input) { | 415 const WebKit::WebInputElement& user_input) { |
| 416 std::vector<string16> suggestions; | |
| 417 GetSuggestions(fill_data, user_input.value(), &suggestions); | |
| 418 if (suggestions.empty()) | |
| 419 return false; | |
| 420 | |
| 421 WebKit::WebView* webview = user_input.document().frame()->view(); | 416 WebKit::WebView* webview = user_input.document().frame()->view(); |
| 422 if (!webview) | 417 if (!webview) |
| 423 return false; | 418 return false; |
| 424 | 419 |
| 420 std::vector<string16> suggestions; |
| 421 GetSuggestions(fill_data, user_input.value(), &suggestions); |
| 422 if (suggestions.empty()) { |
| 423 webview->hidePopups(); |
| 424 return false; |
| 425 } |
| 426 |
| 425 std::vector<string16> labels(suggestions.size()); | 427 std::vector<string16> labels(suggestions.size()); |
| 426 std::vector<string16> icons(suggestions.size()); | 428 std::vector<string16> icons(suggestions.size()); |
| 427 std::vector<int> ids(suggestions.size(), 0); | 429 std::vector<int> ids(suggestions.size(), 0); |
| 428 webview->applyAutoFillSuggestions(user_input, suggestions, labels, icons, ids, | 430 webview->applyAutoFillSuggestions(user_input, suggestions, labels, icons, ids, |
| 429 -1); | 431 -1); |
| 430 return true; | 432 return true; |
| 431 } | 433 } |
| 432 | 434 |
| 433 bool PasswordAutocompleteManager::FillUserNameAndPassword( | 435 bool PasswordAutocompleteManager::FillUserNameAndPassword( |
| 434 WebKit::WebInputElement* username_element, | 436 WebKit::WebInputElement* username_element, |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 SetElementAutofilled(username_element, true); | 470 SetElementAutofilled(username_element, true); |
| 469 if (IsElementEditable(*password_element)) | 471 if (IsElementEditable(*password_element)) |
| 470 password_element->setValue(password); | 472 password_element->setValue(password); |
| 471 SetElementAutofilled(password_element, true); | 473 SetElementAutofilled(password_element, true); |
| 472 return true; | 474 return true; |
| 473 } | 475 } |
| 474 | 476 |
| 475 int PasswordAutocompleteManager::GetRoutingID() const { | 477 int PasswordAutocompleteManager::GetRoutingID() const { |
| 476 return render_view_->routing_id(); | 478 return render_view_->routing_id(); |
| 477 } | 479 } |
| OLD | NEW |