Index: chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
diff --git a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
index a74236395683b825e767c991ba83c50d5c779cfa..8fc9f4c871bbe9fe6e373bfda1e6a8b3c92d2b28 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
@@ -61,41 +61,15 @@ base::string16 PendingStateTitleBasedOnSavePasswordPref( |
: IDS_SAVE_PASSWORD); |
} |
-class URLCollectionFeedbackSender { |
- public: |
- URLCollectionFeedbackSender(content::BrowserContext* context, |
- const std::string& url); |
- void SendFeedback(); |
- |
- private: |
- static const char kPasswordManagerURLCollectionBucket[]; |
- content::BrowserContext* context_; |
- std::string url_; |
- |
- DISALLOW_COPY_AND_ASSIGN(URLCollectionFeedbackSender); |
-}; |
- |
-const char URLCollectionFeedbackSender::kPasswordManagerURLCollectionBucket[] = |
- "ChromePasswordManagerFailure"; |
- |
-URLCollectionFeedbackSender::URLCollectionFeedbackSender( |
- content::BrowserContext* context, |
- const std::string& url) |
- : context_(context), url_(url) { |
-} |
- |
-void URLCollectionFeedbackSender::SendFeedback() { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- scoped_refptr<FeedbackData> feedback_data = new FeedbackData(); |
- feedback_data->set_category_tag(kPasswordManagerURLCollectionBucket); |
- feedback_data->set_description(""); |
- |
- feedback_data->set_image(make_scoped_ptr(new std::string)); |
- |
- feedback_data->set_page_url(url_); |
- feedback_data->set_user_email(""); |
- feedback_data->set_context(context_); |
- feedback_util::SendReport(feedback_data); |
+ScopedVector<const autofill::PasswordForm> DeepCopyForms( |
+ const std::vector<const autofill::PasswordForm*>& forms) { |
+ ScopedVector<const autofill::PasswordForm> result; |
+ result.reserve(forms.size()); |
+ std::transform(forms.begin(), forms.end(), std::back_inserter(result), |
+ [](const autofill::PasswordForm* form) { |
+ return new autofill::PasswordForm(*form); |
+ }); |
+ return result.Pass(); |
} |
} // namespace |
@@ -113,15 +87,16 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( |
state_ = controller->state(); |
if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
pending_password_ = controller->PendingPassword(); |
- best_matches_ = controller->best_matches(); |
+ local_credentials_ = DeepCopyForms(controller->GetCurrentForms()); |
+ } else if (state_ == password_manager::ui::CONFIRMATION_STATE) { |
+ // We don't need anything. |
} else if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE) { |
- local_pending_credentials_.swap(controller->local_credentials_forms()); |
- federated_pending_credentials_.swap( |
- controller->federated_credentials_forms()); |
+ local_credentials_ = DeepCopyForms(controller->GetCurrentForms()); |
+ federated_credentials_ = DeepCopyForms(controller->GetFederatedForms()); |
} else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) { |
- pending_password_ = *controller->local_credentials_forms()[0]; |
+ pending_password_ = *controller->GetCurrentForms()[0]; |
} else { |
- best_matches_ = controller->best_matches(); |
+ local_credentials_ = DeepCopyForms(controller->GetCurrentForms()); |
} |
if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) { |
@@ -195,17 +170,6 @@ void ManagePasswordsBubbleModel::OnBubbleHidden() { |
web_contents() ? |
ManagePasswordsUIController::FromWebContents(web_contents()) |
: nullptr; |
- if (state_ == password_manager::ui::CREDENTIAL_REQUEST_STATE && |
- manage_passwords_ui_controller) { |
- // It's time to run the pending callback if it wasn't called in |
- // OnChooseCredentials(). |
- // TODO(vasilii): remove this. It's not a bubble's problem because the |
- // controller is notified anyway about closed bubble. |
- manage_passwords_ui_controller->ChooseCredential( |
- autofill::PasswordForm(), |
- password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY); |
- state_ = password_manager::ui::INACTIVE_STATE; |
- } |
if (manage_passwords_ui_controller) |
manage_passwords_ui_controller->OnBubbleHidden(); |
if (dismissal_reason_ == metrics_util::NOT_DISPLAYED) |