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

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

Issue 2652243002: Implement Federated PSL Matches in Native Backends (Closed)
Patch Set: Naming things is hard. Created 3 years, 11 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/native_backend_gnome_x.cc
diff --git a/chrome/browser/password_manager/native_backend_gnome_x.cc b/chrome/browser/password_manager/native_backend_gnome_x.cc
index 9dcf47502caa52daebbc7d3dd4ffffdb6637cb0c..852ce686e193e412a7b96a7c955921f7c861109e 100644
--- a/chrome/browser/password_manager/native_backend_gnome_x.cc
+++ b/chrome/browser/password_manager/native_backend_gnome_x.cc
@@ -31,6 +31,7 @@ using base::UTF8ToUTF16;
using base::UTF16ToUTF8;
using content::BrowserThread;
using namespace password_manager::metrics_util;
+using password_manager::MatchResult;
using password_manager::PasswordStore;
namespace {
@@ -131,33 +132,37 @@ std::vector<std::unique_ptr<PasswordForm>> ConvertFormList(
GnomeKeyringAttributeList* attrs = data->attributes;
std::unique_ptr<PasswordForm> form(FormFromAttributes(attrs));
- if (form) {
- if (lookup_form && form->signon_realm != lookup_form->signon_realm) {
- if (lookup_form->scheme != PasswordForm::SCHEME_HTML ||
- form->scheme != PasswordForm::SCHEME_HTML)
- continue; // Ignore non-HTML matches.
- // This is not an exact match, we try PSL matching and federated match.
- if (allow_psl_match &&
- password_manager::IsPublicSuffixDomainMatch(
- form->signon_realm, lookup_form->signon_realm)) {
+ if (!form) {
+ LOG(WARNING) << "Could not initialize PasswordForm from attributes!";
+ continue;
+ }
+
+ if (lookup_form) {
+ switch (GetMatchResult(*form, *lookup_form)) {
+ case MatchResult::NO_MATCH:
+ continue;
+ case MatchResult::EXACT_MATCH:
+ break;
+ case MatchResult::PSL_MATCH:
vasilii 2017/01/26 13:35:17 |allow_psl_match| isn't used anymore. Deliberately
jdoerrie 2017/01/26 14:47:56 Yeah, it's now part of |GetMatchResult|. It's stil
psl_domain_match_metric = password_manager::PSL_DOMAIN_MATCH_FOUND;
form->is_public_suffix_match = true;
- } else if (!form->federation_origin.unique() &&
- password_manager::IsFederatedMatch(form->signon_realm,
- lookup_form->origin)) {
- } else {
- continue;
- }
- }
- if (data->secret) {
- form->password_value = UTF8ToUTF16(data->secret);
- } else {
- LOG(WARNING) << "Unable to access password from list element!";
+ break;
+ case MatchResult::FEDERATED_MATCH:
+ break;
+ case MatchResult::FEDERATED_PSL_MATCH:
+ psl_domain_match_metric =
+ password_manager::PSL_DOMAIN_MATCH_FOUND_FEDERATED;
+ form->is_public_suffix_match = true;
+ break;
}
- forms.push_back(std::move(form));
+ }
+
+ if (data->secret) {
+ form->password_value = UTF8ToUTF16(data->secret);
} else {
- LOG(WARNING) << "Could not initialize PasswordForm from attributes!";
+ LOG(WARNING) << "Unable to access password from list element!";
}
+ forms.push_back(std::move(form));
}
if (lookup_form) {
UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering",

Powered by Google App Engine
This is Rietveld 408576698