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

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

Issue 825773003: PasswordStore: Use ScopedVector to express ownership of forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use assignment instead of construction Created 5 years, 10 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 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 } 676 }
677 form->date_synced = 677 form->date_synced =
678 base::Time::FromInternalValue(s.ColumnInt64(COLUMN_DATE_SYNCED)); 678 base::Time::FromInternalValue(s.ColumnInt64(COLUMN_DATE_SYNCED));
679 form->display_name = s.ColumnString16(COLUMN_DISPLAY_NAME); 679 form->display_name = s.ColumnString16(COLUMN_DISPLAY_NAME);
680 form->avatar_url = GURL(s.ColumnString(COLUMN_AVATAR_URL)); 680 form->avatar_url = GURL(s.ColumnString(COLUMN_AVATAR_URL));
681 form->federation_url = GURL(s.ColumnString(COLUMN_FEDERATION_URL)); 681 form->federation_url = GURL(s.ColumnString(COLUMN_FEDERATION_URL));
682 form->is_zero_click = (s.ColumnInt(COLUMN_IS_ZERO_CLICK) > 0); 682 form->is_zero_click = (s.ColumnInt(COLUMN_IS_ZERO_CLICK) > 0);
683 return ENCRYPTION_RESULT_SUCCESS; 683 return ENCRYPTION_RESULT_SUCCESS;
684 } 684 }
685 685
686 bool LoginDatabase::GetLogins(const PasswordForm& form, 686 bool LoginDatabase::GetLogins(
687 std::vector<PasswordForm*>* forms) const { 687 const PasswordForm& form,
688 ScopedVector<autofill::PasswordForm>* forms) const {
688 DCHECK(forms); 689 DCHECK(forms);
689 // You *must* change LoginTableColumns if this query changes. 690 // You *must* change LoginTableColumns if this query changes.
690 const std::string sql_query = 691 const std::string sql_query =
691 "SELECT origin_url, action_url, " 692 "SELECT origin_url, action_url, "
692 "username_element, username_value, " 693 "username_element, username_value, "
693 "password_element, password_value, submit_element, " 694 "password_element, password_value, submit_element, "
694 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, " 695 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
695 "scheme, password_type, possible_usernames, times_used, form_data, " 696 "scheme, password_type, possible_usernames, times_used, form_data, "
696 "date_synced, display_name, avatar_url, " 697 "date_synced, display_name, avatar_url, "
697 "federation_url, is_zero_click FROM logins WHERE signon_realm == ? "; 698 "federation_url, is_zero_click FROM logins WHERE signon_realm == ? ";
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 } 775 }
775 UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering", 776 UMA_HISTOGRAM_ENUMERATION("PasswordManager.PslDomainMatchTriggering",
776 psl_domain_match_metric, 777 psl_domain_match_metric,
777 PSL_DOMAIN_MATCH_COUNT); 778 PSL_DOMAIN_MATCH_COUNT);
778 return s.Succeeded(); 779 return s.Succeeded();
779 } 780 }
780 781
781 bool LoginDatabase::GetLoginsCreatedBetween( 782 bool LoginDatabase::GetLoginsCreatedBetween(
782 const base::Time begin, 783 const base::Time begin,
783 const base::Time end, 784 const base::Time end,
784 std::vector<autofill::PasswordForm*>* forms) const { 785 ScopedVector<autofill::PasswordForm>* forms) const {
785 DCHECK(forms); 786 DCHECK(forms);
786 sql::Statement s(db_.GetCachedStatement( 787 sql::Statement s(db_.GetCachedStatement(
787 SQL_FROM_HERE, 788 SQL_FROM_HERE,
788 "SELECT origin_url, action_url, " 789 "SELECT origin_url, action_url, "
789 "username_element, username_value, " 790 "username_element, username_value, "
790 "password_element, password_value, submit_element, " 791 "password_element, password_value, submit_element, "
791 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, " 792 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
792 "scheme, password_type, possible_usernames, times_used, form_data, " 793 "scheme, password_type, possible_usernames, times_used, form_data, "
793 "date_synced, display_name, avatar_url, " 794 "date_synced, display_name, avatar_url, "
794 "federation_url, is_zero_click FROM logins " 795 "federation_url, is_zero_click FROM logins "
(...skipping 12 matching lines...) Expand all
807 continue; 808 continue;
808 DCHECK(result == ENCRYPTION_RESULT_SUCCESS); 809 DCHECK(result == ENCRYPTION_RESULT_SUCCESS);
809 forms->push_back(new_form.release()); 810 forms->push_back(new_form.release());
810 } 811 }
811 return s.Succeeded(); 812 return s.Succeeded();
812 } 813 }
813 814
814 bool LoginDatabase::GetLoginsSyncedBetween( 815 bool LoginDatabase::GetLoginsSyncedBetween(
815 const base::Time begin, 816 const base::Time begin,
816 const base::Time end, 817 const base::Time end,
817 std::vector<autofill::PasswordForm*>* forms) const { 818 ScopedVector<autofill::PasswordForm>* forms) const {
818 DCHECK(forms); 819 DCHECK(forms);
819 sql::Statement s(db_.GetCachedStatement( 820 sql::Statement s(db_.GetCachedStatement(
820 SQL_FROM_HERE, 821 SQL_FROM_HERE,
821 "SELECT origin_url, action_url, username_element, username_value, " 822 "SELECT origin_url, action_url, username_element, username_value, "
822 "password_element, password_value, submit_element, signon_realm, " 823 "password_element, password_value, submit_element, signon_realm, "
823 "ssl_valid, preferred, date_created, blacklisted_by_user, " 824 "ssl_valid, preferred, date_created, blacklisted_by_user, "
824 "scheme, password_type, possible_usernames, times_used, form_data, " 825 "scheme, password_type, possible_usernames, times_used, form_data, "
825 "date_synced, display_name, avatar_url, " 826 "date_synced, display_name, avatar_url, "
826 "federation_url, is_zero_click FROM logins " 827 "federation_url, is_zero_click FROM logins "
827 "WHERE date_synced >= ? AND date_synced < ?" 828 "WHERE date_synced >= ? AND date_synced < ?"
(...skipping 10 matching lines...) Expand all
838 return false; 839 return false;
839 if (result == ENCRYPTION_RESULT_ITEM_FAILURE) 840 if (result == ENCRYPTION_RESULT_ITEM_FAILURE)
840 continue; 841 continue;
841 DCHECK(result == ENCRYPTION_RESULT_SUCCESS); 842 DCHECK(result == ENCRYPTION_RESULT_SUCCESS);
842 forms->push_back(new_form.release()); 843 forms->push_back(new_form.release());
843 } 844 }
844 return s.Succeeded(); 845 return s.Succeeded();
845 } 846 }
846 847
847 bool LoginDatabase::GetAutofillableLogins( 848 bool LoginDatabase::GetAutofillableLogins(
848 std::vector<PasswordForm*>* forms) const { 849 ScopedVector<autofill::PasswordForm>* forms) const {
849 return GetAllLoginsWithBlacklistSetting(false, forms); 850 return GetAllLoginsWithBlacklistSetting(false, forms);
850 } 851 }
851 852
852 bool LoginDatabase::GetBlacklistLogins( 853 bool LoginDatabase::GetBlacklistLogins(
853 std::vector<PasswordForm*>* forms) const { 854 ScopedVector<autofill::PasswordForm>* forms) const {
854 return GetAllLoginsWithBlacklistSetting(true, forms); 855 return GetAllLoginsWithBlacklistSetting(true, forms);
855 } 856 }
856 857
857 bool LoginDatabase::GetAllLoginsWithBlacklistSetting( 858 bool LoginDatabase::GetAllLoginsWithBlacklistSetting(
858 bool blacklisted, 859 bool blacklisted,
859 std::vector<PasswordForm*>* forms) const { 860 ScopedVector<autofill::PasswordForm>* forms) const {
860 DCHECK(forms); 861 DCHECK(forms);
861 // You *must* change LoginTableColumns if this query changes. 862 // You *must* change LoginTableColumns if this query changes.
862 sql::Statement s(db_.GetCachedStatement( 863 sql::Statement s(db_.GetCachedStatement(
863 SQL_FROM_HERE, 864 SQL_FROM_HERE,
864 "SELECT origin_url, action_url, " 865 "SELECT origin_url, action_url, "
865 "username_element, username_value, " 866 "username_element, username_value, "
866 "password_element, password_value, submit_element, " 867 "password_element, password_value, submit_element, "
867 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, " 868 "signon_realm, ssl_valid, preferred, date_created, blacklisted_by_user, "
868 "scheme, password_type, possible_usernames, times_used, form_data, " 869 "scheme, password_type, possible_usernames, times_used, form_data, "
869 "date_synced, display_name, avatar_url, " 870 "date_synced, display_name, avatar_url, "
(...skipping 16 matching lines...) Expand all
886 887
887 bool LoginDatabase::DeleteAndRecreateDatabaseFile() { 888 bool LoginDatabase::DeleteAndRecreateDatabaseFile() {
888 DCHECK(db_.is_open()); 889 DCHECK(db_.is_open());
889 meta_table_.Reset(); 890 meta_table_.Reset();
890 db_.Close(); 891 db_.Close();
891 sql::Connection::Delete(db_path_); 892 sql::Connection::Delete(db_path_);
892 return Init(); 893 return Init();
893 } 894 }
894 895
895 } // namespace password_manager 896 } // namespace password_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698