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

Unified Diff: chrome/browser/password_manager/password_store_mac.cc

Issue 906973007: PasswordStore: Clean up expectations about rewriting vectors of forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix FillMatchingLogins + a typo Created 5 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/password_manager/password_store_mac.cc
diff --git a/chrome/browser/password_manager/password_store_mac.cc b/chrome/browser/password_manager/password_store_mac.cc
index 31c0d2b43d67d07a11c33b539ebc98d31deac799..51f2ad11a5a5969bb50358b868c5f5e579fe2ef8 100644
--- a/chrome/browser/password_manager/password_store_mac.cc
+++ b/chrome/browser/password_manager/password_store_mac.cc
@@ -1062,11 +1062,11 @@ ScopedVector<autofill::PasswordForm> PasswordStoreMac::FillMatchingLogins(
chrome::ScopedSecKeychainSetUserInteractionAllowed user_interaction_allowed(
prompt_policy == ALLOW_PROMPT);
- if (!login_metadata_db_)
- return ScopedVector<autofill::PasswordForm>();
-
ScopedVector<PasswordForm> database_forms;
- login_metadata_db_->GetLogins(form, &database_forms);
+ if (!login_metadata_db_ ||
+ !login_metadata_db_->GetLogins(form, &database_forms)) {
+ return ScopedVector<autofill::PasswordForm>();
+ }
// Let's gather all signon realms we want to match with keychain entries.
std::set<std::string> realm_set;
@@ -1125,6 +1125,7 @@ void PasswordStoreMac::GetAutofillableLoginsImpl(
bool PasswordStoreMac::FillAutofillableLogins(
ScopedVector<autofill::PasswordForm>* forms) {
DCHECK(thread_->message_loop() == base::MessageLoop::current());
+ forms->clear();
ScopedVector<PasswordForm> database_forms;
if (!login_metadata_db_ ||
@@ -1144,6 +1145,7 @@ bool PasswordStoreMac::FillAutofillableLogins(
bool PasswordStoreMac::FillBlacklistLogins(
ScopedVector<autofill::PasswordForm>* forms) {
+ forms->clear();
engedy 2015/03/09 13:33:18 nit: Sorry, I was meaning to say after the DCHECK.
vabr (Chromium) 2015/03/09 17:44:15 Done. I agree that preconditions-checking DCHECK s
DCHECK(thread_->message_loop() == base::MessageLoop::current());
return login_metadata_db_ && login_metadata_db_->GetBlacklistLogins(forms);
}
@@ -1161,7 +1163,8 @@ bool PasswordStoreMac::DatabaseHasFormMatchingKeychainForm(
DCHECK(login_metadata_db_);
bool has_match = false;
ScopedVector<autofill::PasswordForm> database_forms;
- login_metadata_db_->GetLogins(form, &database_forms);
+ if (!login_metadata_db_->GetLogins(form, &database_forms))
+ return false;
for (const autofill::PasswordForm* db_form : database_forms) {
// Below we filter out forms with non-empty original_signon_realm, because
// those signal fuzzy matches, and we are only interested in exact ones.
@@ -1204,7 +1207,8 @@ void PasswordStoreMac::CleanOrphanedForms(
DCHECK(login_metadata_db_);
ScopedVector<autofill::PasswordForm> database_forms;
- login_metadata_db_->GetAutofillableLogins(&database_forms);
+ if (!login_metadata_db_->GetAutofillableLogins(&database_forms))
+ return;
// Filter forms with corresponding Keychain entry out of |database_forms|.
ScopedVector<PasswordForm> forms_with_keychain_entry;

Powered by Google App Engine
This is Rietveld 408576698