| 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 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 | 450 |
| 451 // ProfileChooserView --------------------------------------------------------- | 451 // ProfileChooserView --------------------------------------------------------- |
| 452 | 452 |
| 453 // static | 453 // static |
| 454 ProfileChooserView* ProfileChooserView::profile_bubble_ = NULL; | 454 ProfileChooserView* ProfileChooserView::profile_bubble_ = NULL; |
| 455 bool ProfileChooserView::close_on_deactivate_for_testing_ = true; | 455 bool ProfileChooserView::close_on_deactivate_for_testing_ = true; |
| 456 | 456 |
| 457 // static | 457 // static |
| 458 void ProfileChooserView::ShowBubble( | 458 void ProfileChooserView::ShowBubble( |
| 459 profiles::BubbleViewMode view_mode, | 459 profiles::BubbleViewMode view_mode, |
| 460 profiles::TutorialMode tutorial_mode, |
| 460 const signin::ManageAccountsParams& manage_accounts_params, | 461 const signin::ManageAccountsParams& manage_accounts_params, |
| 461 views::View* anchor_view, | 462 views::View* anchor_view, |
| 462 views::BubbleBorder::Arrow arrow, | 463 views::BubbleBorder::Arrow arrow, |
| 463 views::BubbleBorder::BubbleAlignment border_alignment, | 464 views::BubbleBorder::BubbleAlignment border_alignment, |
| 464 Browser* browser) { | 465 Browser* browser) { |
| 465 if (IsShowing()) | 466 if (IsShowing()) { |
| 467 if (tutorial_mode != profiles::TUTORIAL_MODE_NONE) { |
| 468 profile_bubble_->tutorial_mode_ = tutorial_mode; |
| 469 profile_bubble_->ShowView(view_mode, profile_bubble_->avatar_menu_.get()); |
| 470 } |
| 466 return; | 471 return; |
| 472 } |
| 467 | 473 |
| 468 profile_bubble_ = new ProfileChooserView(anchor_view, arrow, browser, | 474 profile_bubble_ = new ProfileChooserView(anchor_view, arrow, browser, |
| 469 view_mode, manage_accounts_params.service_type); | 475 view_mode, tutorial_mode, manage_accounts_params.service_type); |
| 470 views::BubbleDelegateView::CreateBubble(profile_bubble_); | 476 views::BubbleDelegateView::CreateBubble(profile_bubble_); |
| 471 profile_bubble_->set_close_on_deactivate(close_on_deactivate_for_testing_); | 477 profile_bubble_->set_close_on_deactivate(close_on_deactivate_for_testing_); |
| 472 profile_bubble_->SetAlignment(border_alignment); | 478 profile_bubble_->SetAlignment(border_alignment); |
| 473 profile_bubble_->GetWidget()->Show(); | 479 profile_bubble_->GetWidget()->Show(); |
| 474 profile_bubble_->SetArrowPaintType(views::BubbleBorder::PAINT_NONE); | 480 profile_bubble_->SetArrowPaintType(views::BubbleBorder::PAINT_NONE); |
| 475 } | 481 } |
| 476 | 482 |
| 477 // static | 483 // static |
| 478 bool ProfileChooserView::IsShowing() { | 484 bool ProfileChooserView::IsShowing() { |
| 479 return profile_bubble_ != NULL; | 485 return profile_bubble_ != NULL; |
| 480 } | 486 } |
| 481 | 487 |
| 482 // static | 488 // static |
| 483 void ProfileChooserView::Hide() { | 489 void ProfileChooserView::Hide() { |
| 484 if (IsShowing()) | 490 if (IsShowing()) |
| 485 profile_bubble_->GetWidget()->Close(); | 491 profile_bubble_->GetWidget()->Close(); |
| 486 } | 492 } |
| 487 | 493 |
| 488 ProfileChooserView::ProfileChooserView(views::View* anchor_view, | 494 ProfileChooserView::ProfileChooserView(views::View* anchor_view, |
| 489 views::BubbleBorder::Arrow arrow, | 495 views::BubbleBorder::Arrow arrow, |
| 490 Browser* browser, | 496 Browser* browser, |
| 491 profiles::BubbleViewMode view_mode, | 497 profiles::BubbleViewMode view_mode, |
| 498 profiles::TutorialMode tutorial_mode, |
| 492 signin::GAIAServiceType service_type) | 499 signin::GAIAServiceType service_type) |
| 493 : BubbleDelegateView(anchor_view, arrow), | 500 : BubbleDelegateView(anchor_view, arrow), |
| 494 browser_(browser), | 501 browser_(browser), |
| 495 view_mode_(view_mode), | 502 view_mode_(view_mode), |
| 496 tutorial_mode_(profiles::TUTORIAL_MODE_NONE), | 503 tutorial_mode_(tutorial_mode), |
| 497 gaia_service_type_(service_type) { | 504 gaia_service_type_(service_type) { |
| 498 // Reset the default margins inherited from the BubbleDelegateView. | 505 // Reset the default margins inherited from the BubbleDelegateView. |
| 499 // Add a small bottom inset so that the bubble's rounded corners show up. | 506 // Add a small bottom inset so that the bubble's rounded corners show up. |
| 500 set_margins(gfx::Insets(0, 0, 1, 0)); | 507 set_margins(gfx::Insets(0, 0, 1, 0)); |
| 501 set_background(views::Background::CreateSolidBackground( | 508 set_background(views::Background::CreateSolidBackground( |
| 502 GetNativeTheme()->GetSystemColor( | 509 GetNativeTheme()->GetSystemColor( |
| 503 ui::NativeTheme::kColorId_DialogBackground))); | 510 ui::NativeTheme::kColorId_DialogBackground))); |
| 504 ResetView(); | 511 ResetView(); |
| 505 | 512 |
| 506 avatar_menu_.reset(new AvatarMenu( | 513 avatar_menu_.reset(new AvatarMenu( |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 gaia_signin_cancel_button_ = NULL; | 545 gaia_signin_cancel_button_ = NULL; |
| 539 remove_account_button_ = NULL; | 546 remove_account_button_ = NULL; |
| 540 account_removal_cancel_button_ = NULL; | 547 account_removal_cancel_button_ = NULL; |
| 541 add_person_button_ = NULL; | 548 add_person_button_ = NULL; |
| 542 disconnect_button_ = NULL; | 549 disconnect_button_ = NULL; |
| 543 switch_user_cancel_button_ = NULL; | 550 switch_user_cancel_button_ = NULL; |
| 544 tutorial_sync_settings_ok_button_ = NULL; | 551 tutorial_sync_settings_ok_button_ = NULL; |
| 545 tutorial_sync_settings_link_ = NULL; | 552 tutorial_sync_settings_link_ = NULL; |
| 546 tutorial_see_whats_new_button_ = NULL; | 553 tutorial_see_whats_new_button_ = NULL; |
| 547 tutorial_not_you_link_ = NULL; | 554 tutorial_not_you_link_ = NULL; |
| 548 tutorial_mode_ = profiles::TUTORIAL_MODE_NONE; | |
| 549 } | 555 } |
| 550 | 556 |
| 551 void ProfileChooserView::Init() { | 557 void ProfileChooserView::Init() { |
| 552 // If view mode is PROFILE_CHOOSER but there is an auth error, force | 558 // If view mode is PROFILE_CHOOSER but there is an auth error, force |
| 553 // ACCOUNT_MANAGEMENT mode. | 559 // ACCOUNT_MANAGEMENT mode. |
| 554 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER && | 560 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER && |
| 555 HasAuthError(browser_->profile()) && | 561 HasAuthError(browser_->profile()) && |
| 556 switches::IsEnableAccountConsistency() && | 562 switches::IsEnableAccountConsistency() && |
| 557 avatar_menu_->GetItemAt(avatar_menu_->GetActiveProfileIndex()). | 563 avatar_menu_->GetItemAt(avatar_menu_->GetActiveProfileIndex()). |
| 558 signed_in) { | 564 signed_in) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 573 | 579 |
| 574 // Refresh the view with the new menu. We can't just update the local copy | 580 // Refresh the view with the new menu. We can't just update the local copy |
| 575 // as this may have been triggered by a sign out action, in which case | 581 // as this may have been triggered by a sign out action, in which case |
| 576 // the view is being destroyed. | 582 // the view is being destroyed. |
| 577 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu); | 583 ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu); |
| 578 } | 584 } |
| 579 | 585 |
| 580 void ProfileChooserView::OnRefreshTokenAvailable( | 586 void ProfileChooserView::OnRefreshTokenAvailable( |
| 581 const std::string& account_id) { | 587 const std::string& account_id) { |
| 582 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT || | 588 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT || |
| 583 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN || | |
| 584 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || | 589 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || |
| 585 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) { | 590 view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) { |
| 586 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN) | |
| 587 tutorial_mode_ = profiles::TUTORIAL_MODE_CONFIRM_SIGNIN; | |
| 588 // The account management UI is only available through the | 591 // The account management UI is only available through the |
| 589 // --enable-account-consistency flag. | 592 // --enable-account-consistency flag. |
| 590 ShowView(switches::IsEnableAccountConsistency() ? | 593 ShowView(switches::IsEnableAccountConsistency() ? |
| 591 profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT : | 594 profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT : |
| 592 profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); | 595 profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get()); |
| 593 } | 596 } |
| 594 } | 597 } |
| 595 | 598 |
| 596 void ProfileChooserView::OnRefreshTokenRevoked(const std::string& account_id) { | 599 void ProfileChooserView::OnRefreshTokenRevoked(const std::string& account_id) { |
| 597 // Refresh the account management view when an account is removed from the | 600 // Refresh the account management view when an account is removed from the |
| (...skipping 13 matching lines...) Expand all Loading... |
| 611 DCHECK(active_item.signed_in); | 614 DCHECK(active_item.signed_in); |
| 612 } | 615 } |
| 613 | 616 |
| 614 if (browser_->profile()->IsSupervised() && | 617 if (browser_->profile()->IsSupervised() && |
| 615 (view_to_display == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || | 618 (view_to_display == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT || |
| 616 view_to_display == profiles::BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL)) { | 619 view_to_display == profiles::BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL)) { |
| 617 LOG(WARNING) << "Supervised user attempted to add/remove account"; | 620 LOG(WARNING) << "Supervised user attempted to add/remove account"; |
| 618 return; | 621 return; |
| 619 } | 622 } |
| 620 | 623 |
| 621 // Records the last tutorial mode. | |
| 622 profiles::TutorialMode last_tutorial_mode = tutorial_mode_; | |
| 623 ResetView(); | 624 ResetView(); |
| 624 RemoveAllChildViews(true); | 625 RemoveAllChildViews(true); |
| 625 view_mode_ = view_to_display; | 626 view_mode_ = view_to_display; |
| 626 | 627 |
| 627 views::GridLayout* layout; | 628 views::GridLayout* layout; |
| 628 views::View* sub_view; | 629 views::View* sub_view; |
| 629 switch (view_mode_) { | 630 switch (view_mode_) { |
| 630 case profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN: | 631 case profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN: |
| 631 case profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT: | 632 case profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT: |
| 632 case profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH: | 633 case profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH: |
| 633 layout = CreateSingleColumnLayout(this, kFixedGaiaViewWidth); | 634 layout = CreateSingleColumnLayout(this, kFixedGaiaViewWidth); |
| 634 sub_view = CreateGaiaSigninView(); | 635 sub_view = CreateGaiaSigninView(); |
| 635 break; | 636 break; |
| 636 case profiles::BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL: | 637 case profiles::BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL: |
| 637 layout = CreateSingleColumnLayout(this, kFixedAccountRemovalViewWidth); | 638 layout = CreateSingleColumnLayout(this, kFixedAccountRemovalViewWidth); |
| 638 sub_view = CreateAccountRemovalView(); | 639 sub_view = CreateAccountRemovalView(); |
| 639 break; | 640 break; |
| 640 case profiles::BUBBLE_VIEW_MODE_SWITCH_USER: | 641 case profiles::BUBBLE_VIEW_MODE_SWITCH_USER: |
| 641 layout = CreateSingleColumnLayout(this, kFixedSwitchUserViewWidth); | 642 layout = CreateSingleColumnLayout(this, kFixedSwitchUserViewWidth); |
| 642 sub_view = CreateSwitchUserView(); | 643 sub_view = CreateSwitchUserView(); |
| 643 ProfileMetrics::LogProfileNewAvatarMenuNotYou( | 644 ProfileMetrics::LogProfileNewAvatarMenuNotYou( |
| 644 ProfileMetrics::PROFILE_AVATAR_MENU_NOT_YOU_VIEW); | 645 ProfileMetrics::PROFILE_AVATAR_MENU_NOT_YOU_VIEW); |
| 645 break; | 646 break; |
| 646 default: | 647 default: |
| 647 layout = CreateSingleColumnLayout(this, kFixedMenuWidth); | 648 layout = CreateSingleColumnLayout(this, kFixedMenuWidth); |
| 648 sub_view = CreateProfileChooserView(avatar_menu, last_tutorial_mode); | 649 sub_view = CreateProfileChooserView(avatar_menu); |
| 649 } | 650 } |
| 650 layout->StartRow(1, 0); | 651 layout->StartRow(1, 0); |
| 651 layout->AddView(sub_view); | 652 layout->AddView(sub_view); |
| 652 Layout(); | 653 Layout(); |
| 653 if (GetBubbleFrameView()) | 654 if (GetBubbleFrameView()) |
| 654 SizeToContents(); | 655 SizeToContents(); |
| 655 } | 656 } |
| 656 | 657 |
| 657 void ProfileChooserView::WindowClosing() { | 658 void ProfileChooserView::WindowClosing() { |
| 658 DCHECK_EQ(profile_bubble_, this); | 659 DCHECK_EQ(profile_bubble_, this); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 | 833 |
| 833 profiles::UpdateProfileName(profile, new_profile_name); | 834 profiles::UpdateProfileName(profile, new_profile_name); |
| 834 PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_NAME); | 835 PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_NAME); |
| 835 current_profile_name_->ShowReadOnlyView(); | 836 current_profile_name_->ShowReadOnlyView(); |
| 836 return true; | 837 return true; |
| 837 } | 838 } |
| 838 return false; | 839 return false; |
| 839 } | 840 } |
| 840 | 841 |
| 841 views::View* ProfileChooserView::CreateProfileChooserView( | 842 views::View* ProfileChooserView::CreateProfileChooserView( |
| 842 AvatarMenu* avatar_menu, | 843 AvatarMenu* avatar_menu) { |
| 843 profiles::TutorialMode last_tutorial_mode) { | |
| 844 // TODO(guohui, noms): the view should be customized based on whether new | 844 // TODO(guohui, noms): the view should be customized based on whether new |
| 845 // profile management preview is enabled or not. | 845 // profile management preview is enabled or not. |
| 846 | 846 |
| 847 views::View* view = new views::View(); | 847 views::View* view = new views::View(); |
| 848 views::GridLayout* layout = CreateSingleColumnLayout(view, kFixedMenuWidth); | 848 views::GridLayout* layout = CreateSingleColumnLayout(view, kFixedMenuWidth); |
| 849 // Separate items into active and alternatives. | 849 // Separate items into active and alternatives. |
| 850 Indexes other_profiles; | 850 Indexes other_profiles; |
| 851 views::View* tutorial_view = NULL; | 851 views::View* tutorial_view = NULL; |
| 852 views::View* current_profile_view = NULL; | 852 views::View* current_profile_view = NULL; |
| 853 views::View* current_profile_accounts = NULL; | 853 views::View* current_profile_accounts = NULL; |
| 854 views::View* option_buttons_view = NULL; | 854 views::View* option_buttons_view = NULL; |
| 855 for (size_t i = 0; i < avatar_menu->GetNumberOfItems(); ++i) { | 855 for (size_t i = 0; i < avatar_menu->GetNumberOfItems(); ++i) { |
| 856 const AvatarMenu::Item& item = avatar_menu->GetItemAt(i); | 856 const AvatarMenu::Item& item = avatar_menu->GetItemAt(i); |
| 857 if (item.active) { | 857 if (item.active) { |
| 858 option_buttons_view = CreateOptionsView( | 858 option_buttons_view = CreateOptionsView( |
| 859 switches::IsNewProfileManagement() && item.signed_in); | 859 switches::IsNewProfileManagement() && item.signed_in); |
| 860 current_profile_view = CreateCurrentProfileView(item, false); | 860 current_profile_view = CreateCurrentProfileView(item, false); |
| 861 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { | 861 if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER) { |
| 862 switch (last_tutorial_mode) { | 862 switch (tutorial_mode_) { |
| 863 case profiles::TUTORIAL_MODE_NONE: | 863 case profiles::TUTORIAL_MODE_NONE: |
| 864 case profiles::TUTORIAL_MODE_WELCOME_UPGRADE: | 864 case profiles::TUTORIAL_MODE_WELCOME_UPGRADE: |
| 865 tutorial_view = CreateWelcomeUpgradeTutorialViewIfNeeded( | 865 tutorial_view = CreateWelcomeUpgradeTutorialViewIfNeeded( |
| 866 last_tutorial_mode == profiles::TUTORIAL_MODE_WELCOME_UPGRADE, | 866 tutorial_mode_ == profiles::TUTORIAL_MODE_WELCOME_UPGRADE, |
| 867 item); | 867 item); |
| 868 break; | 868 break; |
| 869 case profiles::TUTORIAL_MODE_CONFIRM_SIGNIN: | 869 case profiles::TUTORIAL_MODE_CONFIRM_SIGNIN: |
| 870 tutorial_view = CreateSigninConfirmationView(); | 870 tutorial_view = CreateSigninConfirmationView(); |
| 871 break; | 871 break; |
| 872 case profiles::TUTORIAL_MODE_SHOW_ERROR: | 872 case profiles::TUTORIAL_MODE_SHOW_ERROR: |
| 873 // TODO(guohui): not implemented yet. | 873 // TODO(guohui): not implemented yet. |
| 874 NOTREACHED(); | 874 NOTREACHED(); |
| 875 } | 875 } |
| 876 } else { | 876 } else { |
| 877 current_profile_accounts = CreateCurrentProfileAccountsView(item); | 877 current_profile_accounts = CreateCurrentProfileAccountsView(item); |
| 878 } | 878 } |
| 879 } else { | 879 } else { |
| 880 other_profiles.push_back(i); | 880 other_profiles.push_back(i); |
| 881 } | 881 } |
| 882 } | 882 } |
| 883 | 883 |
| 884 if (tutorial_view) { | 884 if (tutorial_view) { |
| 885 // TODO(mlerman): update UMA stats for the new tutorial. | 885 // TODO(mlerman): update UMA stats for the new tutorial. |
| 886 layout->StartRow(1, 0); | 886 layout->StartRow(1, 0); |
| 887 layout->AddView(tutorial_view); | 887 layout->AddView(tutorial_view); |
| 888 } else { |
| 889 tutorial_mode_ = profiles::TUTORIAL_MODE_NONE; |
| 888 } | 890 } |
| 889 | 891 |
| 890 if (!current_profile_view) { | 892 if (!current_profile_view) { |
| 891 // Guest windows don't have an active profile. | 893 // Guest windows don't have an active profile. |
| 892 current_profile_view = CreateGuestProfileView(); | 894 current_profile_view = CreateGuestProfileView(); |
| 893 option_buttons_view = CreateOptionsView(false); | 895 option_buttons_view = CreateOptionsView(false); |
| 894 } | 896 } |
| 895 | 897 |
| 896 layout->StartRow(1, 0); | 898 layout->StartRow(1, 0); |
| 897 layout->AddView(current_profile_view); | 899 layout->AddView(current_profile_view); |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1524 IncognitoModePrefs::GetAvailability(browser_->profile()->GetPrefs()) != | 1526 IncognitoModePrefs::GetAvailability(browser_->profile()->GetPrefs()) != |
| 1525 IncognitoModePrefs::DISABLED; | 1527 IncognitoModePrefs::DISABLED; |
| 1526 return incognito_available && !browser_->profile()->IsGuestSession(); | 1528 return incognito_available && !browser_->profile()->IsGuestSession(); |
| 1527 } | 1529 } |
| 1528 | 1530 |
| 1529 void ProfileChooserView::PostActionPerformed( | 1531 void ProfileChooserView::PostActionPerformed( |
| 1530 ProfileMetrics::ProfileDesktopMenu action_performed) { | 1532 ProfileMetrics::ProfileDesktopMenu action_performed) { |
| 1531 ProfileMetrics::LogProfileDesktopMenu(action_performed, gaia_service_type_); | 1533 ProfileMetrics::LogProfileDesktopMenu(action_performed, gaia_service_type_); |
| 1532 gaia_service_type_ = signin::GAIA_SERVICE_TYPE_NONE; | 1534 gaia_service_type_ = signin::GAIA_SERVICE_TYPE_NONE; |
| 1533 } | 1535 } |
| OLD | NEW |