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

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

Issue 1009953002: Integrate ManagePasswordsState into ManagePasswordsUIController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: last comments Created 5 years, 9 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
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/timer/timer.h" 7 #include "base/timer/timer.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 explicit AccountChooserView(ManagePasswordsBubbleView* parent); 156 explicit AccountChooserView(ManagePasswordsBubbleView* parent);
157 ~AccountChooserView() override; 157 ~AccountChooserView() override;
158 158
159 private: 159 private:
160 // views::ButtonListener: 160 // views::ButtonListener:
161 void ButtonPressed(views::Button* sender, const ui::Event& event) override; 161 void ButtonPressed(views::Button* sender, const ui::Event& event) override;
162 162
163 // Adds |password_forms| to the layout remembering their |type|. 163 // Adds |password_forms| to the layout remembering their |type|.
164 void AddCredentialItemsWithType( 164 void AddCredentialItemsWithType(
165 views::GridLayout* layout, 165 views::GridLayout* layout,
166 const ScopedVector<autofill::PasswordForm>& password_forms, 166 const ScopedVector<const autofill::PasswordForm>& password_forms,
167 password_manager::CredentialType type); 167 password_manager::CredentialType type);
168 168
169 ManagePasswordsBubbleView* parent_; 169 ManagePasswordsBubbleView* parent_;
170 views::LabelButton* cancel_button_; 170 views::LabelButton* cancel_button_;
171 }; 171 };
172 172
173 ManagePasswordsBubbleView::AccountChooserView::AccountChooserView( 173 ManagePasswordsBubbleView::AccountChooserView::AccountChooserView(
174 ManagePasswordsBubbleView* parent) 174 ManagePasswordsBubbleView* parent)
175 : parent_(parent) { 175 : parent_(parent) {
176 views::GridLayout* layout = new views::GridLayout(this); 176 views::GridLayout* layout = new views::GridLayout(this);
177 SetLayoutManager(layout); 177 SetLayoutManager(layout);
178 178
179 cancel_button_ = 179 cancel_button_ =
180 new views::LabelButton(this, l10n_util::GetStringUTF16(IDS_CANCEL)); 180 new views::LabelButton(this, l10n_util::GetStringUTF16(IDS_CANCEL));
181 cancel_button_->SetStyle(views::Button::STYLE_BUTTON); 181 cancel_button_->SetStyle(views::Button::STYLE_BUTTON);
182 cancel_button_->SetFontList( 182 cancel_button_->SetFontList(
183 ui::ResourceBundle::GetSharedInstance().GetFontList( 183 ui::ResourceBundle::GetSharedInstance().GetFontList(
184 ui::ResourceBundle::SmallFont)); 184 ui::ResourceBundle::SmallFont));
185 185
186 // Title row. 186 // Title row.
187 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET); 187 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET);
188 AddTitleRow(layout, parent_->model()); 188 AddTitleRow(layout, parent_->model());
189 189
190 AddCredentialItemsWithType( 190 AddCredentialItemsWithType(
191 layout, parent_->model()->local_pending_credentials(), 191 layout, parent_->model()->local_credentials(),
192 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); 192 password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL);
193 193
194 AddCredentialItemsWithType( 194 AddCredentialItemsWithType(
195 layout, parent_->model()->federated_pending_credentials(), 195 layout, parent_->model()->federated_credentials(),
196 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); 196 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED);
197 197
198 // Button row. 198 // Button row.
199 BuildColumnSet(layout, SINGLE_BUTTON_COLUMN_SET); 199 BuildColumnSet(layout, SINGLE_BUTTON_COLUMN_SET);
200 layout->StartRowWithPadding( 200 layout->StartRowWithPadding(
201 0, SINGLE_BUTTON_COLUMN_SET, 0, views::kRelatedControlVerticalSpacing); 201 0, SINGLE_BUTTON_COLUMN_SET, 0, views::kRelatedControlVerticalSpacing);
202 layout->AddView(cancel_button_); 202 layout->AddView(cancel_button_);
203 203
204 // Extra padding for visual awesomeness. 204 // Extra padding for visual awesomeness.
205 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); 205 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
206 206
207 parent_->set_initially_focused_view(cancel_button_); 207 parent_->set_initially_focused_view(cancel_button_);
208 } 208 }
209 209
210 ManagePasswordsBubbleView::AccountChooserView::~AccountChooserView() { 210 ManagePasswordsBubbleView::AccountChooserView::~AccountChooserView() {
211 } 211 }
212 212
213 void ManagePasswordsBubbleView::AccountChooserView::AddCredentialItemsWithType( 213 void ManagePasswordsBubbleView::AccountChooserView::AddCredentialItemsWithType(
214 views::GridLayout* layout, 214 views::GridLayout* layout,
215 const ScopedVector<autofill::PasswordForm>& password_forms, 215 const ScopedVector<const autofill::PasswordForm>& password_forms,
216 password_manager::CredentialType type) { 216 password_manager::CredentialType type) {
217 net::URLRequestContextGetter* request_context = 217 net::URLRequestContextGetter* request_context =
218 parent_->model()->GetProfile()->GetRequestContext(); 218 parent_->model()->GetProfile()->GetRequestContext();
219 for (autofill::PasswordForm* form : password_forms) { 219 for (const autofill::PasswordForm* form : password_forms) {
220 // Add the title to the layout with appropriate padding. 220 // Add the title to the layout with appropriate padding.
221 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); 221 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET);
222 layout->AddView(new CredentialsItemView( 222 layout->AddView(new CredentialsItemView(
223 this, form, type, CredentialsItemView::ACCOUNT_CHOOSER, 223 this, form, type, CredentialsItemView::ACCOUNT_CHOOSER,
224 request_context)); 224 request_context));
225 } 225 }
226 } 226 }
227 227
228 void ManagePasswordsBubbleView::AccountChooserView::ButtonPressed( 228 void ManagePasswordsBubbleView::AccountChooserView::ButtonPressed(
229 views::Button* sender, const ui::Event& event) { 229 views::Button* sender, const ui::Event& event) {
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 layout->set_minimum_size(gfx::Size(kDesiredBubbleWidth, 0)); 504 layout->set_minimum_size(gfx::Size(kDesiredBubbleWidth, 0));
505 SetLayoutManager(layout); 505 SetLayoutManager(layout);
506 506
507 // Add the title. 507 // Add the title.
508 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET); 508 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET);
509 AddTitleRow(layout, parent_->model()); 509 AddTitleRow(layout, parent_->model());
510 510
511 // If we have a list of passwords to store for the current site, display 511 // If we have a list of passwords to store for the current site, display
512 // them to the user for management. Otherwise, render a "No passwords for 512 // them to the user for management. Otherwise, render a "No passwords for
513 // this site" message. 513 // this site" message.
514 if (!parent_->model()->best_matches().empty()) { 514 if (!parent_->model()->local_credentials().empty()) {
515 std::vector<const autofill::PasswordForm*> password_forms;
516 for (auto password_form : parent_->model()->best_matches()) {
517 password_forms.push_back(password_form.second);
518 }
519 ManagePasswordItemsView* item = new ManagePasswordItemsView( 515 ManagePasswordItemsView* item = new ManagePasswordItemsView(
520 parent_->model(), password_forms); 516 parent_->model(), parent_->model()->local_credentials().get());
521 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); 517 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET);
522 layout->AddView(item); 518 layout->AddView(item);
523 } else { 519 } else {
524 views::Label* empty_label = new views::Label( 520 views::Label* empty_label = new views::Label(
525 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_NO_PASSWORDS)); 521 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_NO_PASSWORDS));
526 empty_label->SetMultiLine(true); 522 empty_label->SetMultiLine(true);
527 empty_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); 523 empty_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
528 empty_label->SetFontList( 524 empty_label->SetFontList(
529 ui::ResourceBundle::GetSharedInstance().GetFontList( 525 ui::ResourceBundle::GetSharedInstance().GetFontList(
530 ui::ResourceBundle::SmallFont)); 526 ui::ResourceBundle::SmallFont));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 ManagePasswordsBubbleView* parent) 602 ManagePasswordsBubbleView* parent)
607 : parent_(parent) { 603 : parent_(parent) {
608 views::GridLayout* layout = new views::GridLayout(this); 604 views::GridLayout* layout = new views::GridLayout(this);
609 layout->set_minimum_size(gfx::Size(kDesiredBubbleWidth, 0)); 605 layout->set_minimum_size(gfx::Size(kDesiredBubbleWidth, 0));
610 SetLayoutManager(layout); 606 SetLayoutManager(layout);
611 607
612 // Add the title. 608 // Add the title.
613 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET); 609 BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET);
614 AddTitleRow(layout, parent_->model()); 610 AddTitleRow(layout, parent_->model());
615 611
616 if (!parent_->model()->local_pending_credentials().empty()) { 612 if (!parent_->model()->local_credentials().empty()) {
617 for (const autofill::PasswordForm* form : 613 for (const autofill::PasswordForm* form :
618 parent_->model()->local_pending_credentials()) { 614 parent_->model()->local_credentials()) {
619 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); 615 layout->StartRow(0, SINGLE_VIEW_COLUMN_SET);
620 layout->AddView(new ManageCredentialItemView(parent_->model(), form)); 616 layout->AddView(new ManageCredentialItemView(parent_->model(), form));
621 } 617 }
622 } else { 618 } else {
623 views::Label* empty_label = new views::Label( 619 views::Label* empty_label = new views::Label(
624 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_NO_PASSWORDS), 620 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_NO_PASSWORDS),
625 ui::ResourceBundle::GetSharedInstance().GetFontList( 621 ui::ResourceBundle::GetSharedInstance().GetFontList(
626 ui::ResourceBundle::SmallFont)); 622 ui::ResourceBundle::SmallFont));
627 empty_label->SetMultiLine(true); 623 empty_label->SetMultiLine(true);
628 empty_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); 624 empty_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 model()->OnNeverForThisSiteClicked(); 1006 model()->OnNeverForThisSiteClicked();
1011 Close(); 1007 Close();
1012 } 1008 }
1013 1009
1014 void ManagePasswordsBubbleView::NotifyUndoNeverForThisSite() { 1010 void ManagePasswordsBubbleView::NotifyUndoNeverForThisSite() {
1015 model()->OnUndoNeverForThisSite(); 1011 model()->OnUndoNeverForThisSite();
1016 Refresh(); 1012 Refresh();
1017 } 1013 }
1018 1014
1019 void ManagePasswordsBubbleView::NotifyNeverForThisSiteClicked() { 1015 void ManagePasswordsBubbleView::NotifyNeverForThisSiteClicked() {
1020 if (model()->best_matches().empty()) { 1016 if (model()->local_credentials().empty()) {
1021 // Skip confirmation if there are no existing passwords for this site. 1017 // Skip confirmation if there are no existing passwords for this site.
1022 NotifyConfirmedNeverForThisSite(); 1018 NotifyConfirmedNeverForThisSite();
1023 } else { 1019 } else {
1024 model()->OnConfirmationForNeverForThisSite(); 1020 model()->OnConfirmationForNeverForThisSite();
1025 Refresh(); 1021 Refresh();
1026 } 1022 }
1027 } 1023 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698