| 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 "components/password_manager/core/browser/browser_save_password_progres
s_logger.h" | 7 #include "components/password_manager/core/browser/browser_save_password_progres
s_logger.h" |
| 8 #include "components/password_manager/core/browser/password_form_manager.h" | 8 #include "components/password_manager/core/browser/password_form_manager.h" |
| 9 #include "components/password_manager/core/browser/password_manager_client.h" | 9 #include "components/password_manager/core/browser/password_manager_client.h" |
| 10 #include "components/password_manager/core/common/credential_manager_types.h" | 10 #include "components/password_manager/core/common/credential_manager_types.h" |
| 11 | 11 |
| 12 using password_manager::PasswordFormManager; | 12 using password_manager::PasswordFormManager; |
| 13 using autofill::PasswordFormMap; | 13 using autofill::PasswordFormMap; |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 | 16 |
| 17 // Converts the map with pointers or const pointers to the vector of const | 17 // Returns a vector containing the values of a map. |
| 18 // pointers. | 18 template <typename Map> |
| 19 template <typename T> | 19 std::vector<typename Map::mapped_type> MapToVector(const Map& map) { |
| 20 std::vector<const T*> MapToVector( | 20 std::vector<typename Map::mapped_type> ret; |
| 21 const std::map<base::string16, T*>& map) { | |
| 22 std::vector<const autofill::PasswordForm*> ret; | |
| 23 ret.reserve(map.size()); | 21 ret.reserve(map.size()); |
| 24 for (const auto& form_pair : map) | 22 for (const auto& form_pair : map) |
| 25 ret.push_back(form_pair.second); | 23 ret.push_back(form_pair.second); |
| 24 return ret; |
| 25 } |
| 26 |
| 27 // Takes a ScopedPtrMap. Returns a vector of non-owned pointers to the elements |
| 28 // inside the scoped_ptrs. |
| 29 template <typename Map> |
| 30 std::vector<const typename Map::mapped_type::element_type*> |
| 31 ScopedPtrMapToVector(const Map& map) { |
| 32 std::vector<const typename Map::mapped_type::element_type*> ret; |
| 33 ret.reserve(map.size()); |
| 34 for (const auto& form_pair : map) |
| 35 ret.push_back(form_pair.second); |
| 26 return ret; | 36 return ret; |
| 27 } | 37 } |
| 28 | 38 |
| 29 ScopedVector<const autofill::PasswordForm> DeepCopyMapToVector( | 39 ScopedVector<const autofill::PasswordForm> DeepCopyMapToVector( |
| 30 const PasswordFormMap& password_form_map) { | 40 const PasswordFormMap& password_form_map) { |
| 31 ScopedVector<const autofill::PasswordForm> ret; | 41 ScopedVector<const autofill::PasswordForm> ret; |
| 32 ret.reserve(password_form_map.size()); | 42 ret.reserve(password_form_map.size()); |
| 33 for (const auto& form_pair : password_form_map) | 43 for (const auto& form_pair : password_form_map) |
| 34 ret.push_back(new autofill::PasswordForm(*form_pair.second)); | 44 ret.push_back(new autofill::PasswordForm(*form_pair.second)); |
| 35 return ret.Pass(); | 45 return ret.Pass(); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 : state_(password_manager::ui::INACTIVE_STATE), | 111 : state_(password_manager::ui::INACTIVE_STATE), |
| 102 client_(nullptr) { | 112 client_(nullptr) { |
| 103 } | 113 } |
| 104 | 114 |
| 105 ManagePasswordsState::~ManagePasswordsState() {} | 115 ManagePasswordsState::~ManagePasswordsState() {} |
| 106 | 116 |
| 107 void ManagePasswordsState::OnPendingPassword( | 117 void ManagePasswordsState::OnPendingPassword( |
| 108 scoped_ptr<password_manager::PasswordFormManager> form_manager) { | 118 scoped_ptr<password_manager::PasswordFormManager> form_manager) { |
| 109 ClearData(); | 119 ClearData(); |
| 110 form_manager_ = form_manager.Pass(); | 120 form_manager_ = form_manager.Pass(); |
| 111 current_forms_weak_ = MapToVector(form_manager_->best_matches()); | 121 current_forms_weak_ = ScopedPtrMapToVector(form_manager_->best_matches()); |
| 112 origin_ = form_manager_->pending_credentials().origin; | 122 origin_ = form_manager_->pending_credentials().origin; |
| 113 SetState(password_manager::ui::PENDING_PASSWORD_STATE); | 123 SetState(password_manager::ui::PENDING_PASSWORD_STATE); |
| 114 } | 124 } |
| 115 | 125 |
| 116 void ManagePasswordsState::OnRequestCredentials( | 126 void ManagePasswordsState::OnRequestCredentials( |
| 117 ScopedVector<autofill::PasswordForm> local_credentials, | 127 ScopedVector<autofill::PasswordForm> local_credentials, |
| 118 ScopedVector<autofill::PasswordForm> federated_credentials, | 128 ScopedVector<autofill::PasswordForm> federated_credentials, |
| 119 const GURL& origin) { | 129 const GURL& origin) { |
| 120 ClearData(); | 130 ClearData(); |
| 121 local_credentials_forms_ = ConstifyVector(&local_credentials); | 131 local_credentials_forms_ = ConstifyVector(&local_credentials); |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 void ManagePasswordsState::SetState(password_manager::ui::State state) { | 286 void ManagePasswordsState::SetState(password_manager::ui::State state) { |
| 277 DCHECK(client_); | 287 DCHECK(client_); |
| 278 if (client_->IsLoggingActive()) { | 288 if (client_->IsLoggingActive()) { |
| 279 password_manager::BrowserSavePasswordProgressLogger logger(client_); | 289 password_manager::BrowserSavePasswordProgressLogger logger(client_); |
| 280 logger.LogNumber( | 290 logger.LogNumber( |
| 281 autofill::SavePasswordProgressLogger::STRING_NEW_UI_STATE, | 291 autofill::SavePasswordProgressLogger::STRING_NEW_UI_STATE, |
| 282 state); | 292 state); |
| 283 } | 293 } |
| 284 state_ = state; | 294 state_ = state; |
| 285 } | 295 } |
| OLD | NEW |