| 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 72d8ac238ab29348116abb6ce12fb14416086bd0..a440e4910b016e1e8313ff7a7a88bc801ba3c395 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| @@ -50,14 +50,14 @@ void CleanStatisticsForSite(Profile* profile, const GURL& origin) {
|
| password_store->RemoveSiteStats(origin.GetOrigin());
|
| }
|
|
|
| -ScopedVector<const autofill::PasswordForm> DeepCopyForms(
|
| - const std::vector<const autofill::PasswordForm*>& forms) {
|
| - ScopedVector<const autofill::PasswordForm> result;
|
| +std::vector<autofill::PasswordForm> DeepCopyForms(
|
| + const std::vector<std::unique_ptr<autofill::PasswordForm>>& forms) {
|
| + std::vector<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);
|
| - });
|
| + [](const std::unique_ptr<autofill::PasswordForm>& form) {
|
| + return *form;
|
| + });
|
| return result;
|
| }
|
|
|
| @@ -206,31 +206,37 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| delegate_(std::move(delegate)) {
|
| origin_ = delegate_->GetOrigin();
|
| state_ = delegate_->GetState();
|
| + password_manager::InteractionsStats interaction_stats;
|
| if (state_ == password_manager::ui::PENDING_PASSWORD_STATE ||
|
| state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
|
| pending_password_ = delegate_->GetPendingPassword();
|
| - local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms());
|
| - } else if (state_ == password_manager::ui::CONFIRMATION_STATE) {
|
| - // We don't need anything.
|
| - } else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) {
|
| - pending_password_ = delegate_->GetPendingPassword();
|
| - } else {
|
| - local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms());
|
| - }
|
| -
|
| - if (state_ == password_manager::ui::PENDING_PASSWORD_STATE ||
|
| - state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
|
| + if (state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
|
| + local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms());
|
| + password_overridden_ = delegate_->IsPasswordOverridden();
|
| + } else {
|
| + interaction_stats.origin_domain = origin_.GetOrigin();
|
| + interaction_stats.username_value = pending_password_.username_value;
|
| + password_manager::InteractionsStats* stats =
|
| + delegate_->GetCurrentInteractionStats();
|
| + if (stats) {
|
| + DCHECK_EQ(interaction_stats.username_value, stats->username_value);
|
| + DCHECK_EQ(interaction_stats.origin_domain, stats->origin_domain);
|
| + interaction_stats.dismissal_count = stats->dismissal_count;
|
| + }
|
| + }
|
| UpdatePendingStateTitle();
|
| } else if (state_ == password_manager::ui::CONFIRMATION_STATE) {
|
| title_ =
|
| l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE);
|
| } else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) {
|
| - // There is no title.
|
| + pending_password_ = delegate_->GetPendingPassword();
|
| } else if (state_ == password_manager::ui::MANAGE_STATE) {
|
| + local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms());
|
| UpdateManageStateTitle();
|
| + manage_link_ =
|
| + l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
|
| }
|
|
|
| - password_manager::InteractionsStats interaction_stats;
|
| if (state_ == password_manager::ui::CONFIRMATION_STATE) {
|
| base::string16 save_confirmation_link =
|
| l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_LINK);
|
| @@ -250,23 +256,8 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| confirmation_text_id, save_confirmation_link, &offset);
|
| save_confirmation_link_range_ =
|
| gfx::Range(offset, offset + save_confirmation_link.length());
|
| - } else if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) {
|
| - interaction_stats.origin_domain = origin_.GetOrigin();
|
| - interaction_stats.username_value = pending_password_.username_value;
|
| - password_manager::InteractionsStats* stats =
|
| - delegate_->GetCurrentInteractionStats();
|
| - if (stats) {
|
| - DCHECK_EQ(interaction_stats.username_value, stats->username_value);
|
| - DCHECK_EQ(interaction_stats.origin_domain, stats->origin_domain);
|
| - interaction_stats.dismissal_count = stats->dismissal_count;
|
| - }
|
| - } else if (state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
|
| - password_overridden_ = delegate_->IsPasswordOverridden();
|
| }
|
|
|
| - manage_link_ =
|
| - l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
|
| -
|
| password_manager::metrics_util::UIDisplayDisposition display_disposition =
|
| metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING;
|
| if (display_reason == USER_ACTION) {
|
|
|