Chromium Code Reviews| 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 c7642219f55824a2943cf93f6b302f2f6810cbb8..78a23709cf2ed1056ea8e77a674382a84f649326 100644 |
| --- a/chrome/browser/password_manager/password_store_mac.cc |
| +++ b/chrome/browser/password_manager/password_store_mac.cc |
| @@ -478,8 +478,8 @@ bool FormsMatchForMerge(const PasswordForm& form_a, |
| } |
| bool equal_realm = form_a.signon_realm == form_b.signon_realm; |
| if (strictness == FUZZY_FORM_MATCH) { |
| - equal_realm |= (!form_a.original_signon_realm.empty()) && |
| - form_a.original_signon_realm == form_b.signon_realm; |
| + equal_realm |= form_a.IsPublicSuffixMatch() && |
| + form_a.signon_realm == form_b.signon_realm; |
|
vabr (Chromium)
2015/09/24 15:17:33
This duplicates the condition from line 479.
I bel
dvadym
2015/09/25 10:19:52
Done.
|
| } |
| return form_a.scheme == form_b.scheme && equal_realm && |
| form_a.username_value == form_b.username_value; |
| @@ -1183,9 +1183,8 @@ ScopedVector<autofill::PasswordForm> PasswordStoreMac::FillMatchingLogins( |
| // http://crbug.com/340112 |
| if (form.scheme != db_form->scheme) |
| continue; // Forms with different schemes never match. |
| - const std::string& original_singon_realm(db_form->original_signon_realm); |
| - if (!original_singon_realm.empty()) |
| - realm_set.insert(original_singon_realm); |
| + if (db_form->IsPublicSuffixMatch()) |
| + realm_set.insert(db_form->signon_realm); |
| } |
| ScopedVector<autofill::PasswordForm> keychain_forms; |
| for (std::set<std::string>::const_iterator realm = realm_set.begin(); |
| @@ -1277,9 +1276,9 @@ bool PasswordStoreMac::DatabaseHasFormMatchingKeychainForm( |
| 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. |
| - if (db_form->original_signon_realm.empty() && |
| + // Below we filter out fuzzy matched forms because we are only interested |
| + // in exact ones. |
| + if (!db_form->IsPublicSuffixMatch() && |
| internal_keychain_helpers::FormsMatchForMerge( |
| form, *db_form, internal_keychain_helpers::STRICT_FORM_MATCH) && |
| db_form->origin == form.origin) { |