OLD | NEW |
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/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "base/timer/timer.h" | 8 #include "base/timer/timer.h" |
9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/browser/ui/browser.h" | 10 #include "chrome/browser/ui/browser.h" |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 public views::StyledLabelListener { | 228 public views::StyledLabelListener { |
229 public: | 229 public: |
230 explicit AccountChooserView(ManagePasswordsBubbleView* parent); | 230 explicit AccountChooserView(ManagePasswordsBubbleView* parent); |
231 ~AccountChooserView() override; | 231 ~AccountChooserView() override; |
232 | 232 |
233 private: | 233 private: |
234 // views::ButtonListener: | 234 // views::ButtonListener: |
235 void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 235 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
236 | 236 |
237 // views::StyledLabelListener: | 237 // views::StyledLabelListener: |
238 void StyledLabelLinkClicked(const gfx::Range& range, | 238 void StyledLabelLinkClicked(views::StyledLabel* label, |
| 239 const gfx::Range& range, |
239 int event_flags) override; | 240 int event_flags) override; |
240 | 241 |
241 // Adds |password_forms| to the layout remembering their |type|. | 242 // Adds |password_forms| to the layout remembering their |type|. |
242 void AddCredentialItemsWithType( | 243 void AddCredentialItemsWithType( |
243 views::GridLayout* layout, | 244 views::GridLayout* layout, |
244 const ScopedVector<const autofill::PasswordForm>& password_forms, | 245 const ScopedVector<const autofill::PasswordForm>& password_forms, |
245 password_manager::CredentialType type); | 246 password_manager::CredentialType type); |
246 | 247 |
247 ManagePasswordsBubbleView* parent_; | 248 ManagePasswordsBubbleView* parent_; |
248 views::LabelButton* cancel_button_; | 249 views::LabelButton* cancel_button_; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 CredentialsItemView* view = static_cast<CredentialsItemView*>(sender); | 316 CredentialsItemView* view = static_cast<CredentialsItemView*>(sender); |
316 parent_->model()->OnChooseCredentials(*view->form(), | 317 parent_->model()->OnChooseCredentials(*view->form(), |
317 view->credential_type()); | 318 view->credential_type()); |
318 } else { | 319 } else { |
319 parent_->model()->OnCancelClicked(); | 320 parent_->model()->OnCancelClicked(); |
320 } | 321 } |
321 parent_->Close(); | 322 parent_->Close(); |
322 } | 323 } |
323 | 324 |
324 void ManagePasswordsBubbleView::AccountChooserView::StyledLabelLinkClicked( | 325 void ManagePasswordsBubbleView::AccountChooserView::StyledLabelLinkClicked( |
| 326 views::StyledLabel* label, |
325 const gfx::Range& range, | 327 const gfx::Range& range, |
326 int event_flags) { | 328 int event_flags) { |
327 DCHECK_EQ(range, parent_->model()->title_brand_link_range()); | 329 DCHECK_EQ(range, parent_->model()->title_brand_link_range()); |
328 parent_->model()->OnBrandLinkClicked(); | 330 parent_->model()->OnBrandLinkClicked(); |
329 } | 331 } |
330 | 332 |
331 // ManagePasswordsBubbleView::AutoSigninView ---------------------------------- | 333 // ManagePasswordsBubbleView::AutoSigninView ---------------------------------- |
332 | 334 |
333 // A view containing just one credential that was used for for automatic signing | 335 // A view containing just one credential that was used for for automatic signing |
334 // in. | 336 // in. |
335 class ManagePasswordsBubbleView::AutoSigninView | 337 class ManagePasswordsBubbleView::AutoSigninView |
336 : public views::View, | 338 : public views::View, |
337 public views::ButtonListener, | 339 public views::ButtonListener, |
338 public views::StyledLabelListener, | 340 public views::StyledLabelListener, |
339 public views::WidgetObserver { | 341 public views::WidgetObserver { |
340 public: | 342 public: |
341 explicit AutoSigninView(ManagePasswordsBubbleView* parent); | 343 explicit AutoSigninView(ManagePasswordsBubbleView* parent); |
342 | 344 |
343 private: | 345 private: |
344 // views::ButtonListener: | 346 // views::ButtonListener: |
345 void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 347 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
346 | 348 |
347 // views::StyledLabelListener: | 349 // views::StyledLabelListener: |
348 void StyledLabelLinkClicked(const gfx::Range& range, | 350 void StyledLabelLinkClicked(views::StyledLabel* label, |
| 351 const gfx::Range& range, |
349 int event_flags) override; | 352 int event_flags) override; |
350 | 353 |
351 // views::WidgetObserver: | 354 // views::WidgetObserver: |
352 // Tracks the state of the browser window. | 355 // Tracks the state of the browser window. |
353 void OnWidgetActivationChanged(views::Widget* widget, bool active) override; | 356 void OnWidgetActivationChanged(views::Widget* widget, bool active) override; |
354 void OnWidgetClosing(views::Widget* widget) override; | 357 void OnWidgetClosing(views::Widget* widget) override; |
355 | 358 |
356 void OnTimer(); | 359 void OnTimer(); |
357 static base::TimeDelta GetTimeout() { | 360 static base::TimeDelta GetTimeout() { |
358 return base::TimeDelta::FromSeconds( | 361 return base::TimeDelta::FromSeconds( |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 } | 438 } |
436 | 439 |
437 void ManagePasswordsBubbleView::AutoSigninView::ButtonPressed( | 440 void ManagePasswordsBubbleView::AutoSigninView::ButtonPressed( |
438 views::Button* sender, const ui::Event& event) { | 441 views::Button* sender, const ui::Event& event) { |
439 DCHECK_EQ(ok_button_, sender); | 442 DCHECK_EQ(ok_button_, sender); |
440 parent_->model()->OnAutoSignOKClicked(); | 443 parent_->model()->OnAutoSignOKClicked(); |
441 parent_->Close(); | 444 parent_->Close(); |
442 } | 445 } |
443 | 446 |
444 void ManagePasswordsBubbleView::AutoSigninView::StyledLabelLinkClicked( | 447 void ManagePasswordsBubbleView::AutoSigninView::StyledLabelLinkClicked( |
445 const gfx::Range& range, int event_flags) { | 448 views::StyledLabel* label, |
| 449 const gfx::Range& range, |
| 450 int event_flags) { |
446 DCHECK_EQ(range, parent_->model()->autosignin_welcome_link_range()); | 451 DCHECK_EQ(range, parent_->model()->autosignin_welcome_link_range()); |
447 parent_->model()->OnBrandLinkClicked(); | 452 parent_->model()->OnBrandLinkClicked(); |
448 } | 453 } |
449 | 454 |
450 void ManagePasswordsBubbleView::AutoSigninView::OnWidgetActivationChanged( | 455 void ManagePasswordsBubbleView::AutoSigninView::OnWidgetActivationChanged( |
451 views::Widget* widget, bool active) { | 456 views::Widget* widget, bool active) { |
452 if (active && !timer_.IsRunning()) | 457 if (active && !timer_.IsRunning()) |
453 timer_.Start(FROM_HERE, GetTimeout(), this, &AutoSigninView::OnTimer); | 458 timer_.Start(FROM_HERE, GetTimeout(), this, &AutoSigninView::OnTimer); |
454 } | 459 } |
455 | 460 |
(...skipping 18 matching lines...) Expand all Loading... |
474 public views::StyledLabelListener { | 479 public views::StyledLabelListener { |
475 public: | 480 public: |
476 explicit PendingView(ManagePasswordsBubbleView* parent); | 481 explicit PendingView(ManagePasswordsBubbleView* parent); |
477 ~PendingView() override; | 482 ~PendingView() override; |
478 | 483 |
479 private: | 484 private: |
480 // views::ButtonListener: | 485 // views::ButtonListener: |
481 void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 486 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
482 | 487 |
483 // views::StyledLabelListener: | 488 // views::StyledLabelListener: |
484 void StyledLabelLinkClicked(const gfx::Range& range, | 489 void StyledLabelLinkClicked(views::StyledLabel* label, |
| 490 const gfx::Range& range, |
485 int event_flags) override; | 491 int event_flags) override; |
486 | 492 |
487 ManagePasswordsBubbleView* parent_; | 493 ManagePasswordsBubbleView* parent_; |
488 | 494 |
489 views::BlueButton* save_button_; | 495 views::BlueButton* save_button_; |
490 views::LabelButton* never_button_; | 496 views::LabelButton* never_button_; |
491 | 497 |
492 DISALLOW_COPY_AND_ASSIGN(PendingView); | 498 DISALLOW_COPY_AND_ASSIGN(PendingView); |
493 }; | 499 }; |
494 | 500 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 parent_->model()->OnSaveClicked(); | 566 parent_->model()->OnSaveClicked(); |
561 else if (sender == never_button_) | 567 else if (sender == never_button_) |
562 parent_->model()->OnNeverForThisSiteClicked(); | 568 parent_->model()->OnNeverForThisSiteClicked(); |
563 else | 569 else |
564 NOTREACHED(); | 570 NOTREACHED(); |
565 | 571 |
566 parent_->Close(); | 572 parent_->Close(); |
567 } | 573 } |
568 | 574 |
569 void ManagePasswordsBubbleView::PendingView::StyledLabelLinkClicked( | 575 void ManagePasswordsBubbleView::PendingView::StyledLabelLinkClicked( |
| 576 views::StyledLabel* label, |
570 const gfx::Range& range, | 577 const gfx::Range& range, |
571 int event_flags) { | 578 int event_flags) { |
572 DCHECK_EQ(range, parent_->model()->title_brand_link_range()); | 579 DCHECK_EQ(range, parent_->model()->title_brand_link_range()); |
573 parent_->model()->OnBrandLinkClicked(); | 580 parent_->model()->OnBrandLinkClicked(); |
574 } | 581 } |
575 | 582 |
576 // ManagePasswordsBubbleView::ManageView -------------------------------------- | 583 // ManagePasswordsBubbleView::ManageView -------------------------------------- |
577 | 584 |
578 // A view offering the user a list of her currently saved credentials | 585 // A view offering the user a list of her currently saved credentials |
579 // for the current page, along with a "Manage passwords" link and a | 586 // for the current page, along with a "Manage passwords" link and a |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 public views::StyledLabelListener { | 689 public views::StyledLabelListener { |
683 public: | 690 public: |
684 explicit SaveConfirmationView(ManagePasswordsBubbleView* parent); | 691 explicit SaveConfirmationView(ManagePasswordsBubbleView* parent); |
685 ~SaveConfirmationView() override; | 692 ~SaveConfirmationView() override; |
686 | 693 |
687 private: | 694 private: |
688 // views::ButtonListener: | 695 // views::ButtonListener: |
689 void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 696 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
690 | 697 |
691 // views::StyledLabelListener implementation | 698 // views::StyledLabelListener implementation |
692 void StyledLabelLinkClicked(const gfx::Range& range, | 699 void StyledLabelLinkClicked(views::StyledLabel* label, |
| 700 const gfx::Range& range, |
693 int event_flags) override; | 701 int event_flags) override; |
694 | 702 |
695 ManagePasswordsBubbleView* parent_; | 703 ManagePasswordsBubbleView* parent_; |
696 views::LabelButton* ok_button_; | 704 views::LabelButton* ok_button_; |
697 | 705 |
698 DISALLOW_COPY_AND_ASSIGN(SaveConfirmationView); | 706 DISALLOW_COPY_AND_ASSIGN(SaveConfirmationView); |
699 }; | 707 }; |
700 | 708 |
701 ManagePasswordsBubbleView::SaveConfirmationView::SaveConfirmationView( | 709 ManagePasswordsBubbleView::SaveConfirmationView::SaveConfirmationView( |
702 ManagePasswordsBubbleView* parent) | 710 ManagePasswordsBubbleView* parent) |
(...skipping 24 matching lines...) Expand all Loading... |
727 0, SINGLE_BUTTON_COLUMN_SET, 0, views::kRelatedControlVerticalSpacing); | 735 0, SINGLE_BUTTON_COLUMN_SET, 0, views::kRelatedControlVerticalSpacing); |
728 layout->AddView(ok_button_); | 736 layout->AddView(ok_button_); |
729 | 737 |
730 parent_->set_initially_focused_view(ok_button_); | 738 parent_->set_initially_focused_view(ok_button_); |
731 } | 739 } |
732 | 740 |
733 ManagePasswordsBubbleView::SaveConfirmationView::~SaveConfirmationView() { | 741 ManagePasswordsBubbleView::SaveConfirmationView::~SaveConfirmationView() { |
734 } | 742 } |
735 | 743 |
736 void ManagePasswordsBubbleView::SaveConfirmationView::StyledLabelLinkClicked( | 744 void ManagePasswordsBubbleView::SaveConfirmationView::StyledLabelLinkClicked( |
737 const gfx::Range& range, int event_flags) { | 745 views::StyledLabel* label, |
| 746 const gfx::Range& range, |
| 747 int event_flags) { |
738 DCHECK_EQ(range, parent_->model()->save_confirmation_link_range()); | 748 DCHECK_EQ(range, parent_->model()->save_confirmation_link_range()); |
739 parent_->model()->OnManageLinkClicked(); | 749 parent_->model()->OnManageLinkClicked(); |
740 parent_->Close(); | 750 parent_->Close(); |
741 } | 751 } |
742 | 752 |
743 void ManagePasswordsBubbleView::SaveConfirmationView::ButtonPressed( | 753 void ManagePasswordsBubbleView::SaveConfirmationView::ButtonPressed( |
744 views::Button* sender, const ui::Event& event) { | 754 views::Button* sender, const ui::Event& event) { |
745 DCHECK_EQ(sender, ok_button_); | 755 DCHECK_EQ(sender, ok_button_); |
746 parent_->model()->OnOKClicked(); | 756 parent_->model()->OnOKClicked(); |
747 parent_->Close(); | 757 parent_->Close(); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
809 public views::StyledLabelListener { | 819 public views::StyledLabelListener { |
810 public: | 820 public: |
811 explicit UpdatePendingView(ManagePasswordsBubbleView* parent); | 821 explicit UpdatePendingView(ManagePasswordsBubbleView* parent); |
812 ~UpdatePendingView() override; | 822 ~UpdatePendingView() override; |
813 | 823 |
814 private: | 824 private: |
815 // views::ButtonListener: | 825 // views::ButtonListener: |
816 void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 826 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
817 | 827 |
818 // views::StyledLabelListener: | 828 // views::StyledLabelListener: |
819 void StyledLabelLinkClicked(const gfx::Range& range, | 829 void StyledLabelLinkClicked(views::StyledLabel* label, |
| 830 const gfx::Range& range, |
820 int event_flags) override; | 831 int event_flags) override; |
821 | 832 |
822 ManagePasswordsBubbleView* parent_; | 833 ManagePasswordsBubbleView* parent_; |
823 | 834 |
824 CredentialsSelectionView* selection_view_; | 835 CredentialsSelectionView* selection_view_; |
825 | 836 |
826 views::BlueButton* update_button_; | 837 views::BlueButton* update_button_; |
827 | 838 |
828 views::LabelButton* nope_button_; | 839 views::LabelButton* nope_button_; |
829 | 840 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 } else { | 902 } else { |
892 parent_->model()->OnUpdateClicked(parent_->model()->pending_password()); | 903 parent_->model()->OnUpdateClicked(parent_->model()->pending_password()); |
893 } | 904 } |
894 } else { | 905 } else { |
895 parent_->model()->OnNopeUpdateClicked(); | 906 parent_->model()->OnNopeUpdateClicked(); |
896 } | 907 } |
897 parent_->Close(); | 908 parent_->Close(); |
898 } | 909 } |
899 | 910 |
900 void ManagePasswordsBubbleView::UpdatePendingView::StyledLabelLinkClicked( | 911 void ManagePasswordsBubbleView::UpdatePendingView::StyledLabelLinkClicked( |
| 912 views::StyledLabel* label, |
901 const gfx::Range& range, | 913 const gfx::Range& range, |
902 int event_flags) { | 914 int event_flags) { |
903 DCHECK_EQ(range, parent_->model()->title_brand_link_range()); | 915 DCHECK_EQ(range, parent_->model()->title_brand_link_range()); |
904 parent_->model()->OnBrandLinkClicked(); | 916 parent_->model()->OnBrandLinkClicked(); |
905 } | 917 } |
906 | 918 |
907 // ManagePasswordsBubbleView -------------------------------------------------- | 919 // ManagePasswordsBubbleView -------------------------------------------------- |
908 | 920 |
909 // static | 921 // static |
910 ManagePasswordsBubbleView* ManagePasswordsBubbleView::manage_passwords_bubble_ = | 922 ManagePasswordsBubbleView* ManagePasswordsBubbleView::manage_passwords_bubble_ = |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1017 AddChildView(new SaveConfirmationView(this)); | 1029 AddChildView(new SaveConfirmationView(this)); |
1018 } else if (model_.state() == password_manager::ui::CREDENTIAL_REQUEST_STATE) { | 1030 } else if (model_.state() == password_manager::ui::CREDENTIAL_REQUEST_STATE) { |
1019 AddChildView(new AccountChooserView(this)); | 1031 AddChildView(new AccountChooserView(this)); |
1020 } else if (model_.state() == password_manager::ui::AUTO_SIGNIN_STATE) { | 1032 } else if (model_.state() == password_manager::ui::AUTO_SIGNIN_STATE) { |
1021 AddChildView(new AutoSigninView(this)); | 1033 AddChildView(new AutoSigninView(this)); |
1022 } else { | 1034 } else { |
1023 AddChildView(new ManageView(this)); | 1035 AddChildView(new ManageView(this)); |
1024 } | 1036 } |
1025 GetLayoutManager()->Layout(this); | 1037 GetLayoutManager()->Layout(this); |
1026 } | 1038 } |
OLD | NEW |