| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/ui/passwords/manage_passwords_state.h" | 5 #include "chrome/browser/ui/passwords/manage_passwords_state.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 } // namespace | 73 } // namespace |
| 74 | 74 |
| 75 ManagePasswordsState::ManagePasswordsState() | 75 ManagePasswordsState::ManagePasswordsState() |
| 76 : state_(password_manager::ui::INACTIVE_STATE), | 76 : state_(password_manager::ui::INACTIVE_STATE), |
| 77 client_(nullptr) { | 77 client_(nullptr) { |
| 78 } | 78 } |
| 79 | 79 |
| 80 ManagePasswordsState::~ManagePasswordsState() {} | 80 ManagePasswordsState::~ManagePasswordsState() {} |
| 81 | 81 |
| 82 void ManagePasswordsState::OnPendingPassword( | 82 void ManagePasswordsState::OnPendingPassword( |
| 83 std::unique_ptr<password_manager::PasswordFormManager> form_manager) { | 83 scoped_refptr<password_manager::PasswordFormManager> form_manager) { |
| 84 ClearData(); | 84 ClearData(); |
| 85 form_manager_ = std::move(form_manager); | 85 form_manager_ = std::move(form_manager); |
| 86 local_credentials_forms_ = | 86 local_credentials_forms_ = |
| 87 DeepCopyNonPSLMapToVector(form_manager_->best_matches()); | 87 DeepCopyNonPSLMapToVector(form_manager_->best_matches()); |
| 88 AppendDeepCopyVector(form_manager_->form_fetcher()->GetFederatedMatches(), | 88 AppendDeepCopyVector(form_manager_->form_fetcher()->GetFederatedMatches(), |
| 89 &local_credentials_forms_); | 89 &local_credentials_forms_); |
| 90 origin_ = form_manager_->observed_form().origin; | 90 origin_ = form_manager_->observed_form().origin; |
| 91 SetState(password_manager::ui::PENDING_PASSWORD_STATE); | 91 SetState(password_manager::ui::PENDING_PASSWORD_STATE); |
| 92 } | 92 } |
| 93 | 93 |
| 94 void ManagePasswordsState::OnUpdatePassword( | 94 void ManagePasswordsState::OnUpdatePassword( |
| 95 std::unique_ptr<password_manager::PasswordFormManager> form_manager) { | 95 scoped_refptr<password_manager::PasswordFormManager> form_manager) { |
| 96 ClearData(); | 96 ClearData(); |
| 97 form_manager_ = std::move(form_manager); | 97 form_manager_ = std::move(form_manager); |
| 98 local_credentials_forms_ = | 98 local_credentials_forms_ = |
| 99 DeepCopyNonPSLMapToVector(form_manager_->best_matches()); | 99 DeepCopyNonPSLMapToVector(form_manager_->best_matches()); |
| 100 AppendDeepCopyVector(form_manager_->form_fetcher()->GetFederatedMatches(), | 100 AppendDeepCopyVector(form_manager_->form_fetcher()->GetFederatedMatches(), |
| 101 &local_credentials_forms_); | 101 &local_credentials_forms_); |
| 102 origin_ = form_manager_->observed_form().origin; | 102 origin_ = form_manager_->observed_form().origin; |
| 103 SetState(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); | 103 SetState(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE); |
| 104 } | 104 } |
| 105 | 105 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 116 std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, | 116 std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, |
| 117 const GURL& origin) { | 117 const GURL& origin) { |
| 118 DCHECK(!local_forms.empty()); | 118 DCHECK(!local_forms.empty()); |
| 119 ClearData(); | 119 ClearData(); |
| 120 local_credentials_forms_ = std::move(local_forms); | 120 local_credentials_forms_ = std::move(local_forms); |
| 121 origin_ = origin; | 121 origin_ = origin; |
| 122 SetState(password_manager::ui::AUTO_SIGNIN_STATE); | 122 SetState(password_manager::ui::AUTO_SIGNIN_STATE); |
| 123 } | 123 } |
| 124 | 124 |
| 125 void ManagePasswordsState::OnAutomaticPasswordSave( | 125 void ManagePasswordsState::OnAutomaticPasswordSave( |
| 126 std::unique_ptr<PasswordFormManager> form_manager) { | 126 scoped_refptr<PasswordFormManager> form_manager) { |
| 127 ClearData(); | 127 ClearData(); |
| 128 form_manager_ = std::move(form_manager); | 128 form_manager_ = std::move(form_manager); |
| 129 local_credentials_forms_.reserve(form_manager_->best_matches().size()); | 129 local_credentials_forms_.reserve(form_manager_->best_matches().size()); |
| 130 bool updated = false; | 130 bool updated = false; |
| 131 for (const auto& form : form_manager_->best_matches()) { | 131 for (const auto& form : form_manager_->best_matches()) { |
| 132 if (form.second->is_public_suffix_match) | 132 if (form.second->is_public_suffix_match) |
| 133 continue; | 133 continue; |
| 134 if (form_manager_->pending_credentials().username_value == form.first) { | 134 if (form_manager_->pending_credentials().username_value == form.first) { |
| 135 local_credentials_forms_.push_back( | 135 local_credentials_forms_.push_back( |
| 136 base::MakeUnique<autofill::PasswordForm>( | 136 base::MakeUnique<autofill::PasswordForm>( |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 void ManagePasswordsState::ChooseCredential( | 215 void ManagePasswordsState::ChooseCredential( |
| 216 const autofill::PasswordForm* form) { | 216 const autofill::PasswordForm* form) { |
| 217 DCHECK_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, state()); | 217 DCHECK_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE, state()); |
| 218 DCHECK(!credentials_callback().is_null()); | 218 DCHECK(!credentials_callback().is_null()); |
| 219 | 219 |
| 220 credentials_callback().Run(form); | 220 credentials_callback().Run(form); |
| 221 set_credentials_callback(ManagePasswordsState::CredentialsCallback()); | 221 set_credentials_callback(ManagePasswordsState::CredentialsCallback()); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void ManagePasswordsState::ClearData() { | 224 void ManagePasswordsState::ClearData() { |
| 225 form_manager_.reset(); | 225 form_manager_ = nullptr; |
| 226 local_credentials_forms_.clear(); | 226 local_credentials_forms_.clear(); |
| 227 credentials_callback_.Reset(); | 227 credentials_callback_.Reset(); |
| 228 } | 228 } |
| 229 | 229 |
| 230 void ManagePasswordsState::AddForm(const autofill::PasswordForm& form) { | 230 void ManagePasswordsState::AddForm(const autofill::PasswordForm& form) { |
| 231 if (form.origin != origin_) | 231 if (form.origin != origin_) |
| 232 return; | 232 return; |
| 233 if (UpdateForm(form)) | 233 if (UpdateForm(form)) |
| 234 return; | 234 return; |
| 235 local_credentials_forms_.push_back( | 235 local_credentials_forms_.push_back( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 248 DCHECK(client_); | 248 DCHECK(client_); |
| 249 if (client_->GetLogManager()->IsLoggingActive()) { | 249 if (client_->GetLogManager()->IsLoggingActive()) { |
| 250 password_manager::BrowserSavePasswordProgressLogger logger( | 250 password_manager::BrowserSavePasswordProgressLogger logger( |
| 251 client_->GetLogManager()); | 251 client_->GetLogManager()); |
| 252 logger.LogNumber( | 252 logger.LogNumber( |
| 253 autofill::SavePasswordProgressLogger::STRING_NEW_UI_STATE, | 253 autofill::SavePasswordProgressLogger::STRING_NEW_UI_STATE, |
| 254 state); | 254 state); |
| 255 } | 255 } |
| 256 state_ = state; | 256 state_ = state; |
| 257 } | 257 } |
| OLD | NEW |