| Index: chrome/browser/password_manager/password_store_x.cc
|
| diff --git a/chrome/browser/password_manager/password_store_x.cc b/chrome/browser/password_manager/password_store_x.cc
|
| index 36e0bc80f6774cc0734492d5f1cf56a474126fbc..d6e4a3966bfa7599e812b790e1fa81d99a574057 100644
|
| --- a/chrome/browser/password_manager/password_store_x.cc
|
| +++ b/chrome/browser/password_manager/password_store_x.cc
|
| @@ -26,6 +26,18 @@ using password_manager::PasswordStoreChangeList;
|
| using password_manager::PasswordStoreDefault;
|
| using std::vector;
|
|
|
| +namespace {
|
| +
|
| +bool AddLoginToBackend(const scoped_ptr<PasswordStoreX::NativeBackend>& backend,
|
| + const PasswordForm& form,
|
| + PasswordStoreChangeList* changes) {
|
| + *changes = backend->AddLogin(form);
|
| + return (!changes->empty() &&
|
| + changes->back().type() == PasswordStoreChange::ADD);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| PasswordStoreX::PasswordStoreX(
|
| scoped_refptr<base::SingleThreadTaskRunner> main_thread_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> db_thread_runner,
|
| @@ -41,8 +53,7 @@ PasswordStoreX::~PasswordStoreX() {}
|
| PasswordStoreChangeList PasswordStoreX::AddLoginImpl(const PasswordForm& form) {
|
| CheckMigration();
|
| PasswordStoreChangeList changes;
|
| - if (use_native_backend() && backend_->AddLogin(form)) {
|
| - changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, form));
|
| + if (use_native_backend() && AddLoginToBackend(backend_, form, &changes)) {
|
| allow_fallback_ = false;
|
| } else if (allow_default_store()) {
|
| changes = PasswordStoreDefault::AddLoginImpl(form);
|
| @@ -237,7 +248,8 @@ ssize_t PasswordStoreX::MigrateLogins() {
|
| // don't somehow end up with some of the passwords in one store and some in
|
| // another. We'll always have at least one intact store this way.
|
| for (size_t i = 0; i < forms.size(); ++i) {
|
| - if (!backend_->AddLogin(*forms[i])) {
|
| + PasswordStoreChangeList changes;
|
| + if (!AddLoginToBackend(backend_, *forms[i], &changes)) {
|
| ok = false;
|
| break;
|
| }
|
|
|