| OLD | NEW |
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_LIBSECRET_H_ | 5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_LIBSECRET_H_ |
| 6 #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_LIBSECRET_H_ | 6 #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_LIBSECRET_H_ |
| 7 | 7 |
| 8 #include <libsecret/secret.h> | 8 #include <libsecret/secret.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "base/memory/scoped_vector.h" |
| 13 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 14 #include "chrome/browser/password_manager/password_store_factory.h" | 15 #include "chrome/browser/password_manager/password_store_factory.h" |
| 15 #include "chrome/browser/password_manager/password_store_x.h" | 16 #include "chrome/browser/password_manager/password_store_x.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| 17 | 18 |
| 18 namespace autofill { | 19 namespace autofill { |
| 19 struct PasswordForm; | 20 struct PasswordForm; |
| 20 } | 21 } |
| 21 | 22 |
| 22 class LibsecretLoader { | 23 class LibsecretLoader { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 bool RemoveLogin(const autofill::PasswordForm& form) override; | 63 bool RemoveLogin(const autofill::PasswordForm& form) override; |
| 63 bool RemoveLoginsCreatedBetween( | 64 bool RemoveLoginsCreatedBetween( |
| 64 base::Time delete_begin, | 65 base::Time delete_begin, |
| 65 base::Time delete_end, | 66 base::Time delete_end, |
| 66 password_manager::PasswordStoreChangeList* changes) override; | 67 password_manager::PasswordStoreChangeList* changes) override; |
| 67 bool RemoveLoginsSyncedBetween( | 68 bool RemoveLoginsSyncedBetween( |
| 68 base::Time delete_begin, | 69 base::Time delete_begin, |
| 69 base::Time delete_end, | 70 base::Time delete_end, |
| 70 password_manager::PasswordStoreChangeList* changes) override; | 71 password_manager::PasswordStoreChangeList* changes) override; |
| 71 bool GetLogins(const autofill::PasswordForm& form, | 72 bool GetLogins(const autofill::PasswordForm& form, |
| 72 PasswordFormList* forms) override; | 73 ScopedVector<autofill::PasswordForm>* forms) override; |
| 73 bool GetAutofillableLogins(PasswordFormList* forms) override; | 74 bool GetAutofillableLogins( |
| 74 bool GetBlacklistLogins(PasswordFormList* forms) override; | 75 ScopedVector<autofill::PasswordForm>* forms) override; |
| 76 bool GetBlacklistLogins(ScopedVector<autofill::PasswordForm>* forms) override; |
| 75 | 77 |
| 76 private: | 78 private: |
| 77 enum TimestampToCompare { | 79 enum TimestampToCompare { |
| 78 CREATION_TIMESTAMP, | 80 CREATION_TIMESTAMP, |
| 79 SYNC_TIMESTAMP, | 81 SYNC_TIMESTAMP, |
| 80 }; | 82 }; |
| 81 | 83 |
| 82 enum AddUpdateLoginSearchOptions { | 84 enum AddUpdateLoginSearchOptions { |
| 83 SEARCH_USE_SUBMIT, | 85 SEARCH_USE_SUBMIT, |
| 84 SEARCH_IGNORE_SUBMIT, | 86 SEARCH_IGNORE_SUBMIT, |
| 85 }; | 87 }; |
| 86 | 88 |
| 87 // Search that is used in AddLogin and UpdateLogin methods | 89 // Search that is used in AddLogin and UpdateLogin methods |
| 88 void AddUpdateLoginSearch(const autofill::PasswordForm& lookup_form, | 90 void AddUpdateLoginSearch(const autofill::PasswordForm& lookup_form, |
| 89 PasswordFormList* forms, | 91 AddUpdateLoginSearchOptions options, |
| 90 AddUpdateLoginSearchOptions options); | 92 ScopedVector<autofill::PasswordForm>* forms); |
| 91 | 93 |
| 92 // Adds a login form without checking for one to replace first. | 94 // Adds a login form without checking for one to replace first. |
| 93 bool RawAddLogin(const autofill::PasswordForm& form); | 95 bool RawAddLogin(const autofill::PasswordForm& form); |
| 94 | 96 |
| 95 enum GetLoginsListOptions { | 97 enum GetLoginsListOptions { |
| 96 ALL_LOGINS, | 98 ALL_LOGINS, |
| 97 AUTOFILLABLE_LOGINS, | 99 AUTOFILLABLE_LOGINS, |
| 98 BLACKLISTED_LOGINS, | 100 BLACKLISTED_LOGINS, |
| 99 }; | 101 }; |
| 100 | 102 |
| 101 // Reads PasswordForms from the keyring with the given autofillability state. | 103 // Reads PasswordForms from the keyring with the given autofillability state. |
| 102 bool GetLoginsList(PasswordFormList* forms, | 104 bool GetLoginsList(const autofill::PasswordForm* lookup_form, |
| 103 const autofill::PasswordForm* lookup_form, | 105 GetLoginsListOptions options, |
| 104 GetLoginsListOptions options); | 106 ScopedVector<autofill::PasswordForm>* forms); |
| 105 | 107 |
| 106 // Helper for GetLoginsCreatedBetween(). | 108 // Helper for GetLoginsCreatedBetween(). |
| 107 bool GetAllLogins(PasswordFormList* forms); | 109 bool GetAllLogins(ScopedVector<autofill::PasswordForm>* forms); |
| 108 | 110 |
| 109 // Retrieves password created/synced in the time interval. Returns |true| if | 111 // Retrieves password created/synced in the time interval. Returns |true| if |
| 110 // the operation succeeded. | 112 // the operation succeeded. |
| 111 bool GetLoginsBetween(base::Time get_begin, | 113 bool GetLoginsBetween(base::Time get_begin, |
| 112 base::Time get_end, | 114 base::Time get_end, |
| 113 TimestampToCompare date_to_compare, | 115 TimestampToCompare date_to_compare, |
| 114 PasswordFormList* forms); | 116 ScopedVector<autofill::PasswordForm>* forms); |
| 115 | 117 |
| 116 // Removes password created/synced in the time interval. Returns |true| if the | 118 // Removes password created/synced in the time interval. Returns |true| if the |
| 117 // operation succeeded. |changes| will contain the changes applied. | 119 // operation succeeded. |changes| will contain the changes applied. |
| 118 bool RemoveLoginsBetween(base::Time get_begin, | 120 bool RemoveLoginsBetween(base::Time get_begin, |
| 119 base::Time get_end, | 121 base::Time get_end, |
| 120 TimestampToCompare date_to_compare, | 122 TimestampToCompare date_to_compare, |
| 121 password_manager::PasswordStoreChangeList* changes); | 123 password_manager::PasswordStoreChangeList* changes); |
| 122 | 124 |
| 123 // convert data get from Libsecret to Passwordform | 125 // convert data get from Libsecret to Passwordform |
| 124 bool ConvertFormList(GList* found, | 126 bool ConvertFormList(GList* found, |
| 125 const autofill::PasswordForm* lookup_form, | 127 const autofill::PasswordForm* lookup_form, |
| 126 NativeBackendLibsecret::PasswordFormList* forms); | 128 ScopedVector<autofill::PasswordForm>* forms); |
| 127 | 129 |
| 128 // Generates a profile-specific app string based on profile_id_. | 130 // Generates a profile-specific app string based on profile_id_. |
| 129 static std::string GetProfileSpecificAppString(LocalProfileId id); | 131 static std::string GetProfileSpecificAppString(LocalProfileId id); |
| 130 | 132 |
| 131 // The app string, possibly based on the local profile id. | 133 // The app string, possibly based on the local profile id. |
| 132 std::string app_string_; | 134 std::string app_string_; |
| 133 | 135 |
| 134 DISALLOW_COPY_AND_ASSIGN(NativeBackendLibsecret); | 136 DISALLOW_COPY_AND_ASSIGN(NativeBackendLibsecret); |
| 135 }; | 137 }; |
| 136 | 138 |
| 137 #endif // CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_LIBSECRET_H_ | 139 #endif // CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_LIBSECRET_H_ |
| OLD | NEW |