Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_ui_controller.h" | 5 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h" |
| 6 | 6 |
| 7 #include "chrome/app/chrome_command_ids.h" | 7 #include "chrome/app/chrome_command_ids.h" |
| 8 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 8 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 9 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
| 10 #include "chrome/browser/password_manager/password_store_factory.h" | 10 #include "chrome/browser/password_manager/password_store_factory.h" |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 30 Profile::EXPLICIT_ACCESS).get(); | 30 Profile::EXPLICIT_ACCESS).get(); |
| 31 } | 31 } |
| 32 | 32 |
| 33 autofill::ConstPasswordFormMap ConstifyMap( | 33 autofill::ConstPasswordFormMap ConstifyMap( |
| 34 const autofill::PasswordFormMap& map) { | 34 const autofill::PasswordFormMap& map) { |
| 35 autofill::ConstPasswordFormMap ret; | 35 autofill::ConstPasswordFormMap ret; |
| 36 ret.insert(map.begin(), map.end()); | 36 ret.insert(map.begin(), map.end()); |
| 37 return ret; | 37 return ret; |
| 38 } | 38 } |
| 39 | 39 |
| 40 } // namespace | 40 void DeepCopyMap(const autofill::PasswordFormMap& map, |
|
vabr (Chromium)
2014/08/04 15:36:56
Please comment on the use and expectations. Things
vasilii
2014/08/04 16:20:59
Done.
| |
| 41 autofill::ConstPasswordFormMap* ret, | |
| 42 ScopedVector<autofill::PasswordForm>* deleter) { | |
| 43 ConstifyMap(map).swap(*ret); | |
| 44 deleter->clear(); | |
| 45 for (autofill::ConstPasswordFormMap::iterator i = ret->begin(); | |
| 46 i != ret->end(); ++i) { | |
| 47 autofill::PasswordForm* form(new autofill::PasswordForm(*i->second)); | |
|
vabr (Chromium)
2014/08/04 15:36:56
Please don't let naked pointers contain new-alloca
vasilii
2014/08/04 16:20:59
Done.
| |
| 48 deleter->push_back(form); | |
| 49 i->second = form; | |
| 50 } | |
| 51 } | |
| 52 | |
| 53 } // namespace | |
| 41 | 54 |
| 42 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ManagePasswordsUIController); | 55 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ManagePasswordsUIController); |
| 43 | 56 |
| 44 ManagePasswordsUIController::ManagePasswordsUIController( | 57 ManagePasswordsUIController::ManagePasswordsUIController( |
| 45 content::WebContents* web_contents) | 58 content::WebContents* web_contents) |
| 46 : content::WebContentsObserver(web_contents), | 59 : content::WebContentsObserver(web_contents), |
| 47 state_(password_manager::ui::INACTIVE_STATE) { | 60 state_(password_manager::ui::INACTIVE_STATE) { |
| 48 password_manager::PasswordStore* password_store = | 61 password_manager::PasswordStore* password_store = |
| 49 GetPasswordStore(web_contents); | 62 GetPasswordStore(web_contents); |
| 50 if (password_store) | 63 if (password_store) |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 86 password_form_map_ = ConstifyMap(form_manager_->best_matches()); | 99 password_form_map_ = ConstifyMap(form_manager_->best_matches()); |
| 87 password_form_map_[form_manager_->associated_username()] = | 100 password_form_map_[form_manager_->associated_username()] = |
| 88 &form_manager_->pending_credentials(); | 101 &form_manager_->pending_credentials(); |
| 89 origin_ = form_manager_->pending_credentials().origin; | 102 origin_ = form_manager_->pending_credentials().origin; |
| 90 state_ = password_manager::ui::CONFIRMATION_STATE; | 103 state_ = password_manager::ui::CONFIRMATION_STATE; |
| 91 UpdateBubbleAndIconVisibility(); | 104 UpdateBubbleAndIconVisibility(); |
| 92 } | 105 } |
| 93 | 106 |
| 94 void ManagePasswordsUIController::OnPasswordAutofilled( | 107 void ManagePasswordsUIController::OnPasswordAutofilled( |
| 95 const PasswordFormMap& password_form_map) { | 108 const PasswordFormMap& password_form_map) { |
| 96 password_form_map_ = ConstifyMap(password_form_map); | 109 DeepCopyMap(password_form_map, &password_form_map_, &new_password_forms_); |
| 97 origin_ = password_form_map_.begin()->second->origin; | 110 origin_ = password_form_map_.begin()->second->origin; |
| 98 state_ = password_manager::ui::MANAGE_STATE; | 111 state_ = password_manager::ui::MANAGE_STATE; |
| 99 UpdateBubbleAndIconVisibility(); | 112 UpdateBubbleAndIconVisibility(); |
| 100 } | 113 } |
| 101 | 114 |
| 102 void ManagePasswordsUIController::OnBlacklistBlockedAutofill( | 115 void ManagePasswordsUIController::OnBlacklistBlockedAutofill( |
| 103 const PasswordFormMap& password_form_map) { | 116 const PasswordFormMap& password_form_map) { |
| 104 password_form_map_ = ConstifyMap(password_form_map); | 117 DeepCopyMap(password_form_map, &password_form_map_, &new_password_forms_); |
| 105 origin_ = password_form_map_.begin()->second->origin; | 118 origin_ = password_form_map_.begin()->second->origin; |
| 106 state_ = password_manager::ui::BLACKLIST_STATE; | 119 state_ = password_manager::ui::BLACKLIST_STATE; |
| 107 UpdateBubbleAndIconVisibility(); | 120 UpdateBubbleAndIconVisibility(); |
| 108 } | 121 } |
| 109 | 122 |
| 110 void ManagePasswordsUIController::WebContentsDestroyed() { | 123 void ManagePasswordsUIController::WebContentsDestroyed() { |
| 111 password_manager::PasswordStore* password_store = | 124 password_manager::PasswordStore* password_store = |
| 112 GetPasswordStore(web_contents()); | 125 GetPasswordStore(web_contents()); |
| 113 if (password_store) | 126 if (password_store) |
| 114 password_store->RemoveObserver(this); | 127 password_store->RemoveObserver(this); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 257 return; | 270 return; |
| 258 CommandUpdater* updater = browser->command_controller()->command_updater(); | 271 CommandUpdater* updater = browser->command_controller()->command_updater(); |
| 259 updater->ExecuteCommand(IDC_MANAGE_PASSWORDS_FOR_PAGE); | 272 updater->ExecuteCommand(IDC_MANAGE_PASSWORDS_FOR_PAGE); |
| 260 #endif | 273 #endif |
| 261 } | 274 } |
| 262 | 275 |
| 263 bool ManagePasswordsUIController::PasswordPendingUserDecision() const { | 276 bool ManagePasswordsUIController::PasswordPendingUserDecision() const { |
| 264 return state_ == password_manager::ui::PENDING_PASSWORD_STATE || | 277 return state_ == password_manager::ui::PENDING_PASSWORD_STATE || |
| 265 state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE; | 278 state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE; |
| 266 } | 279 } |
| OLD | NEW |