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