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

Side by Side Diff: chrome/browser/webdata/logins_table.cc

Issue 8966003: Update webdata files to take advantage of DLOG(FATAL) in (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add header comments for a couple tricky error cases. Created 9 years 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
« no previous file with comments | « chrome/browser/webdata/keyword_table.cc ('k') | chrome/browser/webdata/logins_table_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/webdata/logins_table.h" 5 #include "chrome/browser/webdata/logins_table.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 107
108 bool LoginsTable::AddLogin(const PasswordForm& form) { 108 bool LoginsTable::AddLogin(const PasswordForm& form) {
109 sql::Statement s(db_->GetUniqueStatement( 109 sql::Statement s(db_->GetUniqueStatement(
110 "INSERT OR REPLACE INTO logins " 110 "INSERT OR REPLACE INTO logins "
111 "(origin_url, action_url, username_element, username_value, " 111 "(origin_url, action_url, username_element, username_value, "
112 " password_element, password_value, submit_element, " 112 " password_element, password_value, submit_element, "
113 " signon_realm, ssl_valid, preferred, date_created, " 113 " signon_realm, ssl_valid, preferred, date_created, "
114 " blacklisted_by_user, scheme) " 114 " blacklisted_by_user, scheme) "
115 "VALUES " 115 "VALUES "
116 "(?,?,?,?,?,?,?,?,?,?,?,?,?)")); 116 "(?,?,?,?,?,?,?,?,?,?,?,?,?)"));
117 if (!s) {
118 NOTREACHED() << "Statement prepare failed";
119 return false;
120 }
121 117
122 std::string encrypted_password; 118 std::string encrypted_password;
123 s.BindString(0, form.origin.spec()); 119 s.BindString(0, form.origin.spec());
124 s.BindString(1, form.action.spec()); 120 s.BindString(1, form.action.spec());
125 s.BindString16(2, form.username_element); 121 s.BindString16(2, form.username_element);
126 s.BindString16(3, form.username_value); 122 s.BindString16(3, form.username_value);
127 s.BindString16(4, form.password_element); 123 s.BindString16(4, form.password_element);
128 Encryptor::EncryptString16(form.password_value, &encrypted_password); 124 Encryptor::EncryptString16(form.password_value, &encrypted_password);
129 s.BindBlob(5, encrypted_password.data(), 125 s.BindBlob(5, encrypted_password.data(),
130 static_cast<int>(encrypted_password.length())); 126 static_cast<int>(encrypted_password.length()));
131 s.BindString16(6, form.submit_element); 127 s.BindString16(6, form.submit_element);
132 s.BindString(7, form.signon_realm); 128 s.BindString(7, form.signon_realm);
133 s.BindInt(8, form.ssl_valid); 129 s.BindInt(8, form.ssl_valid);
134 s.BindInt(9, form.preferred); 130 s.BindInt(9, form.preferred);
135 s.BindInt64(10, form.date_created.ToTimeT()); 131 s.BindInt64(10, form.date_created.ToTimeT());
136 s.BindInt(11, form.blacklisted_by_user); 132 s.BindInt(11, form.blacklisted_by_user);
137 s.BindInt(12, form.scheme); 133 s.BindInt(12, form.scheme);
138 if (!s.Run()) { 134
139 NOTREACHED(); 135 return s.Run();
140 return false;
141 }
142 return true;
143 } 136 }
144 137
145 bool LoginsTable::UpdateLogin(const PasswordForm& form) { 138 bool LoginsTable::UpdateLogin(const PasswordForm& form) {
146 sql::Statement s(db_->GetUniqueStatement( 139 sql::Statement s(db_->GetUniqueStatement(
147 "UPDATE logins SET " 140 "UPDATE logins SET "
148 "action_url = ?, " 141 "action_url = ?, "
149 "password_value = ?, " 142 "password_value = ?, "
150 "ssl_valid = ?, " 143 "ssl_valid = ?, "
151 "preferred = ? " 144 "preferred = ? "
152 "WHERE origin_url = ? AND " 145 "WHERE origin_url = ? AND "
153 "username_element = ? AND " 146 "username_element = ? AND "
154 "username_value = ? AND " 147 "username_value = ? AND "
155 "password_element = ? AND " 148 "password_element = ? AND "
156 "signon_realm = ?")); 149 "signon_realm = ?"));
157 if (!s) {
158 NOTREACHED() << "Statement prepare failed";
159 return false;
160 }
161 150
162 s.BindString(0, form.action.spec()); 151 s.BindString(0, form.action.spec());
163 std::string encrypted_password; 152 std::string encrypted_password;
164 Encryptor::EncryptString16(form.password_value, &encrypted_password); 153 Encryptor::EncryptString16(form.password_value, &encrypted_password);
165 s.BindBlob(1, encrypted_password.data(), 154 s.BindBlob(1, encrypted_password.data(),
166 static_cast<int>(encrypted_password.length())); 155 static_cast<int>(encrypted_password.length()));
167 s.BindInt(2, form.ssl_valid); 156 s.BindInt(2, form.ssl_valid);
168 s.BindInt(3, form.preferred); 157 s.BindInt(3, form.preferred);
169 s.BindString(4, form.origin.spec()); 158 s.BindString(4, form.origin.spec());
170 s.BindString16(5, form.username_element); 159 s.BindString16(5, form.username_element);
171 s.BindString16(6, form.username_value); 160 s.BindString16(6, form.username_value);
172 s.BindString16(7, form.password_element); 161 s.BindString16(7, form.password_element);
173 s.BindString(8, form.signon_realm); 162 s.BindString(8, form.signon_realm);
174 163
175 if (!s.Run()) { 164 return s.Run();
176 NOTREACHED();
177 return false;
178 }
179 return true;
180 } 165 }
181 166
182 bool LoginsTable::RemoveLogin(const PasswordForm& form) { 167 bool LoginsTable::RemoveLogin(const PasswordForm& form) {
183 // Remove a login by UNIQUE-constrained fields. 168 // Remove a login by UNIQUE-constrained fields.
184 sql::Statement s(db_->GetUniqueStatement( 169 sql::Statement s(db_->GetUniqueStatement(
185 "DELETE FROM logins WHERE " 170 "DELETE FROM logins WHERE "
186 "origin_url = ? AND " 171 "origin_url = ? AND "
187 "username_element = ? AND " 172 "username_element = ? AND "
188 "username_value = ? AND " 173 "username_value = ? AND "
189 "password_element = ? AND " 174 "password_element = ? AND "
190 "submit_element = ? AND " 175 "submit_element = ? AND "
191 "signon_realm = ?")); 176 "signon_realm = ?"));
192 if (!s) {
193 NOTREACHED() << "Statement prepare failed";
194 return false;
195 }
196 s.BindString(0, form.origin.spec()); 177 s.BindString(0, form.origin.spec());
197 s.BindString16(1, form.username_element); 178 s.BindString16(1, form.username_element);
198 s.BindString16(2, form.username_value); 179 s.BindString16(2, form.username_value);
199 s.BindString16(3, form.password_element); 180 s.BindString16(3, form.password_element);
200 s.BindString16(4, form.submit_element); 181 s.BindString16(4, form.submit_element);
201 s.BindString(5, form.signon_realm); 182 s.BindString(5, form.signon_realm);
202 183
203 if (!s.Run()) { 184 return s.Run();
204 NOTREACHED();
205 return false;
206 }
207 return true;
208 } 185 }
209 186
210 bool LoginsTable::RemoveLoginsCreatedBetween(base::Time delete_begin, 187 bool LoginsTable::RemoveLoginsCreatedBetween(base::Time delete_begin,
211 base::Time delete_end) { 188 base::Time delete_end) {
212 sql::Statement s1(db_->GetUniqueStatement( 189 sql::Statement s1(db_->GetUniqueStatement(
213 "DELETE FROM logins WHERE " 190 "DELETE FROM logins WHERE "
214 "date_created >= ? AND date_created < ?")); 191 "date_created >= ? AND date_created < ?"));
215 if (!s1) {
216 NOTREACHED() << "Statement 1 prepare failed";
217 return false;
218 }
219 s1.BindInt64(0, delete_begin.ToTimeT()); 192 s1.BindInt64(0, delete_begin.ToTimeT());
220 s1.BindInt64(1, 193 s1.BindInt64(1,
221 delete_end.is_null() ? 194 delete_end.is_null() ?
222 std::numeric_limits<int64>::max() : 195 std::numeric_limits<int64>::max() :
223 delete_end.ToTimeT()); 196 delete_end.ToTimeT());
224 bool success = s1.Run(); 197 bool success = s1.Run();
225 198
226 #if defined(OS_WIN) 199 #if defined(OS_WIN)
227 sql::Statement s2(db_->GetUniqueStatement( 200 sql::Statement s2(db_->GetUniqueStatement(
228 "DELETE FROM ie7_logins WHERE date_created >= ? AND date_created < ?")); 201 "DELETE FROM ie7_logins WHERE date_created >= ? AND date_created < ?"));
229 if (!s2) {
230 NOTREACHED() << "Statement 2 prepare failed";
231 return false;
232 }
233 s2.BindInt64(0, delete_begin.ToTimeT()); 202 s2.BindInt64(0, delete_begin.ToTimeT());
234 s2.BindInt64(1, 203 s2.BindInt64(1,
235 delete_end.is_null() ? 204 delete_end.is_null() ?
236 std::numeric_limits<int64>::max() : 205 std::numeric_limits<int64>::max() :
237 delete_end.ToTimeT()); 206 delete_end.ToTimeT());
238 success = success && s2.Run(); 207 success = success && s2.Run();
239 #endif 208 #endif
240 209
241 return success; 210 return success;
242 } 211 }
243 212
244 bool LoginsTable::GetLogins(const PasswordForm& form, 213 bool LoginsTable::GetLogins(const PasswordForm& form,
245 std::vector<PasswordForm*>* forms) { 214 std::vector<PasswordForm*>* forms) {
246 DCHECK(forms); 215 DCHECK(forms);
247 sql::Statement s(db_->GetUniqueStatement( 216 sql::Statement s(db_->GetUniqueStatement(
248 "SELECT origin_url, action_url, " 217 "SELECT origin_url, action_url, "
249 "username_element, username_value, " 218 "username_element, username_value, "
250 "password_element, password_value, " 219 "password_element, password_value, "
251 "submit_element, signon_realm, " 220 "submit_element, signon_realm, "
252 "ssl_valid, preferred, " 221 "ssl_valid, preferred, "
253 "date_created, blacklisted_by_user, scheme FROM logins " 222 "date_created, blacklisted_by_user, scheme FROM logins "
254 "WHERE signon_realm == ?")); 223 "WHERE signon_realm == ?"));
255 if (!s) {
256 NOTREACHED() << "Statement prepare failed";
257 return false;
258 }
259
260 s.BindString(0, form.signon_realm); 224 s.BindString(0, form.signon_realm);
261 225
262 while (s.Step()) { 226 while (s.Step()) {
263 PasswordForm* new_form = new PasswordForm(); 227 PasswordForm* new_form = new PasswordForm();
264 InitPasswordFormFromStatement(new_form, &s); 228 InitPasswordFormFromStatement(new_form, &s);
265 229
266 forms->push_back(new_form); 230 forms->push_back(new_form);
267 } 231 }
268 return s.Succeeded(); 232 return s.Succeeded();
269 } 233 }
270 234
271 bool LoginsTable::GetAllLogins(std::vector<PasswordForm*>* forms, 235 bool LoginsTable::GetAllLogins(std::vector<PasswordForm*>* forms,
272 bool include_blacklisted) { 236 bool include_blacklisted) {
273 DCHECK(forms); 237 DCHECK(forms);
274 std::string stmt = "SELECT origin_url, action_url, " 238 std::string stmt = "SELECT origin_url, action_url, "
275 "username_element, username_value, " 239 "username_element, username_value, "
276 "password_element, password_value, " 240 "password_element, password_value, "
277 "submit_element, signon_realm, ssl_valid, preferred, " 241 "submit_element, signon_realm, ssl_valid, preferred, "
278 "date_created, blacklisted_by_user, scheme FROM logins "; 242 "date_created, blacklisted_by_user, scheme FROM logins ";
279 if (!include_blacklisted) 243 if (!include_blacklisted)
280 stmt.append("WHERE blacklisted_by_user == 0 "); 244 stmt.append("WHERE blacklisted_by_user == 0 ");
281 stmt.append("ORDER BY origin_url"); 245 stmt.append("ORDER BY origin_url");
282 246
283 sql::Statement s(db_->GetUniqueStatement(stmt.c_str())); 247 sql::Statement s(db_->GetUniqueStatement(stmt.c_str()));
284 if (!s) {
285 NOTREACHED() << "Statement prepare failed";
286 return false;
287 }
288 248
289 while (s.Step()) { 249 while (s.Step()) {
290 PasswordForm* new_form = new PasswordForm(); 250 PasswordForm* new_form = new PasswordForm();
291 InitPasswordFormFromStatement(new_form, &s); 251 InitPasswordFormFromStatement(new_form, &s);
292 252
293 forms->push_back(new_form); 253 forms->push_back(new_form);
294 } 254 }
295 return s.Succeeded(); 255 return s.Succeeded();
296 } 256 }
OLDNEW
« no previous file with comments | « chrome/browser/webdata/keyword_table.cc ('k') | chrome/browser/webdata/logins_table_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698