Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: components/password_manager/core/browser/password_autofill_manager.cc

Issue 614023002: [Password manager] Relplace the FormFieldData vector from autofill::FormData with named fields… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporated nit from Vaclav's review. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "components/password_manager/core/browser/password_autofill_manager.h" 5 #include "components/password_manager/core/browser/password_autofill_manager.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
(...skipping 11 matching lines...) Expand all
22 22
23 // This function attempts to fill |suggestions| and |realms| form |fill_data| 23 // This function attempts to fill |suggestions| and |realms| form |fill_data|
24 // based on |current_username|. Unless |show_all| is true, it only picks 24 // based on |current_username|. Unless |show_all| is true, it only picks
25 // suggestions where the username has |current_username| as a prefix. 25 // suggestions where the username has |current_username| as a prefix.
26 void GetSuggestions(const autofill::PasswordFormFillData& fill_data, 26 void GetSuggestions(const autofill::PasswordFormFillData& fill_data,
27 const base::string16& current_username, 27 const base::string16& current_username,
28 std::vector<base::string16>* suggestions, 28 std::vector<base::string16>* suggestions,
29 std::vector<base::string16>* realms, 29 std::vector<base::string16>* realms,
30 bool show_all) { 30 bool show_all) {
31 if (show_all || 31 if (show_all ||
32 StartsWith( 32 StartsWith(fill_data.username_field.value, current_username, false)) {
33 fill_data.basic_data.fields[0].value, current_username, false)) { 33 suggestions->push_back(fill_data.username_field.value);
34 suggestions->push_back(fill_data.basic_data.fields[0].value);
35 realms->push_back(base::UTF8ToUTF16(fill_data.preferred_realm)); 34 realms->push_back(base::UTF8ToUTF16(fill_data.preferred_realm));
36 } 35 }
37 36
38 for (const auto& login : fill_data.additional_logins) { 37 for (const auto& login : fill_data.additional_logins) {
39 if (show_all || StartsWith(login.first, current_username, false)) { 38 if (show_all || StartsWith(login.first, current_username, false)) {
40 suggestions->push_back(login.first); 39 suggestions->push_back(login.first);
41 realms->push_back(base::UTF8ToUTF16(login.second.realm)); 40 realms->push_back(base::UTF8ToUTF16(login.second.realm));
42 } 41 }
43 } 42 }
44 43
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 193
195 bool PasswordAutofillManager::GetPasswordForUsername( 194 bool PasswordAutofillManager::GetPasswordForUsername(
196 const base::string16& current_username, 195 const base::string16& current_username,
197 const autofill::PasswordFormFillData& fill_data, 196 const autofill::PasswordFormFillData& fill_data,
198 base::string16* password) { 197 base::string16* password) {
199 // TODO(dubroy): When password access requires some kind of authentication 198 // TODO(dubroy): When password access requires some kind of authentication
200 // (e.g. Keychain access on Mac OS), use |password_manager_client_| here to 199 // (e.g. Keychain access on Mac OS), use |password_manager_client_| here to
201 // fetch the actual password. See crbug.com/178358 for more context. 200 // fetch the actual password. See crbug.com/178358 for more context.
202 201
203 // Look for any suitable matches to current field text. 202 // Look for any suitable matches to current field text.
204 if (fill_data.basic_data.fields[0].value == current_username) { 203 if (fill_data.username_field.value == current_username) {
205 *password = fill_data.basic_data.fields[1].value; 204 *password = fill_data.password_field.value;
206 return true; 205 return true;
207 } 206 }
208 207
209 // Scan additional logins for a match. 208 // Scan additional logins for a match.
210 for (autofill::PasswordFormFillData::LoginCollection::const_iterator iter = 209 for (autofill::PasswordFormFillData::LoginCollection::const_iterator iter =
211 fill_data.additional_logins.begin(); 210 fill_data.additional_logins.begin();
212 iter != fill_data.additional_logins.end(); 211 iter != fill_data.additional_logins.end();
213 ++iter) { 212 ++iter) {
214 if (iter->first == current_username) { 213 if (iter->first == current_username) {
215 *password = iter->second.password; 214 *password = iter->second.password;
(...skipping 21 matching lines...) Expand all
237 autofill::PasswordFormFillData* found_password) { 236 autofill::PasswordFormFillData* found_password) {
238 LoginToPasswordInfoMap::iterator iter = login_to_password_info_.find(key); 237 LoginToPasswordInfoMap::iterator iter = login_to_password_info_.find(key);
239 if (iter == login_to_password_info_.end()) 238 if (iter == login_to_password_info_.end())
240 return false; 239 return false;
241 240
242 *found_password = iter->second; 241 *found_password = iter->second;
243 return true; 242 return true;
244 } 243 }
245 244
246 } // namespace password_manager 245 } // namespace password_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698