Chromium Code Reviews| Index: components/password_manager/core/browser/password_manager.cc |
| diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc |
| index 804aa5d4348ce113c20c7fc59ab3fa4754090ce6..ea5052d26ad285f49a9f1b1fb23c6ccac4b107ab 100644 |
| --- a/components/password_manager/core/browser/password_manager.cc |
| +++ b/components/password_manager/core/browser/password_manager.cc |
| @@ -238,10 +238,11 @@ void PasswordManager::SetGenerationElementAndReasonForForm( |
| // If there is no corresponding PasswordFormManager, we create one. This is |
| // not the common case, and should only happen when there is a bug in our |
| // ability to detect forms. |
| - auto manager = base::MakeUnique<PasswordFormManager>( |
| - this, client_, driver->AsWeakPtr(), form, |
| - base::WrapUnique(new FormSaverImpl(client_->GetPasswordStore())), |
| - nullptr); |
| + auto manager = |
| + make_scoped_refptr<PasswordFormManager>(new PasswordFormManager( |
|
vasilii
2017/05/29 13:15:49
MakeRefCounted
kolos1
2017/05/29 15:47:06
Done.
|
| + this, client_, driver->AsWeakPtr(), form, |
| + base::WrapUnique(new FormSaverImpl(client_->GetPasswordStore())), |
| + nullptr)); |
| pending_login_managers_.push_back(std::move(manager)); |
| } |
| @@ -349,11 +350,10 @@ void PasswordManager::ProvisionallySavePassword( |
| return; |
| } |
| - std::unique_ptr<PasswordFormManager> manager; |
| - // Transfer ownership of the manager from |pending_login_managers_| to |
| + scoped_refptr<PasswordFormManager> manager; |
| + // Copy ownership of the manager from |pending_login_managers_| to |
| // |manager|. |
| - manager.swap(*matched_manager_it); |
| - pending_login_managers_.erase(matched_manager_it); |
| + manager = *matched_manager_it; |
|
vasilii
2017/05/29 13:15:49
Can be done in one statement
kolos1
2017/05/29 15:47:06
Done.
|
| PasswordForm submitted_form(form); |
| submitted_form.preferred = true; |
| @@ -410,7 +410,7 @@ void PasswordManager::UpdateFormManagers() { |
| void PasswordManager::DropFormManagers() { |
| pending_login_managers_.clear(); |
| - provisional_save_manager_.reset(); |
| + provisional_save_manager_ = nullptr; |
| all_visible_forms_.clear(); |
| } |
| @@ -567,7 +567,7 @@ void PasswordManager::CreatePendingLoginManagers( |
| if (logger) |
| logger->LogFormSignatures(Logger::STRING_ADDING_SIGNATURE, *iter); |
| - auto manager = base::MakeUnique<PasswordFormManager>( |
| + auto manager = base::MakeRefCounted<PasswordFormManager>( |
| this, client_, |
| (driver ? driver->AsWeakPtr() : base::WeakPtr<PasswordManagerDriver>()), |
| *iter, base::WrapUnique(new FormSaverImpl(client_->GetPasswordStore())), |
| @@ -603,7 +603,7 @@ bool PasswordManager::CanProvisionalManagerSave() { |
| RecordFailure(MATCHING_NOT_COMPLETE, |
| provisional_save_manager_->observed_form().origin, |
| logger.get()); |
| - provisional_save_manager_.reset(); |
| + provisional_save_manager_ = nullptr; |
| return false; |
| } |
| return true; |
| @@ -650,7 +650,7 @@ void PasswordManager::OnPasswordFormsRendered( |
| if (logger) |
| logger->LogMessage(Logger::STRING_DECISION_DROP); |
| provisional_save_manager_->LogSubmitFailed(); |
| - provisional_save_manager_.reset(); |
| + provisional_save_manager_ = nullptr; |
| return; |
| } |
| @@ -687,7 +687,7 @@ void PasswordManager::OnPasswordFormsRendered( |
| all_visible_forms_[i]); |
| logger->LogMessage(Logger::STRING_DECISION_DROP); |
| } |
| - provisional_save_manager_.reset(); |
| + provisional_save_manager_ = nullptr; |
| // Clear all_visible_forms_ once we found the match. |
| all_visible_forms_.clear(); |
| return; |
| @@ -754,7 +754,7 @@ void PasswordManager::OnLoginSuccessful() { |
| RecordFailure(SYNC_CREDENTIAL, |
| provisional_save_manager_->observed_form().origin, |
| logger.get()); |
| - provisional_save_manager_.reset(); |
| + provisional_save_manager_ = nullptr; |
| return; |
| } |
| } |
| @@ -794,7 +794,7 @@ void PasswordManager::OnLoginSuccessful() { |
| if (provisional_save_manager_->has_generated_password()) { |
| client_->AutomaticPasswordSave(std::move(provisional_save_manager_)); |
| } else { |
| - provisional_save_manager_.reset(); |
| + provisional_save_manager_ = nullptr; |
| } |
| } |
| } |