| 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 |