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

Unified Diff: components/password_manager/core/browser/login_database.cc

Issue 2634163002: Fetch federated PSL-matches from the password store. (Closed)
Patch Set: 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: components/password_manager/core/browser/login_database.cc
diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc
index 82ec036ac2b0be4bcdd56d6a3d6a74f48c49d42c..d57aed2a5b7a608fd1148c0f653c8cb538974a92 100644
--- a/components/password_manager/core/browser/login_database.cc
+++ b/components/password_manager/core/browser/login_database.cc
@@ -1093,6 +1093,13 @@ bool LoginDatabase::GetLogins(
s.BindString(placeholder++, expression);
}
+ if (should_PSL_matching_apply && should_federated_apply) {
+ std::string federation_regexp = "^federation://([\\w-]+\\.)*" +
+ registered_domain + "(:" +
+ signon_realm.port() + ")?/.+$";
jdoerrie 2017/01/16 18:04:14 Couple questions here: - Do federated matches ever
vasilii 2017/01/17 12:41:24 No, we don't save port. That is correct for the re
jdoerrie 2017/01/17 13:37:18 Acknowledged.
+ s.BindString(placeholder++, federation_regexp);
+ }
+
if (!should_PSL_matching_apply && !should_federated_apply) {
// Otherwise the histogram is reported in StatementToForms.
UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering",
@@ -1221,6 +1228,11 @@ bool LoginDatabase::StatementToForms(
} else if (!new_form->federation_origin.unique() &&
IsFederatedMatch(new_form->signon_realm,
matched_form->origin)) {
+ } else if (!new_form->federation_origin.unique() &&
+ IsFederatedPSLMatch(new_form->signon_realm,
+ matched_form->origin)) {
+ psl_domain_match_metric = PSL_DOMAIN_MATCH_FOUND;
jdoerrie 2017/01/16 18:04:14 Should we consider adding a new value to |PSLDomai
vasilii 2017/01/17 12:41:24 Sure.
+ new_form->is_public_suffix_match = true;
} else {
continue;
}
@@ -1277,13 +1289,15 @@ void LoginDatabase::InitializeStatementStrings(const SQLTableBuilder& builder) {
std::string psl_statement = "OR signon_realm REGEXP ? ";
std::string federated_statement =
vasilii 2017/01/17 12:41:24 Seems to be obsolete
jdoerrie 2017/01/17 13:37:18 Acknowledged. It's obsolete for matching federated
"OR (signon_realm LIKE ? AND password_type == 2) ";
+ std::string psl_federated_statement =
+ "OR (signon_realm REGEXP ? AND password_type == 2) ";
DCHECK(get_statement_psl_.empty());
get_statement_psl_ = get_statement_ + psl_statement;
DCHECK(get_statement_federated_.empty());
get_statement_federated_ = get_statement_ + federated_statement;
DCHECK(get_statement_psl_federated_.empty());
- get_statement_psl_federated_ =
- get_statement_ + psl_statement + federated_statement;
+ get_statement_psl_federated_ = get_statement_ + psl_statement +
+ federated_statement + psl_federated_statement;
DCHECK(created_statement_.empty());
created_statement_ =
"SELECT " + all_column_names +

Powered by Google App Engine
This is Rietveld 408576698