Chromium Code Reviews| 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/browser/password_manager/password_store_mac.h" | 5 #include "chrome/browser/password_manager/password_store_mac.h" |
| 6 #include "chrome/browser/password_manager/password_store_mac_internal.h" | 6 #include "chrome/browser/password_manager/password_store_mac_internal.h" |
| 7 | 7 |
| 8 #include <CoreServices/CoreServices.h> | 8 #include <CoreServices/CoreServices.h> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1118 void PasswordStoreMac::GetAutofillableLoginsImpl( | 1118 void PasswordStoreMac::GetAutofillableLoginsImpl( |
| 1119 scoped_ptr<PasswordStore::GetLoginsRequest> request) { | 1119 scoped_ptr<PasswordStore::GetLoginsRequest> request) { |
| 1120 ScopedVector<autofill::PasswordForm> obtained_forms; | 1120 ScopedVector<autofill::PasswordForm> obtained_forms; |
| 1121 FillAutofillableLogins(&obtained_forms); | 1121 FillAutofillableLogins(&obtained_forms); |
| 1122 request->NotifyConsumerWithResults(obtained_forms.Pass()); | 1122 request->NotifyConsumerWithResults(obtained_forms.Pass()); |
| 1123 } | 1123 } |
| 1124 | 1124 |
| 1125 bool PasswordStoreMac::FillAutofillableLogins( | 1125 bool PasswordStoreMac::FillAutofillableLogins( |
| 1126 ScopedVector<autofill::PasswordForm>* forms) { | 1126 ScopedVector<autofill::PasswordForm>* forms) { |
| 1127 DCHECK(thread_->message_loop() == base::MessageLoop::current()); | 1127 DCHECK(thread_->message_loop() == base::MessageLoop::current()); |
| 1128 forms->clear(); | |
| 1128 | 1129 |
| 1129 ScopedVector<PasswordForm> database_forms; | 1130 ScopedVector<PasswordForm> database_forms; |
| 1130 if (!login_metadata_db_ || | 1131 if (!login_metadata_db_ || |
| 1131 !login_metadata_db_->GetAutofillableLogins(&database_forms)) | 1132 !login_metadata_db_->GetAutofillableLogins(&database_forms)) |
| 1132 return false; | 1133 return false; |
| 1133 | 1134 |
| 1134 internal_keychain_helpers::GetPasswordsForForms(*keychain_, &database_forms, | 1135 internal_keychain_helpers::GetPasswordsForForms(*keychain_, &database_forms, |
| 1135 forms); | 1136 forms); |
| 1136 | 1137 |
| 1137 if (!database_forms.empty()) { | 1138 if (!database_forms.empty()) { |
| 1138 RemoveDatabaseForms(&database_forms); | 1139 RemoveDatabaseForms(&database_forms); |
| 1139 NotifyLoginsChanged(FormsToRemoveChangeList(database_forms.get())); | 1140 NotifyLoginsChanged(FormsToRemoveChangeList(database_forms.get())); |
| 1140 } | 1141 } |
| 1141 | 1142 |
| 1142 return true; | 1143 return true; |
| 1143 } | 1144 } |
| 1144 | 1145 |
| 1145 bool PasswordStoreMac::FillBlacklistLogins( | 1146 bool PasswordStoreMac::FillBlacklistLogins( |
| 1146 ScopedVector<autofill::PasswordForm>* forms) { | 1147 ScopedVector<autofill::PasswordForm>* forms) { |
| 1147 DCHECK(thread_->message_loop() == base::MessageLoop::current()); | 1148 DCHECK(thread_->message_loop() == base::MessageLoop::current()); |
|
engedy
2015/02/25 15:17:48
Need to clear |forms| above here.
vabr (Chromium)
2015/03/09 10:56:19
Done.
| |
| 1148 return login_metadata_db_ && login_metadata_db_->GetBlacklistLogins(forms); | 1149 return login_metadata_db_ && login_metadata_db_->GetBlacklistLogins(forms); |
| 1149 } | 1150 } |
| 1150 | 1151 |
| 1151 bool PasswordStoreMac::AddToKeychainIfNecessary(const PasswordForm& form) { | 1152 bool PasswordStoreMac::AddToKeychainIfNecessary(const PasswordForm& form) { |
| 1152 if (form.blacklisted_by_user) { | 1153 if (form.blacklisted_by_user) { |
| 1153 return true; | 1154 return true; |
| 1154 } | 1155 } |
| 1155 MacKeychainPasswordFormAdapter keychainAdapter(keychain_.get()); | 1156 MacKeychainPasswordFormAdapter keychainAdapter(keychain_.get()); |
| 1156 return keychainAdapter.AddPassword(form); | 1157 return keychainAdapter.AddPassword(form); |
| 1157 } | 1158 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1210 ScopedVector<PasswordForm> forms_with_keychain_entry; | 1211 ScopedVector<PasswordForm> forms_with_keychain_entry; |
| 1211 internal_keychain_helpers::GetPasswordsForForms(*keychain_, &database_forms, | 1212 internal_keychain_helpers::GetPasswordsForForms(*keychain_, &database_forms, |
| 1212 &forms_with_keychain_entry); | 1213 &forms_with_keychain_entry); |
| 1213 | 1214 |
| 1214 // Clean up any orphaned database entries. | 1215 // Clean up any orphaned database entries. |
| 1215 RemoveDatabaseForms(&database_forms); | 1216 RemoveDatabaseForms(&database_forms); |
| 1216 | 1217 |
| 1217 // Move the orphaned DB forms to the output parameter. | 1218 // Move the orphaned DB forms to the output parameter. |
| 1218 AppendSecondToFirst(orphaned_forms, &database_forms); | 1219 AppendSecondToFirst(orphaned_forms, &database_forms); |
| 1219 } | 1220 } |
| OLD | NEW |