Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1126)

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_bubble_model.cc

Issue 2253233005: Change ScopedVector to vector<unique_ptr> in the password's UI code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: android+ Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_bubble_model.h" 5 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 void CleanStatisticsForSite(Profile* profile, const GURL& origin) { 44 void CleanStatisticsForSite(Profile* profile, const GURL& origin) {
45 DCHECK(profile); 45 DCHECK(profile);
46 password_manager::PasswordStore* password_store = 46 password_manager::PasswordStore* password_store =
47 PasswordStoreFactory::GetForProfile(profile, 47 PasswordStoreFactory::GetForProfile(profile,
48 ServiceAccessType::IMPLICIT_ACCESS) 48 ServiceAccessType::IMPLICIT_ACCESS)
49 .get(); 49 .get();
50 password_store->RemoveSiteStats(origin.GetOrigin()); 50 password_store->RemoveSiteStats(origin.GetOrigin());
51 } 51 }
52 52
53 ScopedVector<const autofill::PasswordForm> DeepCopyForms( 53 std::vector<autofill::PasswordForm> DeepCopyForms(
54 const std::vector<const autofill::PasswordForm*>& forms) { 54 const std::vector<std::unique_ptr<autofill::PasswordForm>>& forms) {
55 ScopedVector<const autofill::PasswordForm> result; 55 std::vector<autofill::PasswordForm> result;
56 result.reserve(forms.size()); 56 result.reserve(forms.size());
57 std::transform(forms.begin(), forms.end(), std::back_inserter(result), 57 std::transform(forms.begin(), forms.end(), std::back_inserter(result),
58 [](const autofill::PasswordForm* form) { 58 [](const std::unique_ptr<autofill::PasswordForm>& form) {
59 return new autofill::PasswordForm(*form); 59 return *form;
60 }); 60 });
61 return result; 61 return result;
62 } 62 }
63 63
64 password_bubble_experiment::SmartLockBranding GetSmartLockBrandingState( 64 password_bubble_experiment::SmartLockBranding GetSmartLockBrandingState(
65 Profile* profile) { 65 Profile* profile) {
66 const ProfileSyncService* sync_service = 66 const ProfileSyncService* sync_service =
67 ProfileSyncServiceFactory::GetForProfile(profile); 67 ProfileSyncServiceFactory::GetForProfile(profile);
68 return password_bubble_experiment::GetSmartLockBrandingState(sync_service); 68 return password_bubble_experiment::GetSmartLockBrandingState(sync_service);
69 } 69 }
70 70
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 199 }
200 } 200 }
201 201
202 ManagePasswordsBubbleModel::ManagePasswordsBubbleModel( 202 ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
203 base::WeakPtr<PasswordsModelDelegate> delegate, 203 base::WeakPtr<PasswordsModelDelegate> delegate,
204 DisplayReason display_reason) 204 DisplayReason display_reason)
205 : password_overridden_(false), 205 : password_overridden_(false),
206 delegate_(std::move(delegate)) { 206 delegate_(std::move(delegate)) {
207 origin_ = delegate_->GetOrigin(); 207 origin_ = delegate_->GetOrigin();
208 state_ = delegate_->GetState(); 208 state_ = delegate_->GetState();
209 password_manager::InteractionsStats interaction_stats;
209 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE || 210 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE ||
210 state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { 211 state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
211 pending_password_ = delegate_->GetPendingPassword(); 212 pending_password_ = delegate_->GetPendingPassword();
212 local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms()); 213 if (state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
213 } else if (state_ == password_manager::ui::CONFIRMATION_STATE) { 214 local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms());
214 // We don't need anything. 215 password_overridden_ = delegate_->IsPasswordOverridden();
215 } else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) { 216 } else {
216 pending_password_ = delegate_->GetPendingPassword(); 217 interaction_stats.origin_domain = origin_.GetOrigin();
217 } else { 218 interaction_stats.username_value = pending_password_.username_value;
218 local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms()); 219 password_manager::InteractionsStats* stats =
219 } 220 delegate_->GetCurrentInteractionStats();
220 221 if (stats) {
221 if (state_ == password_manager::ui::PENDING_PASSWORD_STATE || 222 DCHECK_EQ(interaction_stats.username_value, stats->username_value);
222 state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) { 223 DCHECK_EQ(interaction_stats.origin_domain, stats->origin_domain);
224 interaction_stats.dismissal_count = stats->dismissal_count;
225 }
226 }
223 UpdatePendingStateTitle(); 227 UpdatePendingStateTitle();
224 } else if (state_ == password_manager::ui::CONFIRMATION_STATE) { 228 } else if (state_ == password_manager::ui::CONFIRMATION_STATE) {
225 title_ = 229 title_ =
226 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE); 230 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE);
227 } else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) { 231 } else if (state_ == password_manager::ui::AUTO_SIGNIN_STATE) {
228 // There is no title. 232 pending_password_ = delegate_->GetPendingPassword();
229 } else if (state_ == password_manager::ui::MANAGE_STATE) { 233 } else if (state_ == password_manager::ui::MANAGE_STATE) {
234 local_credentials_ = DeepCopyForms(delegate_->GetCurrentForms());
230 UpdateManageStateTitle(); 235 UpdateManageStateTitle();
236 manage_link_ =
237 l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
231 } 238 }
232 239
233 password_manager::InteractionsStats interaction_stats;
234 if (state_ == password_manager::ui::CONFIRMATION_STATE) { 240 if (state_ == password_manager::ui::CONFIRMATION_STATE) {
235 base::string16 save_confirmation_link = 241 base::string16 save_confirmation_link =
236 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_LINK); 242 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_LINK);
237 int confirmation_text_id = IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TEXT; 243 int confirmation_text_id = IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TEXT;
238 if (GetSmartLockBrandingState(GetProfile()) == 244 if (GetSmartLockBrandingState(GetProfile()) ==
239 password_bubble_experiment::SmartLockBranding::FULL) { 245 password_bubble_experiment::SmartLockBranding::FULL) {
240 std::string management_hostname = 246 std::string management_hostname =
241 GURL(password_manager::kPasswordManagerAccountDashboardURL).host(); 247 GURL(password_manager::kPasswordManagerAccountDashboardURL).host();
242 save_confirmation_link = base::UTF8ToUTF16(management_hostname); 248 save_confirmation_link = base::UTF8ToUTF16(management_hostname);
243 confirmation_text_id = 249 confirmation_text_id =
244 IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_SMART_LOCK_TEXT; 250 IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_SMART_LOCK_TEXT;
245 } 251 }
246 252
247 size_t offset; 253 size_t offset;
248 save_confirmation_text_ = 254 save_confirmation_text_ =
249 l10n_util::GetStringFUTF16( 255 l10n_util::GetStringFUTF16(
250 confirmation_text_id, save_confirmation_link, &offset); 256 confirmation_text_id, save_confirmation_link, &offset);
251 save_confirmation_link_range_ = 257 save_confirmation_link_range_ =
252 gfx::Range(offset, offset + save_confirmation_link.length()); 258 gfx::Range(offset, offset + save_confirmation_link.length());
253 } else if (state_ == password_manager::ui::PENDING_PASSWORD_STATE) {
254 interaction_stats.origin_domain = origin_.GetOrigin();
255 interaction_stats.username_value = pending_password_.username_value;
256 password_manager::InteractionsStats* stats =
257 delegate_->GetCurrentInteractionStats();
258 if (stats) {
259 DCHECK_EQ(interaction_stats.username_value, stats->username_value);
260 DCHECK_EQ(interaction_stats.origin_domain, stats->origin_domain);
261 interaction_stats.dismissal_count = stats->dismissal_count;
262 }
263 } else if (state_ == password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
264 password_overridden_ = delegate_->IsPasswordOverridden();
265 } 259 }
266 260
267 manage_link_ =
268 l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
269
270 password_manager::metrics_util::UIDisplayDisposition display_disposition = 261 password_manager::metrics_util::UIDisplayDisposition display_disposition =
271 metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING; 262 metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING;
272 if (display_reason == USER_ACTION) { 263 if (display_reason == USER_ACTION) {
273 switch (state_) { 264 switch (state_) {
274 case password_manager::ui::PENDING_PASSWORD_STATE: 265 case password_manager::ui::PENDING_PASSWORD_STATE:
275 display_disposition = metrics_util::MANUAL_WITH_PASSWORD_PENDING; 266 display_disposition = metrics_util::MANUAL_WITH_PASSWORD_PENDING;
276 break; 267 break;
277 case password_manager::ui::PENDING_PASSWORD_UPDATE_STATE: 268 case password_manager::ui::PENDING_PASSWORD_UPDATE_STATE:
278 display_disposition = 269 display_disposition =
279 metrics_util::MANUAL_WITH_PASSWORD_PENDING_UPDATE; 270 metrics_util::MANUAL_WITH_PASSWORD_PENDING_UPDATE;
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 return metrics_util::NO_UPDATE_SUBMISSION; 501 return metrics_util::NO_UPDATE_SUBMISSION;
511 } 502 }
512 if (state_ != password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) 503 if (state_ != password_manager::ui::PENDING_PASSWORD_UPDATE_STATE)
513 return metrics_util::NO_UPDATE_SUBMISSION; 504 return metrics_util::NO_UPDATE_SUBMISSION;
514 if (password_overridden_) 505 if (password_overridden_)
515 return update_events[3][behavior]; 506 return update_events[3][behavior];
516 if (ShouldShowMultipleAccountUpdateUI()) 507 if (ShouldShowMultipleAccountUpdateUI())
517 return update_events[2][behavior]; 508 return update_events[2][behavior];
518 return update_events[1][behavior]; 509 return update_events[1][behavior];
519 } 510 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698