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

Side by Side Diff: chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc

Issue 228593002: Password bubble: Keep the bubble in sync with the password store. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: vabr's feedback. Created 6 years, 8 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 | Annotate | Revision Log
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/views/passwords/manage_passwords_bubble_view.h" 5 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/ui/browser.h" 9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_finder.h" 10 #include "chrome/browser/ui/browser_finder.h"
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 layout->AddView(refuse_combobox_); 313 layout->AddView(refuse_combobox_);
314 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); 314 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
315 } else { 315 } else {
316 // If we have a list of passwords to store for the current site, display 316 // If we have a list of passwords to store for the current site, display
317 // them to the user for management. Otherwise, render a "No passwords for 317 // them to the user for management. Otherwise, render a "No passwords for
318 // this site" message. 318 // this site" message.
319 // 319 //
320 // TODO(mkwst): Do we really want the "No passwords" case? It would probably 320 // TODO(mkwst): Do we really want the "No passwords" case? It would probably
321 // be better to only clear the pending password upon navigation, rather than 321 // be better to only clear the pending password upon navigation, rather than
322 // as soon as the bubble closes. 322 // as soon as the bubble closes.
323 int num_items_displayed = 0;
324 if (!manage_passwords_bubble_model_->best_matches().empty()) { 323 if (!manage_passwords_bubble_model_->best_matches().empty()) {
325 for (autofill::PasswordFormMap::const_iterator i( 324 for (autofill::PasswordFormMap::const_iterator i(
326 manage_passwords_bubble_model_->best_matches().begin()); 325 manage_passwords_bubble_model_->best_matches().begin());
327 i != manage_passwords_bubble_model_->best_matches().end(); ++i) { 326 i != manage_passwords_bubble_model_->best_matches().end(); ++i) {
328 ManagePasswordItemView* item = new ManagePasswordItemView( 327 ManagePasswordItemView* item = new ManagePasswordItemView(
329 manage_passwords_bubble_model_, 328 manage_passwords_bubble_model_,
330 *i->second, 329 *i->second,
331 first_field_width, 330 first_field_width,
332 second_field_width, 331 second_field_width,
333 num_items_displayed == 0 ? ManagePasswordItemView::FIRST_ITEM 332 i == manage_passwords_bubble_model_->best_matches().begin()
334 : ManagePasswordItemView::SUBSEQUENT_ITEM); 333 ? ManagePasswordItemView::FIRST_ITEM
334 : ManagePasswordItemView::SUBSEQUENT_ITEM);
335 335
336 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); 336 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET);
337 layout->AddView(item); 337 layout->AddView(item);
338 num_items_displayed++;
339 } 338 }
340 } else if (!manage_passwords_bubble_model_->password_submitted()) { 339 } else {
341 views::Label* empty_label = new views::Label( 340 views::Label* empty_label = new views::Label(
342 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_NO_PASSWORDS)); 341 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_NO_PASSWORDS));
343 empty_label->SetMultiLine(true); 342 empty_label->SetMultiLine(true);
344 343
345 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); 344 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET);
346 layout->AddView(empty_label); 345 layout->AddView(empty_label);
347 } 346 }
348 347
349 // If the user just saved a password, it won't be in the 'best matches' list
350 // we just walked through. Display it explicitly.
351 if (manage_passwords_bubble_model_->password_submitted()) {
352 ManagePasswordItemView* item = new ManagePasswordItemView(
353 manage_passwords_bubble_model_,
354 manage_passwords_bubble_model_->pending_credentials(),
355 first_field_width,
356 second_field_width,
357 num_items_displayed ? ManagePasswordItemView::FIRST_ITEM
358 : ManagePasswordItemView::SUBSEQUENT_ITEM);
359
360 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET);
361 layout->AddView(item);
362 num_items_displayed++;
363 }
364
365 // Build a "manage" link and "done" button, and throw them both into a new 348 // Build a "manage" link and "done" button, and throw them both into a new
366 // row 349 // row
367 // containing a double-view columnset. 350 // containing a double-view columnset.
368 manage_link_ = 351 manage_link_ =
369 new views::Link(manage_passwords_bubble_model_->manage_link()); 352 new views::Link(manage_passwords_bubble_model_->manage_link());
370 manage_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT); 353 manage_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
371 manage_link_->SetUnderline(false); 354 manage_link_->SetUnderline(false);
372 manage_link_->set_listener(this); 355 manage_link_->set_listener(this);
373 356
374 done_button_ = 357 done_button_ =
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 case SavePasswordRefusalComboboxModel::INDEX_NEVER_FOR_THIS_SITE: 404 case SavePasswordRefusalComboboxModel::INDEX_NEVER_FOR_THIS_SITE:
422 manage_passwords_bubble_model_->OnNeverForThisSiteClicked(); 405 manage_passwords_bubble_model_->OnNeverForThisSiteClicked();
423 reason = CLICKED_NEVER; 406 reason = CLICKED_NEVER;
424 break; 407 break;
425 default: 408 default:
426 NOTREACHED(); 409 NOTREACHED();
427 break; 410 break;
428 } 411 }
429 Close(reason); 412 Close(reason);
430 } 413 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698