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

Side by Side Diff: components/password_manager/core/browser/login_database.cc

Issue 508143002: Remove Finch kill switch for PSL matching (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/password_manager/core/browser/login_database.h" 5 #include "components/password_manager/core/browser/login_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, " 583 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
584 "scheme, password_type, possible_usernames, times_used, form_data, " 584 "scheme, password_type, possible_usernames, times_used, form_data, "
585 "use_additional_auth, date_synced, display_name, avatar_url, " 585 "use_additional_auth, date_synced, display_name, avatar_url, "
586 "federation_url, is_zero_click FROM logins WHERE signon_realm == ? "; 586 "federation_url, is_zero_click FROM logins WHERE signon_realm == ? ";
587 sql::Statement s; 587 sql::Statement s;
588 const GURL signon_realm(form.signon_realm); 588 const GURL signon_realm(form.signon_realm);
589 std::string registered_domain = 589 std::string registered_domain =
590 PSLMatchingHelper::GetRegistryControlledDomain(signon_realm); 590 PSLMatchingHelper::GetRegistryControlledDomain(signon_realm);
591 PSLMatchingHelper::PSLDomainMatchMetric psl_domain_match_metric = 591 PSLMatchingHelper::PSLDomainMatchMetric psl_domain_match_metric =
592 PSLMatchingHelper::PSL_DOMAIN_MATCH_NONE; 592 PSLMatchingHelper::PSL_DOMAIN_MATCH_NONE;
593 const bool should_PSL_matching_apply =
594 psl_helper_.ShouldPSLDomainMatchingApply(registered_domain);
593 // PSL matching only applies to HTML forms. 595 // PSL matching only applies to HTML forms.
594 if (form.scheme == PasswordForm::SCHEME_HTML && 596 if (form.scheme == PasswordForm::SCHEME_HTML && should_PSL_matching_apply) {
595 psl_helper_.ShouldPSLDomainMatchingApply(registered_domain)) {
596 // We are extending the original SQL query with one that includes more 597 // We are extending the original SQL query with one that includes more
597 // possible matches based on public suffix domain matching. Using a regexp 598 // possible matches based on public suffix domain matching. Using a regexp
598 // here is just an optimization to not have to parse all the stored entries 599 // here is just an optimization to not have to parse all the stored entries
599 // in the |logins| table. The result (scheme, domain and port) is verified 600 // in the |logins| table. The result (scheme, domain and port) is verified
600 // further down using GURL. See the functions SchemeMatches, 601 // further down using GURL. See the functions SchemeMatches,
601 // RegistryControlledDomainMatches and PortMatches. 602 // RegistryControlledDomainMatches and PortMatches.
602 const std::string extended_sql_query = 603 const std::string extended_sql_query =
603 sql_query + "OR signon_realm REGEXP ? "; 604 sql_query + "OR signon_realm REGEXP ? ";
604 // TODO(nyquist) Re-enable usage of GetCachedStatement when 605 // TODO(nyquist) Re-enable usage of GetCachedStatement when
605 // http://crbug.com/248608 is fixed. 606 // http://crbug.com/248608 is fixed.
(...skipping 22 matching lines...) Expand all
628 } 629 }
629 630
630 while (s.Step()) { 631 while (s.Step()) {
631 scoped_ptr<PasswordForm> new_form(new PasswordForm()); 632 scoped_ptr<PasswordForm> new_form(new PasswordForm());
632 EncryptionResult result = InitPasswordFormFromStatement(new_form.get(), s); 633 EncryptionResult result = InitPasswordFormFromStatement(new_form.get(), s);
633 if (result == ENCRYPTION_RESULT_SERVICE_FAILURE) 634 if (result == ENCRYPTION_RESULT_SERVICE_FAILURE)
634 return false; 635 return false;
635 if (result == ENCRYPTION_RESULT_ITEM_FAILURE) 636 if (result == ENCRYPTION_RESULT_ITEM_FAILURE)
636 continue; 637 continue;
637 DCHECK(result == ENCRYPTION_RESULT_SUCCESS); 638 DCHECK(result == ENCRYPTION_RESULT_SUCCESS);
638 if (psl_helper_.IsMatchingEnabled()) { 639 if (should_PSL_matching_apply) {
639 if (!PSLMatchingHelper::IsPublicSuffixDomainMatch(new_form->signon_realm, 640 if (!PSLMatchingHelper::IsPublicSuffixDomainMatch(new_form->signon_realm,
640 form.signon_realm)) { 641 form.signon_realm)) {
641 // The database returned results that should not match. Skipping result. 642 // The database returned results that should not match. Skipping result.
642 continue; 643 continue;
643 } 644 }
644 if (form.signon_realm != new_form->signon_realm) { 645 if (form.signon_realm != new_form->signon_realm) {
645 // Ignore non-HTML matches. 646 // Ignore non-HTML matches.
646 if (new_form->scheme != PasswordForm::SCHEME_HTML) 647 if (new_form->scheme != PasswordForm::SCHEME_HTML)
647 continue; 648 continue;
648 649
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 773
773 bool LoginDatabase::DeleteAndRecreateDatabaseFile() { 774 bool LoginDatabase::DeleteAndRecreateDatabaseFile() {
774 DCHECK(db_.is_open()); 775 DCHECK(db_.is_open());
775 meta_table_.Reset(); 776 meta_table_.Reset();
776 db_.Close(); 777 db_.Close();
777 sql::Connection::Delete(db_path_); 778 sql::Connection::Delete(db_path_);
778 return Init(db_path_); 779 return Init(db_path_);
779 } 780 }
780 781
781 } // namespace password_manager 782 } // namespace password_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698