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

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

Issue 347583004: PasswordStore refactoring. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 #include "chrome/browser/password_manager/native_backend_kwallet_x.h" 5 #include "chrome/browser/password_manager/native_backend_kwallet_x.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 kept_forms.push_back(all_forms[i]); 349 kept_forms.push_back(all_forms[i]);
350 } 350 }
351 351
352 // Update the entry in the wallet, possibly deleting it. 352 // Update the entry in the wallet, possibly deleting it.
353 bool ok = SetLoginsList(kept_forms, form.signon_realm, wallet_handle); 353 bool ok = SetLoginsList(kept_forms, form.signon_realm, wallet_handle);
354 354
355 STLDeleteElements(&kept_forms); 355 STLDeleteElements(&kept_forms);
356 return ok; 356 return ok;
357 } 357 }
358 358
359 bool NativeBackendKWallet::RemoveLoginsCreatedBetween(base::Time delete_begin, 359 bool NativeBackendKWallet::RemoveLoginsCreatedBetween(
360 base::Time delete_end) { 360 base::Time delete_begin,
361 password_manager::PasswordStoreChangeList changes; 361 base::Time delete_end,
362 password_manager::PasswordStoreChangeList* changes) {
362 return RemoveLoginsBetween( 363 return RemoveLoginsBetween(
363 delete_begin, delete_end, CREATION_TIMESTAMP, &changes); 364 delete_begin, delete_end, CREATION_TIMESTAMP, changes);
364 } 365 }
365 366
366 bool NativeBackendKWallet::RemoveLoginsSyncedBetween( 367 bool NativeBackendKWallet::RemoveLoginsSyncedBetween(
367 base::Time delete_begin, 368 base::Time delete_begin,
368 base::Time delete_end, 369 base::Time delete_end,
369 password_manager::PasswordStoreChangeList* changes) { 370 password_manager::PasswordStoreChangeList* changes) {
370 return RemoveLoginsBetween(delete_begin, delete_end, SYNC_TIMESTAMP, changes); 371 return RemoveLoginsBetween(delete_begin, delete_end, SYNC_TIMESTAMP, changes);
371 } 372 }
372 373
373 bool NativeBackendKWallet::GetLogins(const PasswordForm& form, 374 bool NativeBackendKWallet::GetLogins(const PasswordForm& form,
374 PasswordFormList* forms) { 375 PasswordFormList* forms) {
375 int wallet_handle = WalletHandle(); 376 int wallet_handle = WalletHandle();
376 if (wallet_handle == kInvalidKWalletHandle) 377 if (wallet_handle == kInvalidKWalletHandle)
377 return false; 378 return false;
378 return GetLoginsList(forms, form.signon_realm, wallet_handle); 379 return GetLoginsList(forms, form.signon_realm, wallet_handle);
379 } 380 }
380 381
381 bool NativeBackendKWallet::GetLoginsCreatedBetween(base::Time get_begin,
382 base::Time get_end,
383 PasswordFormList* forms) {
384 int wallet_handle = WalletHandle();
385 if (wallet_handle == kInvalidKWalletHandle)
386 return false;
387 return GetLoginsList(
388 forms, get_begin, get_end, wallet_handle, CREATION_TIMESTAMP);
389 }
390
391 bool NativeBackendKWallet::GetAutofillableLogins(PasswordFormList* forms) { 382 bool NativeBackendKWallet::GetAutofillableLogins(PasswordFormList* forms) {
392 int wallet_handle = WalletHandle(); 383 int wallet_handle = WalletHandle();
393 if (wallet_handle == kInvalidKWalletHandle) 384 if (wallet_handle == kInvalidKWalletHandle)
394 return false; 385 return false;
395 return GetLoginsList(forms, true, wallet_handle); 386 return GetLoginsList(forms, true, wallet_handle);
396 } 387 }
397 388
398 bool NativeBackendKWallet::GetBlacklistLogins(PasswordFormList* forms) { 389 bool NativeBackendKWallet::GetBlacklistLogins(PasswordFormList* forms) {
399 int wallet_handle = WalletHandle(); 390 int wallet_handle = WalletHandle();
400 if (wallet_handle == kInvalidKWalletHandle) 391 if (wallet_handle == kInvalidKWalletHandle)
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 for (size_t i = 0; i < all_forms.size(); ++i) { 477 for (size_t i = 0; i < all_forms.size(); ++i) {
487 if (all_forms[i]->blacklisted_by_user == !autofillable) 478 if (all_forms[i]->blacklisted_by_user == !autofillable)
488 forms->push_back(all_forms[i]); 479 forms->push_back(all_forms[i]);
489 else 480 else
490 delete all_forms[i]; 481 delete all_forms[i];
491 } 482 }
492 483
493 return true; 484 return true;
494 } 485 }
495 486
496 bool NativeBackendKWallet::GetLoginsList(PasswordFormList* forms,
497 const base::Time& begin,
498 const base::Time& end,
499 int wallet_handle,
500 TimestampToCompare date_to_compare) {
501 PasswordFormList all_forms;
502 if (!GetAllLogins(&all_forms, wallet_handle))
503 return false;
504
505 // We have to read all the entries, and then filter them here.
506 base::Time autofill::PasswordForm::*date_member =
507 date_to_compare == CREATION_TIMESTAMP
508 ? &autofill::PasswordForm::date_created
509 : &autofill::PasswordForm::date_synced;
510 forms->reserve(forms->size() + all_forms.size());
511 for (size_t i = 0; i < all_forms.size(); ++i) {
512 if (begin <= all_forms[i]->*date_member &&
513 (end.is_null() || all_forms[i]->*date_member < end)) {
514 forms->push_back(all_forms[i]);
515 } else {
516 delete all_forms[i];
517 }
518 }
519
520 return true;
521 }
522
523 bool NativeBackendKWallet::GetAllLogins(PasswordFormList* forms, 487 bool NativeBackendKWallet::GetAllLogins(PasswordFormList* forms,
524 int wallet_handle) { 488 int wallet_handle) {
525 // We could probably also use readEntryList here. 489 // We could probably also use readEntryList here.
526 std::vector<std::string> realm_list; 490 std::vector<std::string> realm_list;
527 { 491 {
528 dbus::MethodCall method_call(kKWalletInterface, "entryList"); 492 dbus::MethodCall method_call(kKWalletInterface, "entryList");
529 dbus::MessageWriter builder(&method_call); 493 dbus::MessageWriter builder(&method_call);
530 builder.AppendInt32(wallet_handle); // handle 494 builder.AppendInt32(wallet_handle); // handle
531 builder.AppendString(folder_name_); // folder 495 builder.AppendString(folder_name_); // folder
532 builder.AppendString(app_name_); // appid 496 builder.AppendString(app_name_); // appid
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 } 938 }
975 939
976 return handle; 940 return handle;
977 } 941 }
978 942
979 std::string NativeBackendKWallet::GetProfileSpecificFolderName() const { 943 std::string NativeBackendKWallet::GetProfileSpecificFolderName() const {
980 // Originally, the folder name was always just "Chrome Form Data". 944 // Originally, the folder name was always just "Chrome Form Data".
981 // Now we use it to distinguish passwords for different profiles. 945 // Now we use it to distinguish passwords for different profiles.
982 return base::StringPrintf("%s (%d)", kKWalletFolder, profile_id_); 946 return base::StringPrintf("%s (%d)", kKWalletFolder, profile_id_);
983 } 947 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698