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

Side by Side Diff: chrome/browser/password_manager/native_backend_kwallet_x.h

Issue 335893002: Support to remove passwords by date_synced timestamp. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: vabr's comments Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
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_KWALLET_X_H_ 5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_KWALLET_X_H_
6 #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_KWALLET_X_H_ 6 #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_KWALLET_X_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 28 matching lines...) Expand all
39 39
40 virtual bool Init() OVERRIDE; 40 virtual bool Init() OVERRIDE;
41 41
42 // Implements NativeBackend interface. 42 // Implements NativeBackend interface.
43 virtual password_manager::PasswordStoreChangeList AddLogin( 43 virtual password_manager::PasswordStoreChangeList AddLogin(
44 const autofill::PasswordForm& form) OVERRIDE; 44 const autofill::PasswordForm& form) OVERRIDE;
45 virtual bool UpdateLogin( 45 virtual bool UpdateLogin(
46 const autofill::PasswordForm& form, 46 const autofill::PasswordForm& form,
47 password_manager::PasswordStoreChangeList* changes) OVERRIDE; 47 password_manager::PasswordStoreChangeList* changes) OVERRIDE;
48 virtual bool RemoveLogin(const autofill::PasswordForm& form) OVERRIDE; 48 virtual bool RemoveLogin(const autofill::PasswordForm& form) OVERRIDE;
49 virtual bool RemoveLoginsCreatedBetween( 49 virtual bool RemoveLoginsCreatedBetween(base::Time delete_begin,
50 const base::Time& delete_begin, const base::Time& delete_end) OVERRIDE; 50 base::Time delete_end) OVERRIDE;
51 virtual bool RemoveLoginsSyncedBetween(
52 base::Time delete_begin,
53 base::Time delete_end,
54 password_manager::PasswordStoreChangeList* changes) OVERRIDE;
51 virtual bool GetLogins(const autofill::PasswordForm& form, 55 virtual bool GetLogins(const autofill::PasswordForm& form,
52 PasswordFormList* forms) OVERRIDE; 56 PasswordFormList* forms) OVERRIDE;
53 virtual bool GetLoginsCreatedBetween(const base::Time& get_begin, 57 virtual bool GetLoginsCreatedBetween(base::Time get_begin,
54 const base::Time& get_end, 58 base::Time get_end,
55 PasswordFormList* forms) OVERRIDE; 59 PasswordFormList* forms) OVERRIDE;
56 virtual bool GetAutofillableLogins(PasswordFormList* forms) OVERRIDE; 60 virtual bool GetAutofillableLogins(PasswordFormList* forms) OVERRIDE;
57 virtual bool GetBlacklistLogins(PasswordFormList* forms) OVERRIDE; 61 virtual bool GetBlacklistLogins(PasswordFormList* forms) OVERRIDE;
58 62
59 protected: 63 protected:
60 // Invalid handle returned by WalletHandle(). 64 // Invalid handle returned by WalletHandle().
61 static const int kInvalidKWalletHandle = -1; 65 static const int kInvalidKWalletHandle = -1;
62 66
63 // Internally used by Init(), but also for testing to provide a mock bus. 67 // Internally used by Init(), but also for testing to provide a mock bus.
64 bool InitWithBus(scoped_refptr<dbus::Bus> optional_bus); 68 bool InitWithBus(scoped_refptr<dbus::Bus> optional_bus);
65 69
66 // Deserializes a list of PasswordForms from the wallet. 70 // Deserializes a list of PasswordForms from the wallet.
67 static void DeserializeValue(const std::string& signon_realm, 71 static void DeserializeValue(const std::string& signon_realm,
68 const Pickle& pickle, 72 const Pickle& pickle,
69 PasswordFormList* forms); 73 PasswordFormList* forms);
70 74
71 private: 75 private:
72 enum InitResult { 76 enum InitResult {
73 INIT_SUCCESS, // Init succeeded. 77 INIT_SUCCESS, // Init succeeded.
74 TEMPORARY_FAIL, // Init failed, but might succeed after StartKWalletd(). 78 TEMPORARY_FAIL, // Init failed, but might succeed after StartKWalletd().
75 PERMANENT_FAIL // Init failed, and is not likely to work later either. 79 PERMANENT_FAIL // Init failed, and is not likely to work later either.
76 }; 80 };
77 81
82 enum TimestampToCompare {
83 CREATION_TIMESTAMP,
84 SYNC_TIMESTAMP,
85 };
86
78 // Initialization. 87 // Initialization.
79 bool StartKWalletd(); 88 bool StartKWalletd();
80 InitResult InitWallet(); 89 InitResult InitWallet();
81 void InitOnDBThread(scoped_refptr<dbus::Bus> optional_bus, 90 void InitOnDBThread(scoped_refptr<dbus::Bus> optional_bus,
82 base::WaitableEvent* event, 91 base::WaitableEvent* event,
83 bool* success); 92 bool* success);
84 93
85 // Reads PasswordForms from the wallet that match the given signon_realm. 94 // Reads PasswordForms from the wallet that match the given signon_realm.
86 bool GetLoginsList(PasswordFormList* forms, 95 bool GetLoginsList(PasswordFormList* forms,
87 const std::string& signon_realm, 96 const std::string& signon_realm,
88 int wallet_handle); 97 int wallet_handle);
89 98
90 // Reads PasswordForms from the wallet with the given autofillability state. 99 // Reads PasswordForms from the wallet with the given autofillability state.
91 bool GetLoginsList(PasswordFormList* forms, 100 bool GetLoginsList(PasswordFormList* forms,
92 bool autofillable, 101 bool autofillable,
93 int wallet_handle); 102 int wallet_handle);
94 103
95 // Reads PasswordForms from the wallet created in the given time range. 104 // Reads PasswordForms from the wallet created/synced in the given time range.
96 bool GetLoginsList(PasswordFormList* forms, 105 bool GetLoginsList(PasswordFormList* forms,
97 const base::Time& begin, 106 const base::Time& begin,
98 const base::Time& end, 107 const base::Time& end,
99 int wallet_handle); 108 int wallet_handle,
109 TimestampToCompare date_to_compare);
100 110
101 // Helper for some of the above GetLoginsList() methods. 111 // Helper for some of the above GetLoginsList() methods.
102 bool GetAllLogins(PasswordFormList* forms, int wallet_handle); 112 bool GetAllLogins(PasswordFormList* forms, int wallet_handle);
103 113
104 // Writes a list of PasswordForms to the wallet with the given signon_realm. 114 // Writes a list of PasswordForms to the wallet with the given signon_realm.
105 // Overwrites any existing list for this signon_realm. Removes the entry if 115 // Overwrites any existing list for this signon_realm. Removes the entry if
106 // |forms| is empty. Returns true on success. 116 // |forms| is empty. Returns true on success.
107 bool SetLoginsList(const PasswordFormList& forms, 117 bool SetLoginsList(const PasswordFormList& forms,
108 const std::string& signon_realm, 118 const std::string& signon_realm,
109 int wallet_handle); 119 int wallet_handle);
110 120
121 // Removes password created/synced in the time interval. Returns |true| if the
122 // operation succeeded. |changes| will contain the changes applied.
123 bool RemoveLoginsBetween(base::Time delete_begin,
124 base::Time delete_end,
125 TimestampToCompare date_to_compare,
126 password_manager::PasswordStoreChangeList* changes);
127
111 // Opens the wallet and ensures that the "Chrome Form Data" folder exists. 128 // Opens the wallet and ensures that the "Chrome Form Data" folder exists.
112 // Returns kInvalidWalletHandle on error. 129 // Returns kInvalidWalletHandle on error.
113 int WalletHandle(); 130 int WalletHandle();
114 131
115 // Serializes a list of PasswordForms to be stored in the wallet. 132 // Serializes a list of PasswordForms to be stored in the wallet.
116 static void SerializeValue(const PasswordFormList& forms, Pickle* pickle); 133 static void SerializeValue(const PasswordFormList& forms, Pickle* pickle);
117 134
118 // Deserializes a list of PasswordForms from the wallet. 135 // Deserializes a list of PasswordForms from the wallet.
119 // |size_32| controls reading the size field within the pickle as 32 bits. 136 // |size_32| controls reading the size field within the pickle as 32 bits.
120 // We used to use Pickle::WriteSize() to write the number of password forms, 137 // We used to use Pickle::WriteSize() to write the number of password forms,
(...skipping 25 matching lines...) Expand all
146 163
147 // The name of the wallet we've opened. Set during Init(). 164 // The name of the wallet we've opened. Set during Init().
148 std::string wallet_name_; 165 std::string wallet_name_;
149 // The application name (e.g. "Chromium"), shown in KWallet auth dialogs. 166 // The application name (e.g. "Chromium"), shown in KWallet auth dialogs.
150 const std::string app_name_; 167 const std::string app_name_;
151 168
152 DISALLOW_COPY_AND_ASSIGN(NativeBackendKWallet); 169 DISALLOW_COPY_AND_ASSIGN(NativeBackendKWallet);
153 }; 170 };
154 171
155 #endif // CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_KWALLET_X_H_ 172 #endif // CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_KWALLET_X_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698