| 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 #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 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 changes.push_back(password_manager::PasswordStoreChange( | 294 changes.push_back(password_manager::PasswordStoreChange( |
| 295 password_manager::PasswordStoreChange::ADD, form)); | 295 password_manager::PasswordStoreChange::ADD, form)); |
| 296 | 296 |
| 297 bool ok = SetLoginsList(forms.get(), form.signon_realm, wallet_handle); | 297 bool ok = SetLoginsList(forms.get(), form.signon_realm, wallet_handle); |
| 298 if (!ok) | 298 if (!ok) |
| 299 changes.clear(); | 299 changes.clear(); |
| 300 | 300 |
| 301 return changes; | 301 return changes; |
| 302 } | 302 } |
| 303 | 303 |
| 304 bool NativeBackendKWallet::UpdateLogin(const PasswordForm& form) { | 304 bool NativeBackendKWallet::UpdateLogin( |
| 305 const PasswordForm& form, |
| 306 password_manager::PasswordStoreChangeList* changes) { |
| 307 DCHECK(changes); |
| 308 changes->clear(); |
| 305 int wallet_handle = WalletHandle(); | 309 int wallet_handle = WalletHandle(); |
| 306 if (wallet_handle == kInvalidKWalletHandle) | 310 if (wallet_handle == kInvalidKWalletHandle) |
| 307 return false; | 311 return false; |
| 308 | 312 |
| 309 PasswordFormList forms; | 313 ScopedVector<autofill::PasswordForm> forms; |
| 310 GetLoginsList(&forms, form.signon_realm, wallet_handle); | 314 GetLoginsList(&forms.get(), form.signon_realm, wallet_handle); |
| 311 | 315 |
| 316 bool updated = false; |
| 312 for (size_t i = 0; i < forms.size(); ++i) { | 317 for (size_t i = 0; i < forms.size(); ++i) { |
| 313 if (CompareForms(form, *forms[i], true)) | 318 if (CompareForms(form, *forms[i], true)) { |
| 314 *forms[i] = form; | 319 *forms[i] = form; |
| 320 updated = true; |
| 321 } |
| 322 } |
| 323 if (!updated) |
| 324 return true; |
| 325 |
| 326 if (SetLoginsList(forms.get(), form.signon_realm, wallet_handle)) { |
| 327 changes->push_back(password_manager::PasswordStoreChange( |
| 328 password_manager::PasswordStoreChange::UPDATE, form)); |
| 329 return true; |
| 315 } | 330 } |
| 316 | 331 |
| 317 bool ok = SetLoginsList(forms, form.signon_realm, wallet_handle); | 332 return false; |
| 318 | |
| 319 STLDeleteElements(&forms); | |
| 320 return ok; | |
| 321 } | 333 } |
| 322 | 334 |
| 323 bool NativeBackendKWallet::RemoveLogin(const PasswordForm& form) { | 335 bool NativeBackendKWallet::RemoveLogin(const PasswordForm& form) { |
| 324 int wallet_handle = WalletHandle(); | 336 int wallet_handle = WalletHandle(); |
| 325 if (wallet_handle == kInvalidKWalletHandle) | 337 if (wallet_handle == kInvalidKWalletHandle) |
| 326 return false; | 338 return false; |
| 327 | 339 |
| 328 PasswordFormList all_forms; | 340 PasswordFormList all_forms; |
| 329 GetLoginsList(&all_forms, form.signon_realm, wallet_handle); | 341 GetLoginsList(&all_forms, form.signon_realm, wallet_handle); |
| 330 | 342 |
| (...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 922 } | 934 } |
| 923 | 935 |
| 924 return handle; | 936 return handle; |
| 925 } | 937 } |
| 926 | 938 |
| 927 std::string NativeBackendKWallet::GetProfileSpecificFolderName() const { | 939 std::string NativeBackendKWallet::GetProfileSpecificFolderName() const { |
| 928 // Originally, the folder name was always just "Chrome Form Data". | 940 // Originally, the folder name was always just "Chrome Form Data". |
| 929 // Now we use it to distinguish passwords for different profiles. | 941 // Now we use it to distinguish passwords for different profiles. |
| 930 return base::StringPrintf("%s (%d)", kKWalletFolder, profile_id_); | 942 return base::StringPrintf("%s (%d)", kKWalletFolder, profile_id_); |
| 931 } | 943 } |
| OLD | NEW |