| 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 <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 namespace { | 38 namespace { |
| 39 | 39 |
| 40 password_manager::PasswordStore* GetPasswordStore( | 40 password_manager::PasswordStore* GetPasswordStore( |
| 41 content::WebContents* web_contents) { | 41 content::WebContents* web_contents) { |
| 42 return PasswordStoreFactory::GetForProfile( | 42 return PasswordStoreFactory::GetForProfile( |
| 43 Profile::FromBrowserContext(web_contents->GetBrowserContext()), | 43 Profile::FromBrowserContext(web_contents->GetBrowserContext()), |
| 44 ServiceAccessType::EXPLICIT_ACCESS).get(); | 44 ServiceAccessType::EXPLICIT_ACCESS).get(); |
| 45 } | 45 } |
| 46 | 46 |
| 47 std::vector<scoped_ptr<autofill::PasswordForm>> CopyFormVector( | 47 std::vector<std::unique_ptr<autofill::PasswordForm>> CopyFormVector( |
| 48 const ScopedVector<autofill::PasswordForm>& forms) { | 48 const ScopedVector<autofill::PasswordForm>& forms) { |
| 49 std::vector<scoped_ptr<autofill::PasswordForm>> result(forms.size()); | 49 std::vector<std::unique_ptr<autofill::PasswordForm>> result(forms.size()); |
| 50 for (size_t i = 0; i < forms.size(); ++i) | 50 for (size_t i = 0; i < forms.size(); ++i) |
| 51 result[i].reset(new autofill::PasswordForm(*forms[i])); | 51 result[i].reset(new autofill::PasswordForm(*forms[i])); |
| 52 return result; | 52 return result; |
| 53 } | 53 } |
| 54 | 54 |
| 55 } // namespace | 55 } // namespace |
| 56 | 56 |
| 57 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ManagePasswordsUIController); | 57 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ManagePasswordsUIController); |
| 58 | 58 |
| 59 ManagePasswordsUIController::ManagePasswordsUIController( | 59 ManagePasswordsUIController::ManagePasswordsUIController( |
| 60 content::WebContents* web_contents) | 60 content::WebContents* web_contents) |
| 61 : content::WebContentsObserver(web_contents), | 61 : content::WebContentsObserver(web_contents), |
| 62 bubble_status_(NOT_SHOWN) { | 62 bubble_status_(NOT_SHOWN) { |
| 63 passwords_data_.set_client( | 63 passwords_data_.set_client( |
| 64 ChromePasswordManagerClient::FromWebContents(web_contents)); | 64 ChromePasswordManagerClient::FromWebContents(web_contents)); |
| 65 password_manager::PasswordStore* password_store = | 65 password_manager::PasswordStore* password_store = |
| 66 GetPasswordStore(web_contents); | 66 GetPasswordStore(web_contents); |
| 67 if (password_store) | 67 if (password_store) |
| 68 password_store->AddObserver(this); | 68 password_store->AddObserver(this); |
| 69 } | 69 } |
| 70 | 70 |
| 71 ManagePasswordsUIController::~ManagePasswordsUIController() {} | 71 ManagePasswordsUIController::~ManagePasswordsUIController() {} |
| 72 | 72 |
| 73 void ManagePasswordsUIController::OnPasswordSubmitted( | 73 void ManagePasswordsUIController::OnPasswordSubmitted( |
| 74 scoped_ptr<PasswordFormManager> form_manager) { | 74 std::unique_ptr<PasswordFormManager> form_manager) { |
| 75 bool show_bubble = !form_manager->IsBlacklisted(); | 75 bool show_bubble = !form_manager->IsBlacklisted(); |
| 76 DestroyAccountChooser(); | 76 DestroyAccountChooser(); |
| 77 passwords_data_.OnPendingPassword(std::move(form_manager)); | 77 passwords_data_.OnPendingPassword(std::move(form_manager)); |
| 78 if (show_bubble) { | 78 if (show_bubble) { |
| 79 password_manager::InteractionsStats* stats = GetCurrentInteractionStats(); | 79 password_manager::InteractionsStats* stats = GetCurrentInteractionStats(); |
| 80 const int show_threshold = | 80 const int show_threshold = |
| 81 password_bubble_experiment::GetSmartBubbleDismissalThreshold(); | 81 password_bubble_experiment::GetSmartBubbleDismissalThreshold(); |
| 82 if (stats && show_threshold > 0 && stats->dismissal_count >= show_threshold) | 82 if (stats && show_threshold > 0 && stats->dismissal_count >= show_threshold) |
| 83 show_bubble = false; | 83 show_bubble = false; |
| 84 } | 84 } |
| 85 if (show_bubble) | 85 if (show_bubble) |
| 86 bubble_status_ = SHOULD_POP_UP; | 86 bubble_status_ = SHOULD_POP_UP; |
| 87 UpdateBubbleAndIconVisibility(); | 87 UpdateBubbleAndIconVisibility(); |
| 88 } | 88 } |
| 89 | 89 |
| 90 void ManagePasswordsUIController::OnUpdatePasswordSubmitted( | 90 void ManagePasswordsUIController::OnUpdatePasswordSubmitted( |
| 91 scoped_ptr<PasswordFormManager> form_manager) { | 91 std::unique_ptr<PasswordFormManager> form_manager) { |
| 92 DestroyAccountChooser(); | 92 DestroyAccountChooser(); |
| 93 passwords_data_.OnUpdatePassword(std::move(form_manager)); | 93 passwords_data_.OnUpdatePassword(std::move(form_manager)); |
| 94 bubble_status_ = SHOULD_POP_UP; | 94 bubble_status_ = SHOULD_POP_UP; |
| 95 UpdateBubbleAndIconVisibility(); | 95 UpdateBubbleAndIconVisibility(); |
| 96 } | 96 } |
| 97 | 97 |
| 98 bool ManagePasswordsUIController::OnChooseCredentials( | 98 bool ManagePasswordsUIController::OnChooseCredentials( |
| 99 ScopedVector<autofill::PasswordForm> local_credentials, | 99 ScopedVector<autofill::PasswordForm> local_credentials, |
| 100 ScopedVector<autofill::PasswordForm> federated_credentials, | 100 ScopedVector<autofill::PasswordForm> federated_credentials, |
| 101 const GURL& origin, | 101 const GURL& origin, |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 if (dialog_controller_) | 133 if (dialog_controller_) |
| 134 return; | 134 return; |
| 135 dialog_controller_.reset(new PasswordDialogControllerImpl( | 135 dialog_controller_.reset(new PasswordDialogControllerImpl( |
| 136 Profile::FromBrowserContext(web_contents()->GetBrowserContext()), | 136 Profile::FromBrowserContext(web_contents()->GetBrowserContext()), |
| 137 this)); | 137 this)); |
| 138 dialog_controller_->ShowAutosigninPrompt( | 138 dialog_controller_->ShowAutosigninPrompt( |
| 139 CreateAutoSigninPrompt(dialog_controller_.get())); | 139 CreateAutoSigninPrompt(dialog_controller_.get())); |
| 140 } | 140 } |
| 141 | 141 |
| 142 void ManagePasswordsUIController::OnAutomaticPasswordSave( | 142 void ManagePasswordsUIController::OnAutomaticPasswordSave( |
| 143 scoped_ptr<PasswordFormManager> form_manager) { | 143 std::unique_ptr<PasswordFormManager> form_manager) { |
| 144 DestroyAccountChooser(); | 144 DestroyAccountChooser(); |
| 145 passwords_data_.OnAutomaticPasswordSave(std::move(form_manager)); | 145 passwords_data_.OnAutomaticPasswordSave(std::move(form_manager)); |
| 146 bubble_status_ = SHOULD_POP_UP; | 146 bubble_status_ = SHOULD_POP_UP; |
| 147 UpdateBubbleAndIconVisibility(); | 147 UpdateBubbleAndIconVisibility(); |
| 148 } | 148 } |
| 149 | 149 |
| 150 void ManagePasswordsUIController::OnPasswordAutofilled( | 150 void ManagePasswordsUIController::OnPasswordAutofilled( |
| 151 const autofill::PasswordFormMap& password_form_map, | 151 const autofill::PasswordFormMap& password_form_map, |
| 152 const GURL& origin, | 152 const GURL& origin, |
| 153 const std::vector<scoped_ptr<autofill::PasswordForm>>* federated_matches) { | 153 const std::vector<std::unique_ptr<autofill::PasswordForm>>* |
| 154 federated_matches) { |
| 154 // To change to managed state only when the managed state is more important | 155 // To change to managed state only when the managed state is more important |
| 155 // for the user that the current state. | 156 // for the user that the current state. |
| 156 if (passwords_data_.state() == password_manager::ui::INACTIVE_STATE || | 157 if (passwords_data_.state() == password_manager::ui::INACTIVE_STATE || |
| 157 passwords_data_.state() == password_manager::ui::MANAGE_STATE) { | 158 passwords_data_.state() == password_manager::ui::MANAGE_STATE) { |
| 158 passwords_data_.OnPasswordAutofilled(password_form_map, origin, | 159 passwords_data_.OnPasswordAutofilled(password_form_map, origin, |
| 159 federated_matches); | 160 federated_matches); |
| 160 UpdateBubbleAndIconVisibility(); | 161 UpdateBubbleAndIconVisibility(); |
| 161 } | 162 } |
| 162 } | 163 } |
| 163 | 164 |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); | 426 passwords_data_.TransitionToState(password_manager::ui::MANAGE_STATE); |
| 426 } | 427 } |
| 427 } | 428 } |
| 428 | 429 |
| 429 void ManagePasswordsUIController::WebContentsDestroyed() { | 430 void ManagePasswordsUIController::WebContentsDestroyed() { |
| 430 password_manager::PasswordStore* password_store = | 431 password_manager::PasswordStore* password_store = |
| 431 GetPasswordStore(web_contents()); | 432 GetPasswordStore(web_contents()); |
| 432 if (password_store) | 433 if (password_store) |
| 433 password_store->RemoveObserver(this); | 434 password_store->RemoveObserver(this); |
| 434 } | 435 } |
| OLD | NEW |