| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_GNOME_X_H_ | 5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_ |
| 6 #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_ | 6 #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_ |
| 7 | 7 |
| 8 // libgnome-keyring has been deprecated in favor of libsecret. | 8 // libgnome-keyring has been deprecated in favor of libsecret. |
| 9 // See: https://mail.gnome.org/archives/commits-list/2013-October/msg08876.html | 9 // See: https://mail.gnome.org/archives/commits-list/2013-October/msg08876.html |
| 10 // | 10 // |
| 11 // The define below turns off the deprecations, in order to avoid build | 11 // The define below turns off the deprecations, in order to avoid build |
| 12 // failures with Gnome 3.12. When we move to libsecret, the define can be | 12 // failures with Gnome 3.12. When we move to libsecret, the define can be |
| 13 // removed, together with the include below it. | 13 // removed, together with the include below it. |
| 14 // | 14 // |
| 15 // The porting is tracked in http://crbug.com/355223 | 15 // The porting is tracked in http://crbug.com/355223 |
| 16 #define GNOME_KEYRING_DEPRECATED | 16 #define GNOME_KEYRING_DEPRECATED |
| 17 #define GNOME_KEYRING_DEPRECATED_FOR(x) | 17 #define GNOME_KEYRING_DEPRECATED_FOR(x) |
| 18 #include <gnome-keyring.h> | 18 #include <gnome-keyring.h> |
| 19 | 19 |
| 20 #include <string> | 20 #include <string> |
| 21 | 21 |
| 22 #include "base/basictypes.h" | 22 #include "base/basictypes.h" |
| 23 #include "base/memory/scoped_vector.h" |
| 23 #include "base/time/time.h" | 24 #include "base/time/time.h" |
| 24 #include "chrome/browser/password_manager/password_store_factory.h" | 25 #include "chrome/browser/password_manager/password_store_factory.h" |
| 25 #include "chrome/browser/password_manager/password_store_x.h" | 26 #include "chrome/browser/password_manager/password_store_x.h" |
| 26 #include "chrome/browser/profiles/profile.h" | 27 #include "chrome/browser/profiles/profile.h" |
| 27 | 28 |
| 28 namespace autofill { | 29 namespace autofill { |
| 29 struct PasswordForm; | 30 struct PasswordForm; |
| 30 } | 31 } |
| 31 | 32 |
| 32 // Many of the gnome_keyring_* functions use variable arguments, which makes | 33 // Many of the gnome_keyring_* functions use variable arguments, which makes |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 bool RemoveLogin(const autofill::PasswordForm& form) override; | 99 bool RemoveLogin(const autofill::PasswordForm& form) override; |
| 99 bool RemoveLoginsCreatedBetween( | 100 bool RemoveLoginsCreatedBetween( |
| 100 base::Time delete_begin, | 101 base::Time delete_begin, |
| 101 base::Time delete_end, | 102 base::Time delete_end, |
| 102 password_manager::PasswordStoreChangeList* changes) override; | 103 password_manager::PasswordStoreChangeList* changes) override; |
| 103 bool RemoveLoginsSyncedBetween( | 104 bool RemoveLoginsSyncedBetween( |
| 104 base::Time delete_begin, | 105 base::Time delete_begin, |
| 105 base::Time delete_end, | 106 base::Time delete_end, |
| 106 password_manager::PasswordStoreChangeList* changes) override; | 107 password_manager::PasswordStoreChangeList* changes) override; |
| 107 bool GetLogins(const autofill::PasswordForm& form, | 108 bool GetLogins(const autofill::PasswordForm& form, |
| 108 PasswordFormList* forms) override; | 109 ScopedVector<autofill::PasswordForm>* forms) override; |
| 109 bool GetAutofillableLogins(PasswordFormList* forms) override; | 110 bool GetAutofillableLogins( |
| 110 bool GetBlacklistLogins(PasswordFormList* forms) override; | 111 ScopedVector<autofill::PasswordForm>* forms) override; |
| 112 bool GetBlacklistLogins(ScopedVector<autofill::PasswordForm>* forms) override; |
| 111 | 113 |
| 112 private: | 114 private: |
| 113 enum TimestampToCompare { | 115 enum TimestampToCompare { |
| 114 CREATION_TIMESTAMP, | 116 CREATION_TIMESTAMP, |
| 115 SYNC_TIMESTAMP, | 117 SYNC_TIMESTAMP, |
| 116 }; | 118 }; |
| 117 | 119 |
| 118 // Adds a login form without checking for one to replace first. | 120 // Adds a login form without checking for one to replace first. |
| 119 bool RawAddLogin(const autofill::PasswordForm& form); | 121 bool RawAddLogin(const autofill::PasswordForm& form); |
| 120 | 122 |
| 121 // Reads PasswordForms from the keyring with the given autofillability state. | 123 // Reads PasswordForms from the keyring with the given autofillability state. |
| 122 bool GetLoginsList(PasswordFormList* forms, bool autofillable); | 124 bool GetLoginsList(bool autofillable, |
| 125 ScopedVector<autofill::PasswordForm>* forms); |
| 123 | 126 |
| 124 // Helper for GetLoginsCreatedBetween(). | 127 // Helper for GetLoginsCreatedBetween(). |
| 125 bool GetAllLogins(PasswordFormList* forms); | 128 bool GetAllLogins(ScopedVector<autofill::PasswordForm>* forms); |
| 126 | 129 |
| 127 // Retrieves password created/synced in the time interval. Returns |true| if | 130 // Retrieves password created/synced in the time interval. Returns |true| if |
| 128 // the operation succeeded. | 131 // the operation succeeded. |
| 129 bool GetLoginsBetween(base::Time get_begin, | 132 bool GetLoginsBetween(base::Time get_begin, |
| 130 base::Time get_end, | 133 base::Time get_end, |
| 131 TimestampToCompare date_to_compare, | 134 TimestampToCompare date_to_compare, |
| 132 PasswordFormList* forms); | 135 ScopedVector<autofill::PasswordForm>* forms); |
| 133 | 136 |
| 134 // Removes password created/synced in the time interval. Returns |true| if the | 137 // Removes password created/synced in the time interval. Returns |true| if the |
| 135 // operation succeeded. |changes| will contain the changes applied. | 138 // operation succeeded. |changes| will contain the changes applied. |
| 136 bool RemoveLoginsBetween(base::Time get_begin, | 139 bool RemoveLoginsBetween(base::Time get_begin, |
| 137 base::Time get_end, | 140 base::Time get_end, |
| 138 TimestampToCompare date_to_compare, | 141 TimestampToCompare date_to_compare, |
| 139 password_manager::PasswordStoreChangeList* changes); | 142 password_manager::PasswordStoreChangeList* changes); |
| 140 | 143 |
| 141 // Generates a profile-specific app string based on profile_id_. | 144 // Generates a profile-specific app string based on profile_id_. |
| 142 std::string GetProfileSpecificAppString() const; | 145 std::string GetProfileSpecificAppString() const; |
| 143 | 146 |
| 144 // The local profile id, used to generate the app string. | 147 // The local profile id, used to generate the app string. |
| 145 const LocalProfileId profile_id_; | 148 const LocalProfileId profile_id_; |
| 146 | 149 |
| 147 // The app string, possibly based on the local profile id. | 150 // The app string, possibly based on the local profile id. |
| 148 std::string app_string_; | 151 std::string app_string_; |
| 149 | 152 |
| 150 DISALLOW_COPY_AND_ASSIGN(NativeBackendGnome); | 153 DISALLOW_COPY_AND_ASSIGN(NativeBackendGnome); |
| 151 }; | 154 }; |
| 152 | 155 |
| 153 #endif // CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_ | 156 #endif // CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_ |
| OLD | NEW |