OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/profiles/profile_chooser_view.h" | 5 #include "chrome/browser/ui/views/profiles/profile_chooser_view.h" |
6 | 6 |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
10 #include "chrome/browser/lifetime/application_lifetime.h" | 10 #include "chrome/browser/lifetime/application_lifetime.h" |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 }; | 406 }; |
407 | 407 |
408 // ProfileChooserView --------------------------------------------------------- | 408 // ProfileChooserView --------------------------------------------------------- |
409 | 409 |
410 // static | 410 // static |
411 ProfileChooserView* ProfileChooserView::profile_bubble_ = NULL; | 411 ProfileChooserView* ProfileChooserView::profile_bubble_ = NULL; |
412 bool ProfileChooserView::close_on_deactivate_for_testing_ = true; | 412 bool ProfileChooserView::close_on_deactivate_for_testing_ = true; |
413 | 413 |
414 // static | 414 // static |
415 void ProfileChooserView::ShowBubble( | 415 void ProfileChooserView::ShowBubble( |
416 BubbleViewMode view_mode, | 416 profiles::BubbleViewMode view_mode, |
417 views::View* anchor_view, | 417 views::View* anchor_view, |
418 views::BubbleBorder::Arrow arrow, | 418 views::BubbleBorder::Arrow arrow, |
419 views::BubbleBorder::BubbleAlignment border_alignment, | 419 views::BubbleBorder::BubbleAlignment border_alignment, |
420 const gfx::Rect& anchor_rect, | 420 const gfx::Rect& anchor_rect, |
421 Browser* browser) { | 421 Browser* browser) { |
422 if (IsShowing()) | 422 if (IsShowing()) |
423 return; | 423 return; |
424 | 424 |
425 profile_bubble_ = new ProfileChooserView(anchor_view, arrow, anchor_rect, | 425 profile_bubble_ = new ProfileChooserView(anchor_view, arrow, anchor_rect, |
426 browser, view_mode); | 426 browser, view_mode); |
(...skipping 12 matching lines...) Expand all Loading... |
439 // static | 439 // static |
440 void ProfileChooserView::Hide() { | 440 void ProfileChooserView::Hide() { |
441 if (IsShowing()) | 441 if (IsShowing()) |
442 profile_bubble_->GetWidget()->Close(); | 442 profile_bubble_->GetWidget()->Close(); |
443 } | 443 } |
444 | 444 |
445 ProfileChooserView::ProfileChooserView(views::View* anchor_view, | 445 ProfileChooserView::ProfileChooserView(views::View* anchor_view, |
446 views::BubbleBorder::Arrow arrow, | 446 views::BubbleBorder::Arrow arrow, |
447 const gfx::Rect& anchor_rect, | 447 const gfx::Rect& anchor_rect, |
448 Browser* browser, | 448 Browser* browser, |
449 BubbleViewMode view_mode) | 449 profiles::BubbleViewMode view_mode) |
450 : BubbleDelegateView(anchor_view, arrow), | 450 : BubbleDelegateView(anchor_view, arrow), |
451 browser_(browser), | 451 browser_(browser), |
452 view_mode_(view_mode), | 452 view_mode_(view_mode), |
453 tutorial_mode_(TUTORIAL_MODE_NONE) { | 453 tutorial_mode_(profiles::TUTORIAL_MODE_NONE) { |
454 // Reset the default margins inherited from the BubbleDelegateView. | 454 // Reset the default margins inherited from the BubbleDelegateView. |
455 set_margins(gfx::Insets()); | 455 set_margins(gfx::Insets()); |
456 | 456 |
457 ResetView(); | 457 ResetView(); |
458 | 458 |
459 avatar_menu_.reset(new AvatarMenu( | 459 avatar_menu_.reset(new AvatarMenu( |
460 &g_browser_process->profile_manager()->GetProfileInfoCache(), | 460 &g_browser_process->profile_manager()->GetProfileInfoCache(), |
461 this, | 461 this, |
462 browser_)); | 462 browser_)); |
463 avatar_menu_->RebuildMenu(); | 463 avatar_menu_->RebuildMenu(); |
(...skipping 26 matching lines...) Expand all Loading... |
490 tutorial_end_preview_link_ = NULL; | 490 tutorial_end_preview_link_ = NULL; |
491 tutorial_send_feedback_button_ = NULL; | 491 tutorial_send_feedback_button_ = NULL; |
492 end_preview_and_relaunch_button_ = NULL; | 492 end_preview_and_relaunch_button_ = NULL; |
493 end_preview_cancel_button_ = NULL; | 493 end_preview_cancel_button_ = NULL; |
494 remove_account_button_ = NULL; | 494 remove_account_button_ = NULL; |
495 account_removal_cancel_button_ = NULL; | 495 account_removal_cancel_button_ = NULL; |
496 gaia_signin_cancel_button_ = NULL; | 496 gaia_signin_cancel_button_ = NULL; |
497 open_other_profile_indexes_map_.clear(); | 497 open_other_profile_indexes_map_.clear(); |
498 delete_account_button_map_.clear(); | 498 delete_account_button_map_.clear(); |
499 reauth_account_button_map_.clear(); | 499 reauth_account_button_map_.clear(); |
500 tutorial_mode_ = TUTORIAL_MODE_NONE; | 500 tutorial_mode_ = profiles::TUTORIAL_MODE_NONE; |
501 } | 501 } |
502 | 502 |
503 void ProfileChooserView::Init() { | 503 void ProfileChooserView::Init() { |
504 // If view mode is PROFILE_CHOOSER but there is an auth error, force | 504 // If view mode is PROFILE_CHOOSER but there is an auth error, force |
505 // ACCOUNT_MANAGEMENT mode. | 505 // ACCOUNT_MANAGEMENT mode. |
506 if (view_mode_ == BUBBLE_VIEW_MODE_PROFILE_CHOOSER && | 506 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER && |
507 HasAuthError(browser_->profile())) { | 507 HasAuthError(browser_->profile())) { |
508 view_mode_ = BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT; | 508 view_mode_ = profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT; |
509 } | 509 } |
510 | 510 |
511 ShowView(view_mode_, avatar_menu_.get()); | 511 ShowView(view_mode_, avatar_menu_.get()); |
512 } | 512 } |
513 | 513 |
514 void ProfileChooserView::OnAvatarMenuChanged( | 514 void ProfileChooserView::OnAvatarMenuChanged( |
515 AvatarMenu* avatar_menu) { | 515 AvatarMenu* avatar_menu) { |
516 // Refresh the view with the new menu. We can't just update the local copy | 516 // Refresh the view with the new menu. We can't just update the local copy |
517 // as this may have been triggered by a sign out action, in which case | 517 // as this may have been triggered by a sign out action, in which case |
518 // the view is being destroyed. | 518 // the view is being destroyed. |
519 ShowView(BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu); | 519 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu); |
520 } | 520 } |
521 | 521 |
522 void ProfileChooserView::OnRefreshTokenAvailable( | 522 void ProfileChooserView::OnRefreshTokenAvailable( |
523 const std::string& account_id) { | 523 const std::string& account_id) { |
524 // Refresh the account management view when a new account is added to the | 524 // Refresh the account management view when a new account is added to the |
525 // profile. | 525 // profile. |
526 if (view_mode_ == BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT || | 526 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT || |
527 view_mode_ == BUBBLE_VIEW_MODE_GAIA_SIGNIN || | 527 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN || |
528 view_mode_ == BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || | 528 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || |
529 view_mode_ == BUBBLE_VIEW_MODE_GAIA_REAUTH) { | 529 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) { |
530 ShowView(BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); | 530 ShowView(profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); |
531 } | 531 } |
532 } | 532 } |
533 | 533 |
534 void ProfileChooserView::OnRefreshTokenRevoked(const std::string& account_id) { | 534 void ProfileChooserView::OnRefreshTokenRevoked(const std::string& account_id) { |
535 // Refresh the account management view when an account is removed from the | 535 // Refresh the account management view when an account is removed from the |
536 // profile. | 536 // profile. |
537 if (view_mode_ == BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT) | 537 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT) |
538 ShowView(BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); | 538 ShowView(profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); |
539 } | 539 } |
540 | 540 |
541 void ProfileChooserView::ShowView(BubbleViewMode view_to_display, | 541 void ProfileChooserView::ShowView(profiles::BubbleViewMode view_to_display, |
542 AvatarMenu* avatar_menu) { | 542 AvatarMenu* avatar_menu) { |
543 // The account management view should only be displayed if the active profile | 543 // The account management view should only be displayed if the active profile |
544 // is signed in. | 544 // is signed in. |
545 if (view_to_display == BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT) { | 545 if (view_to_display == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT) { |
546 const AvatarMenu::Item& active_item = avatar_menu->GetItemAt( | 546 const AvatarMenu::Item& active_item = avatar_menu->GetItemAt( |
547 avatar_menu->GetActiveProfileIndex()); | 547 avatar_menu->GetActiveProfileIndex()); |
548 DCHECK(active_item.signed_in); | 548 DCHECK(active_item.signed_in); |
549 } | 549 } |
550 | 550 |
551 // Records the last tutorial mode. | 551 // Records the last tutorial mode. |
552 TutorialMode last_tutorial_mode = tutorial_mode_; | 552 profiles::TutorialMode last_tutorial_mode = tutorial_mode_; |
553 ResetView(); | 553 ResetView(); |
554 RemoveAllChildViews(true); | 554 RemoveAllChildViews(true); |
555 view_mode_ = view_to_display; | 555 view_mode_ = view_to_display; |
556 | 556 |
557 views::GridLayout* layout; | 557 views::GridLayout* layout; |
558 views::View* sub_view; | 558 views::View* sub_view; |
559 switch (view_mode_) { | 559 switch (view_mode_) { |
560 case BUBBLE_VIEW_MODE_GAIA_SIGNIN: | 560 case profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN: |
561 case BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT: | 561 case profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT: |
562 case BUBBLE_VIEW_MODE_GAIA_REAUTH: | 562 case profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH: |
563 layout = CreateSingleColumnLayout(this, kFixedGaiaViewWidth); | 563 layout = CreateSingleColumnLayout(this, kFixedGaiaViewWidth); |
564 sub_view = CreateGaiaSigninView(); | 564 sub_view = CreateGaiaSigninView(); |
565 break; | 565 break; |
566 case BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL: | 566 case profiles::BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL: |
567 layout = CreateSingleColumnLayout(this, kFixedAccountRemovalViewWidth); | 567 layout = CreateSingleColumnLayout(this, kFixedAccountRemovalViewWidth); |
568 sub_view = CreateAccountRemovalView(); | 568 sub_view = CreateAccountRemovalView(); |
569 break; | 569 break; |
570 case BUBBLE_VIEW_MODE_END_PREVIEW: | 570 case profiles::BUBBLE_VIEW_MODE_END_PREVIEW: |
571 layout = CreateSingleColumnLayout(this, kFixedEndPreviewViewWidth); | 571 layout = CreateSingleColumnLayout(this, kFixedEndPreviewViewWidth); |
572 sub_view = CreateEndPreviewView(); | 572 sub_view = CreateEndPreviewView(); |
573 break; | 573 break; |
574 default: | 574 default: |
575 layout = CreateSingleColumnLayout(this, kFixedMenuWidth); | 575 layout = CreateSingleColumnLayout(this, kFixedMenuWidth); |
576 sub_view = CreateProfileChooserView(avatar_menu, last_tutorial_mode); | 576 sub_view = CreateProfileChooserView(avatar_menu, last_tutorial_mode); |
577 } | 577 } |
578 sub_view->set_background(views::Background::CreateSolidBackground( | 578 sub_view->set_background(views::Background::CreateSolidBackground( |
579 GetNativeTheme()->GetSystemColor( | 579 GetNativeTheme()->GetSystemColor( |
580 ui::NativeTheme::kColorId_DialogBackground))); | 580 ui::NativeTheme::kColorId_DialogBackground))); |
(...skipping 28 matching lines...) Expand all Loading... |
609 } else if (sender == tutorial_ok_button_) { | 609 } else if (sender == tutorial_ok_button_) { |
610 // If the user manually dismissed the tutorial, never show it again by | 610 // If the user manually dismissed the tutorial, never show it again by |
611 // setting the number of times shown to the maximum plus 1, so that later we | 611 // setting the number of times shown to the maximum plus 1, so that later we |
612 // could distinguish between the dismiss case and the case when the tutorial | 612 // could distinguish between the dismiss case and the case when the tutorial |
613 // is indeed shown for the maximum number of times. | 613 // is indeed shown for the maximum number of times. |
614 browser_->profile()->GetPrefs()->SetInteger( | 614 browser_->profile()->GetPrefs()->SetInteger( |
615 prefs::kProfileAvatarTutorialShown, kProfileAvatarTutorialShowMax + 1); | 615 prefs::kProfileAvatarTutorialShown, kProfileAvatarTutorialShowMax + 1); |
616 | 616 |
617 ProfileMetrics::LogProfileUpgradeEnrollment( | 617 ProfileMetrics::LogProfileUpgradeEnrollment( |
618 ProfileMetrics::PROFILE_ENROLLMENT_CLOSE_WELCOME_CARD); | 618 ProfileMetrics::PROFILE_ENROLLMENT_CLOSE_WELCOME_CARD); |
619 ShowView(BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); | 619 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
620 } else if (sender == tutorial_enable_new_profile_management_button_) { | 620 } else if (sender == tutorial_enable_new_profile_management_button_) { |
621 ProfileMetrics::LogProfileUpgradeEnrollment( | 621 ProfileMetrics::LogProfileUpgradeEnrollment( |
622 ProfileMetrics::PROFILE_ENROLLMENT_ACCEPT_NEW_PROFILE_MGMT); | 622 ProfileMetrics::PROFILE_ENROLLMENT_ACCEPT_NEW_PROFILE_MGMT); |
623 profiles::EnableNewProfileManagementPreview(); | 623 profiles::EnableNewProfileManagementPreview(); |
624 } else if (sender == remove_account_button_) { | 624 } else if (sender == remove_account_button_) { |
625 RemoveAccount(); | 625 RemoveAccount(); |
626 } else if (sender == account_removal_cancel_button_) { | 626 } else if (sender == account_removal_cancel_button_) { |
627 account_id_to_remove_.clear(); | 627 account_id_to_remove_.clear(); |
628 ShowView(BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); | 628 ShowView(profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); |
629 } else if (sender == gaia_signin_cancel_button_) { | 629 } else if (sender == gaia_signin_cancel_button_) { |
630 std::string primary_account = | 630 std::string primary_account = |
631 SigninManagerFactory::GetForProfile(browser_->profile())-> | 631 SigninManagerFactory::GetForProfile(browser_->profile())-> |
632 GetAuthenticatedUsername(); | 632 GetAuthenticatedUsername(); |
633 ShowView(primary_account.empty() ? BUBBLE_VIEW_MODE_PROFILE_CHOOSER : | 633 ShowView(primary_account.empty() ? |
634 BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, | 634 profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER : |
| 635 profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, |
635 avatar_menu_.get()); | 636 avatar_menu_.get()); |
636 } else if (sender == question_mark_button_) { | 637 } else if (sender == question_mark_button_) { |
637 tutorial_mode_ = TUTORIAL_MODE_SEND_FEEDBACK; | 638 tutorial_mode_ = profiles::TUTORIAL_MODE_SEND_FEEDBACK; |
638 ShowView(BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); | 639 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
639 } else if (sender == tutorial_send_feedback_button_) { | 640 } else if (sender == tutorial_send_feedback_button_) { |
640 ProfileMetrics::LogProfileUpgradeEnrollment( | 641 ProfileMetrics::LogProfileUpgradeEnrollment( |
641 ProfileMetrics::PROFILE_ENROLLMENT_SEND_FEEDBACK); | 642 ProfileMetrics::PROFILE_ENROLLMENT_SEND_FEEDBACK); |
642 chrome::OpenFeedbackDialog(browser_); | 643 chrome::OpenFeedbackDialog(browser_); |
643 } else if (sender == end_preview_and_relaunch_button_) { | 644 } else if (sender == end_preview_and_relaunch_button_) { |
644 ProfileMetrics::LogProfileUpgradeEnrollment( | 645 ProfileMetrics::LogProfileUpgradeEnrollment( |
645 ProfileMetrics::PROFILE_ENROLLMENT_DISABLE_NEW_PROFILE_MGMT); | 646 ProfileMetrics::PROFILE_ENROLLMENT_DISABLE_NEW_PROFILE_MGMT); |
646 profiles::DisableNewProfileManagementPreview(); | 647 profiles::DisableNewProfileManagementPreview(); |
647 } else if (sender == end_preview_cancel_button_) { | 648 } else if (sender == end_preview_cancel_button_) { |
648 tutorial_mode_ = TUTORIAL_MODE_SEND_FEEDBACK; | 649 tutorial_mode_ = profiles::TUTORIAL_MODE_SEND_FEEDBACK; |
649 ShowView(BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); | 650 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
650 } else if (current_profile_photo_ && | 651 } else if (current_profile_photo_ && |
651 sender == current_profile_photo_->change_photo_button()) { | 652 sender == current_profile_photo_->change_photo_button()) { |
652 avatar_menu_->EditProfile(avatar_menu_->GetActiveProfileIndex()); | 653 avatar_menu_->EditProfile(avatar_menu_->GetActiveProfileIndex()); |
653 } else if (sender == signin_current_profile_link_) { | 654 } else if (sender == signin_current_profile_link_) { |
654 // Only show the inline signin if the new UI flag is flipped. Otherwise, | 655 // Only show the inline signin if the new UI flag is flipped. Otherwise, |
655 // use the tab signin page. | 656 // use the tab signin page. |
656 if (switches::IsNewProfileManagement()) | 657 if (switches::IsNewProfileManagement()) |
657 ShowView(BUBBLE_VIEW_MODE_GAIA_SIGNIN, avatar_menu_.get()); | 658 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN, avatar_menu_.get()); |
658 else | 659 else |
659 chrome::ShowBrowserSignin(browser_, signin::SOURCE_MENU); | 660 chrome::ShowBrowserSignin(browser_, signin::SOURCE_MENU); |
660 } else { | 661 } else { |
661 // Either one of the "other profiles", or one of the profile accounts | 662 // Either one of the "other profiles", or one of the profile accounts |
662 // buttons was pressed. | 663 // buttons was pressed. |
663 ButtonIndexes::const_iterator profile_match = | 664 ButtonIndexes::const_iterator profile_match = |
664 open_other_profile_indexes_map_.find(sender); | 665 open_other_profile_indexes_map_.find(sender); |
665 if (profile_match != open_other_profile_indexes_map_.end()) { | 666 if (profile_match != open_other_profile_indexes_map_.end()) { |
666 avatar_menu_->SwitchToProfile( | 667 avatar_menu_->SwitchToProfile( |
667 profile_match->second, | 668 profile_match->second, |
668 ui::DispositionFromEventFlags(event.flags()) == NEW_WINDOW, | 669 ui::DispositionFromEventFlags(event.flags()) == NEW_WINDOW, |
669 ProfileMetrics::SWITCH_PROFILE_ICON); | 670 ProfileMetrics::SWITCH_PROFILE_ICON); |
670 } else { | 671 } else { |
671 // This was a profile accounts button. | 672 // This was a profile accounts button. |
672 AccountButtonIndexes::const_iterator account_match = | 673 AccountButtonIndexes::const_iterator account_match = |
673 delete_account_button_map_.find(sender); | 674 delete_account_button_map_.find(sender); |
674 if (account_match != delete_account_button_map_.end()) { | 675 if (account_match != delete_account_button_map_.end()) { |
675 account_id_to_remove_ = account_match->second; | 676 account_id_to_remove_ = account_match->second; |
676 ShowView(BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL, avatar_menu_.get()); | 677 ShowView(profiles::BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL, |
| 678 avatar_menu_.get()); |
677 } else { | 679 } else { |
678 account_match = reauth_account_button_map_.find(sender); | 680 account_match = reauth_account_button_map_.find(sender); |
679 DCHECK(account_match != reauth_account_button_map_.end()); | 681 DCHECK(account_match != reauth_account_button_map_.end()); |
680 ShowView(BUBBLE_VIEW_MODE_GAIA_REAUTH, avatar_menu_.get()); | 682 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH, avatar_menu_.get()); |
681 } | 683 } |
682 } | 684 } |
683 } | 685 } |
684 } | 686 } |
685 | 687 |
686 void ProfileChooserView::RemoveAccount() { | 688 void ProfileChooserView::RemoveAccount() { |
687 DCHECK(!account_id_to_remove_.empty()); | 689 DCHECK(!account_id_to_remove_.empty()); |
688 MutableProfileOAuth2TokenService* oauth2_token_service = | 690 MutableProfileOAuth2TokenService* oauth2_token_service = |
689 ProfileOAuth2TokenServiceFactory::GetPlatformSpecificForProfile( | 691 ProfileOAuth2TokenServiceFactory::GetPlatformSpecificForProfile( |
690 browser_->profile()); | 692 browser_->profile()); |
691 if (oauth2_token_service) | 693 if (oauth2_token_service) |
692 oauth2_token_service->RevokeCredentials(account_id_to_remove_); | 694 oauth2_token_service->RevokeCredentials(account_id_to_remove_); |
693 account_id_to_remove_.clear(); | 695 account_id_to_remove_.clear(); |
694 | 696 |
695 ShowView(BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); | 697 ShowView(profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, avatar_menu_.get()); |
696 } | 698 } |
697 | 699 |
698 void ProfileChooserView::LinkClicked(views::Link* sender, int event_flags) { | 700 void ProfileChooserView::LinkClicked(views::Link* sender, int event_flags) { |
699 if (sender == manage_accounts_link_) { | 701 if (sender == manage_accounts_link_) { |
700 // This link can either mean show/hide the account management view, | 702 // This link can either mean show/hide the account management view, |
701 // depending on which view it is displayed. ShowView() will DCHECK if | 703 // depending on which view it is displayed. ShowView() will DCHECK if |
702 // the account management view is displayed for non signed-in users. | 704 // the account management view is displayed for non signed-in users. |
703 ShowView( | 705 ShowView( |
704 view_mode_ == BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT ? | 706 view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT ? |
705 BUBBLE_VIEW_MODE_PROFILE_CHOOSER : | 707 profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER : |
706 BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, | 708 profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, |
707 avatar_menu_.get()); | 709 avatar_menu_.get()); |
708 } else if (sender == add_account_link_) { | 710 } else if (sender == add_account_link_) { |
709 ShowView(BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT, avatar_menu_.get()); | 711 ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT, avatar_menu_.get()); |
710 } else if (sender == tutorial_learn_more_link_) { | 712 } else if (sender == tutorial_learn_more_link_) { |
711 ProfileMetrics::LogProfileUpgradeEnrollment( | 713 ProfileMetrics::LogProfileUpgradeEnrollment( |
712 ProfileMetrics::PROFILE_ENROLLMENT_LAUNCH_LEARN_MORE); | 714 ProfileMetrics::PROFILE_ENROLLMENT_LAUNCH_LEARN_MORE); |
713 // TODO(guohui): update |learn_more_url| once it is decided. | 715 // TODO(guohui): update |learn_more_url| once it is decided. |
714 const GURL lear_more_url("https://support.google.com/chrome/?hl=en#to"); | 716 const GURL lear_more_url("https://support.google.com/chrome/?hl=en#to"); |
715 chrome::NavigateParams params( | 717 chrome::NavigateParams params( |
716 browser_->profile(), | 718 browser_->profile(), |
717 lear_more_url, | 719 lear_more_url, |
718 content::PAGE_TRANSITION_LINK); | 720 content::PAGE_TRANSITION_LINK); |
719 params.disposition = NEW_FOREGROUND_TAB; | 721 params.disposition = NEW_FOREGROUND_TAB; |
720 chrome::Navigate(¶ms); | 722 chrome::Navigate(¶ms); |
721 } else { | 723 } else { |
722 DCHECK(sender == tutorial_end_preview_link_); | 724 DCHECK(sender == tutorial_end_preview_link_); |
723 ShowView(BUBBLE_VIEW_MODE_END_PREVIEW, avatar_menu_.get()); | 725 ShowView(profiles::BUBBLE_VIEW_MODE_END_PREVIEW, avatar_menu_.get()); |
724 } | 726 } |
725 } | 727 } |
726 | 728 |
727 void ProfileChooserView::StyledLabelLinkClicked( | 729 void ProfileChooserView::StyledLabelLinkClicked( |
728 const gfx::Range& range, int event_flags) { | 730 const gfx::Range& range, int event_flags) { |
729 chrome::ShowSettings(browser_); | 731 chrome::ShowSettings(browser_); |
730 } | 732 } |
731 | 733 |
732 bool ProfileChooserView::HandleKeyEvent(views::Textfield* sender, | 734 bool ProfileChooserView::HandleKeyEvent(views::Textfield* sender, |
733 const ui::KeyEvent& key_event) { | 735 const ui::KeyEvent& key_event) { |
(...skipping 19 matching lines...) Expand all Loading... |
753 | 755 |
754 profiles::UpdateProfileName(profile, new_profile_name); | 756 profiles::UpdateProfileName(profile, new_profile_name); |
755 current_profile_name_->ShowReadOnlyView(); | 757 current_profile_name_->ShowReadOnlyView(); |
756 return true; | 758 return true; |
757 } | 759 } |
758 return false; | 760 return false; |
759 } | 761 } |
760 | 762 |
761 views::View* ProfileChooserView::CreateProfileChooserView( | 763 views::View* ProfileChooserView::CreateProfileChooserView( |
762 AvatarMenu* avatar_menu, | 764 AvatarMenu* avatar_menu, |
763 TutorialMode last_tutorial_mode) { | 765 profiles::TutorialMode last_tutorial_mode) { |
764 // TODO(guohui, noms): the view should be customized based on whether new | 766 // TODO(guohui, noms): the view should be customized based on whether new |
765 // profile management preview is enabled or not. | 767 // profile management preview is enabled or not. |
766 | 768 |
767 views::View* view = new views::View(); | 769 views::View* view = new views::View(); |
768 views::GridLayout* layout = CreateSingleColumnLayout(view, kFixedMenuWidth); | 770 views::GridLayout* layout = CreateSingleColumnLayout(view, kFixedMenuWidth); |
769 // Separate items into active and alternatives. | 771 // Separate items into active and alternatives. |
770 Indexes other_profiles; | 772 Indexes other_profiles; |
771 views::View* tutorial_view = NULL; | 773 views::View* tutorial_view = NULL; |
772 views::View* current_profile_view = NULL; | 774 views::View* current_profile_view = NULL; |
773 views::View* current_profile_accounts = NULL; | 775 views::View* current_profile_accounts = NULL; |
774 views::View* option_buttons_view = NULL; | 776 views::View* option_buttons_view = NULL; |
775 bool is_new_profile_management = switches::IsNewProfileManagement(); | 777 bool is_new_profile_management = switches::IsNewProfileManagement(); |
776 for (size_t i = 0; i < avatar_menu->GetNumberOfItems(); ++i) { | 778 for (size_t i = 0; i < avatar_menu->GetNumberOfItems(); ++i) { |
777 const AvatarMenu::Item& item = avatar_menu->GetItemAt(i); | 779 const AvatarMenu::Item& item = avatar_menu->GetItemAt(i); |
778 if (item.active) { | 780 if (item.active) { |
779 option_buttons_view = CreateOptionsView(item.signed_in); | 781 option_buttons_view = CreateOptionsView(item.signed_in); |
780 current_profile_view = CreateCurrentProfileView(item, false); | 782 current_profile_view = CreateCurrentProfileView(item, false); |
781 if (view_mode_ == BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { | 783 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { |
782 if (is_new_profile_management) { | 784 if (is_new_profile_management) { |
783 tutorial_view = last_tutorial_mode == TUTORIAL_MODE_SEND_FEEDBACK ? | 785 tutorial_view = |
| 786 last_tutorial_mode == profiles::TUTORIAL_MODE_SEND_FEEDBACK ? |
784 CreateSendPreviewFeedbackView() : | 787 CreateSendPreviewFeedbackView() : |
785 CreatePreviewEnabledTutorialView( | 788 CreatePreviewEnabledTutorialView( |
786 item, last_tutorial_mode == TUTORIAL_MODE_PREVIEW_ENABLED); | 789 item, last_tutorial_mode == profiles::TUTORIAL_MODE_WELCOME); |
787 } else { | 790 } else { |
788 tutorial_view = CreateNewProfileManagementPreviewView(); | 791 tutorial_view = CreateNewProfileManagementPreviewView(); |
789 } | 792 } |
790 } else { | 793 } else { |
791 current_profile_accounts = CreateCurrentProfileAccountsView(item); | 794 current_profile_accounts = CreateCurrentProfileAccountsView(item); |
792 } | 795 } |
793 } else { | 796 } else { |
794 other_profiles.push_back(i); | 797 other_profiles.push_back(i); |
795 } | 798 } |
796 } | 799 } |
(...skipping 11 matching lines...) Expand all Loading... |
808 | 811 |
809 if (!current_profile_view) { | 812 if (!current_profile_view) { |
810 // Guest windows don't have an active profile. | 813 // Guest windows don't have an active profile. |
811 current_profile_view = CreateGuestProfileView(); | 814 current_profile_view = CreateGuestProfileView(); |
812 option_buttons_view = CreateOptionsView(false); | 815 option_buttons_view = CreateOptionsView(false); |
813 } | 816 } |
814 | 817 |
815 layout->StartRow(1, 0); | 818 layout->StartRow(1, 0); |
816 layout->AddView(current_profile_view); | 819 layout->AddView(current_profile_view); |
817 | 820 |
818 if (view_mode_ == BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { | 821 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { |
819 layout->StartRow(1, 0); | 822 layout->StartRow(1, 0); |
820 if (switches::IsFastUserSwitching()) | 823 if (switches::IsFastUserSwitching()) |
821 layout->AddView(CreateOtherProfilesView(other_profiles)); | 824 layout->AddView(CreateOtherProfilesView(other_profiles)); |
822 } else { | 825 } else { |
823 DCHECK(current_profile_accounts); | 826 DCHECK(current_profile_accounts); |
824 layout->StartRow(0, 0); | 827 layout->StartRow(0, 0); |
825 layout->AddView(new views::Separator(views::Separator::HORIZONTAL)); | 828 layout->AddView(new views::Separator(views::Separator::HORIZONTAL)); |
826 layout->StartRow(1, 0); | 829 layout->StartRow(1, 0); |
827 layout->AddView(current_profile_accounts); | 830 layout->AddView(current_profile_accounts); |
828 } | 831 } |
(...skipping 24 matching lines...) Expand all Loading... |
853 return NULL; | 856 return NULL; |
854 | 857 |
855 if (!tutorial_shown) { | 858 if (!tutorial_shown) { |
856 if (show_count == kProfileAvatarTutorialShowMax) | 859 if (show_count == kProfileAvatarTutorialShowMax) |
857 return NULL; | 860 return NULL; |
858 profile->GetPrefs()->SetInteger( | 861 profile->GetPrefs()->SetInteger( |
859 prefs::kProfileAvatarTutorialShown, show_count + 1); | 862 prefs::kProfileAvatarTutorialShown, show_count + 1); |
860 } | 863 } |
861 | 864 |
862 return CreateTutorialView( | 865 return CreateTutorialView( |
863 TUTORIAL_MODE_PREVIEW_ENABLED, | 866 profiles::TUTORIAL_MODE_WELCOME, |
864 l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_TITLE), | 867 l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_TITLE), |
865 l10n_util::GetStringUTF16( | 868 l10n_util::GetStringUTF16( |
866 IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_CONTENT_TEXT), | 869 IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_CONTENT_TEXT), |
867 l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE), | 870 l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE), |
868 l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON), | 871 l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON), |
869 &tutorial_learn_more_link_, | 872 &tutorial_learn_more_link_, |
870 &tutorial_ok_button_); | 873 &tutorial_ok_button_); |
871 } | 874 } |
872 | 875 |
873 views::View* ProfileChooserView::CreateSendPreviewFeedbackView() { | 876 views::View* ProfileChooserView::CreateSendPreviewFeedbackView() { |
874 return CreateTutorialView( | 877 return CreateTutorialView( |
875 TUTORIAL_MODE_SEND_FEEDBACK, | 878 profiles::TUTORIAL_MODE_SEND_FEEDBACK, |
876 l10n_util::GetStringUTF16(IDS_PROFILES_FEEDBACK_TUTORIAL_TITLE), | 879 l10n_util::GetStringUTF16(IDS_PROFILES_FEEDBACK_TUTORIAL_TITLE), |
877 l10n_util::GetStringUTF16( | 880 l10n_util::GetStringUTF16( |
878 IDS_PROFILES_FEEDBACK_TUTORIAL_CONTENT_TEXT), | 881 IDS_PROFILES_FEEDBACK_TUTORIAL_CONTENT_TEXT), |
879 l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW), | 882 l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW), |
880 l10n_util::GetStringUTF16(IDS_PROFILES_SEND_FEEDBACK_BUTTON), | 883 l10n_util::GetStringUTF16(IDS_PROFILES_SEND_FEEDBACK_BUTTON), |
881 &tutorial_end_preview_link_, | 884 &tutorial_end_preview_link_, |
882 &tutorial_send_feedback_button_); | 885 &tutorial_send_feedback_button_); |
883 } | 886 } |
884 | 887 |
885 views::View* ProfileChooserView::CreateTutorialView( | 888 views::View* ProfileChooserView::CreateTutorialView( |
886 TutorialMode tutorial_mode, | 889 profiles::TutorialMode tutorial_mode, |
887 const base::string16& title_text, | 890 const base::string16& title_text, |
888 const base::string16& content_text, | 891 const base::string16& content_text, |
889 const base::string16& link_text, | 892 const base::string16& link_text, |
890 const base::string16& button_text, | 893 const base::string16& button_text, |
891 views::Link** link, | 894 views::Link** link, |
892 views::LabelButton** button) { | 895 views::LabelButton** button) { |
893 tutorial_mode_ = tutorial_mode; | 896 tutorial_mode_ = tutorial_mode; |
894 | 897 |
895 views::View* view = new views::View(); | 898 views::View* view = new views::View(); |
896 view->set_background(views::Background::CreateSolidBackground( | 899 view->set_background(views::Background::CreateSolidBackground( |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1022 layout->AddView(current_profile_name_); | 1025 layout->AddView(current_profile_name_); |
1023 | 1026 |
1024 if (is_guest) | 1027 if (is_guest) |
1025 return view; | 1028 return view; |
1026 | 1029 |
1027 // The available links depend on the type of profile that is active. | 1030 // The available links depend on the type of profile that is active. |
1028 if (avatar_item.signed_in) { | 1031 if (avatar_item.signed_in) { |
1029 layout->StartRow(1, 0); | 1032 layout->StartRow(1, 0); |
1030 if (switches::IsNewProfileManagement()) { | 1033 if (switches::IsNewProfileManagement()) { |
1031 base::string16 link_title = l10n_util::GetStringUTF16( | 1034 base::string16 link_title = l10n_util::GetStringUTF16( |
1032 view_mode_ == BUBBLE_VIEW_MODE_PROFILE_CHOOSER ? | 1035 view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER ? |
1033 IDS_PROFILES_PROFILE_MANAGE_ACCOUNTS_BUTTON : | 1036 IDS_PROFILES_PROFILE_MANAGE_ACCOUNTS_BUTTON : |
1034 IDS_PROFILES_PROFILE_HIDE_MANAGE_ACCOUNTS_BUTTON); | 1037 IDS_PROFILES_PROFILE_HIDE_MANAGE_ACCOUNTS_BUTTON); |
1035 manage_accounts_link_ = CreateLink(link_title, this); | 1038 manage_accounts_link_ = CreateLink(link_title, this); |
1036 manage_accounts_link_->SetHorizontalAlignment(gfx::ALIGN_CENTER); | 1039 manage_accounts_link_->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
1037 layout->AddView(manage_accounts_link_); | 1040 layout->AddView(manage_accounts_link_); |
1038 } else { | 1041 } else { |
1039 views::Label* email_label = new views::Label(avatar_item.sync_state); | 1042 views::Label* email_label = new views::Label(avatar_item.sync_state); |
1040 email_label->SetHorizontalAlignment(gfx::ALIGN_CENTER); | 1043 email_label->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
1041 layout->AddView(email_label); | 1044 layout->AddView(email_label); |
1042 } | 1045 } |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1254 email_button->AddChildView(reauth_button); | 1257 email_button->AddChildView(reauth_button); |
1255 reauth_account_button_map_[reauth_button] = account; | 1258 reauth_account_button_map_[reauth_button] = account; |
1256 } | 1259 } |
1257 } | 1260 } |
1258 | 1261 |
1259 views::View* ProfileChooserView::CreateGaiaSigninView() { | 1262 views::View* ProfileChooserView::CreateGaiaSigninView() { |
1260 GURL url; | 1263 GURL url; |
1261 int message_id; | 1264 int message_id; |
1262 | 1265 |
1263 switch (view_mode_) { | 1266 switch (view_mode_) { |
1264 case BUBBLE_VIEW_MODE_GAIA_SIGNIN: | 1267 case profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN: |
1265 url = signin::GetPromoURL(signin::SOURCE_AVATAR_BUBBLE_SIGN_IN, | 1268 url = signin::GetPromoURL(signin::SOURCE_AVATAR_BUBBLE_SIGN_IN, |
1266 false /* auto_close */, | 1269 false /* auto_close */, |
1267 true /* is_constrained */); | 1270 true /* is_constrained */); |
1268 message_id = IDS_PROFILES_GAIA_SIGNIN_TITLE; | 1271 message_id = IDS_PROFILES_GAIA_SIGNIN_TITLE; |
1269 break; | 1272 break; |
1270 case BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT: | 1273 case profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT: |
1271 url = signin::GetPromoURL(signin::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT, | 1274 url = signin::GetPromoURL(signin::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT, |
1272 false /* auto_close */, | 1275 false /* auto_close */, |
1273 true /* is_constrained */); | 1276 true /* is_constrained */); |
1274 message_id = IDS_PROFILES_GAIA_ADD_ACCOUNT_TITLE; | 1277 message_id = IDS_PROFILES_GAIA_ADD_ACCOUNT_TITLE; |
1275 break; | 1278 break; |
1276 case BUBBLE_VIEW_MODE_GAIA_REAUTH: { | 1279 case profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH: { |
1277 DCHECK(HasAuthError(browser_->profile())); | 1280 DCHECK(HasAuthError(browser_->profile())); |
1278 url = signin::GetReauthURL(browser_->profile(), | 1281 url = signin::GetReauthURL(browser_->profile(), |
1279 GetAuthErrorUsername(browser_->profile())); | 1282 GetAuthErrorUsername(browser_->profile())); |
1280 message_id = IDS_PROFILES_GAIA_REAUTH_TITLE; | 1283 message_id = IDS_PROFILES_GAIA_REAUTH_TITLE; |
1281 break; | 1284 break; |
1282 } | 1285 } |
1283 default: | 1286 default: |
1284 NOTREACHED() << "Called with invalid mode=" << view_mode_; | 1287 NOTREACHED() << "Called with invalid mode=" << view_mode_; |
1285 return NULL; | 1288 return NULL; |
1286 } | 1289 } |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1354 } | 1357 } |
1355 | 1358 |
1356 TitleCard* title_card = new TitleCard(IDS_PROFILES_ACCOUNT_REMOVAL_TITLE, | 1359 TitleCard* title_card = new TitleCard(IDS_PROFILES_ACCOUNT_REMOVAL_TITLE, |
1357 this, &account_removal_cancel_button_); | 1360 this, &account_removal_cancel_button_); |
1358 return TitleCard::AddPaddedTitleCard(view, title_card, | 1361 return TitleCard::AddPaddedTitleCard(view, title_card, |
1359 kFixedAccountRemovalViewWidth); | 1362 kFixedAccountRemovalViewWidth); |
1360 } | 1363 } |
1361 | 1364 |
1362 views::View* ProfileChooserView::CreateNewProfileManagementPreviewView() { | 1365 views::View* ProfileChooserView::CreateNewProfileManagementPreviewView() { |
1363 return CreateTutorialView( | 1366 return CreateTutorialView( |
1364 TUTORIAL_MODE_ENABLE_PREVIEW, | 1367 profiles::TUTORIAL_MODE_ENABLE_PREVIEW, |
1365 l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_TITLE), | 1368 l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_TITLE), |
1366 l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_CONTENT_TEXT), | 1369 l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_CONTENT_TEXT), |
1367 l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE), | 1370 l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE), |
1368 l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_TRY_BUTTON), | 1371 l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_TRY_BUTTON), |
1369 &tutorial_learn_more_link_, | 1372 &tutorial_learn_more_link_, |
1370 &tutorial_enable_new_profile_management_button_); | 1373 &tutorial_enable_new_profile_management_button_); |
1371 } | 1374 } |
1372 | 1375 |
1373 views::View* ProfileChooserView::CreateEndPreviewView() { | 1376 views::View* ProfileChooserView::CreateEndPreviewView() { |
1374 views::View* view = new views::View(); | 1377 views::View* view = new views::View(); |
(...skipping 24 matching lines...) Expand all Loading... |
1399 layout->StartRowWithPadding( | 1402 layout->StartRowWithPadding( |
1400 1, 0, 0, views::kUnrelatedControlVerticalSpacing); | 1403 1, 0, 0, views::kUnrelatedControlVerticalSpacing); |
1401 layout->AddView(end_preview_and_relaunch_button_); | 1404 layout->AddView(end_preview_and_relaunch_button_); |
1402 | 1405 |
1403 TitleCard* title_card = new TitleCard( | 1406 TitleCard* title_card = new TitleCard( |
1404 IDS_PROFILES_END_PREVIEW, this, &end_preview_cancel_button_); | 1407 IDS_PROFILES_END_PREVIEW, this, &end_preview_cancel_button_); |
1405 return TitleCard::AddPaddedTitleCard( | 1408 return TitleCard::AddPaddedTitleCard( |
1406 view, title_card, kFixedAccountRemovalViewWidth); | 1409 view, title_card, kFixedAccountRemovalViewWidth); |
1407 } | 1410 } |
1408 | 1411 |
OLD | NEW |