| Index: chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view.cc b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| index f55258026ec657bf0ba3466211ae3fa8ea3bc099..3f1646f669abe5752d6afb4e3453a01f02eb836b 100644
|
| --- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| +++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| @@ -491,7 +491,7 @@ void ProfileChooserView::ShowBubble(
|
| // It has to happen here to prevent the view system from creating an empty
|
| // container.
|
| if (view_mode == profiles::BUBBLE_VIEW_MODE_FAST_PROFILE_CHOOSER &&
|
| - profiles::HasProfileSwitchTargets(browser->profile())) {
|
| + !profiles::HasProfileSwitchTargets(browser->profile())) {
|
| return;
|
| }
|
|
|
| @@ -913,20 +913,7 @@ void ProfileChooserView::PopulateCompleteProfileChooserView(
|
| item.signed_in && profiles::IsLockAvailable(browser_->profile()));
|
| current_profile_view = CreateCurrentProfileView(item, false);
|
| if (IsProfileChooser(view_mode_)) {
|
| - switch (tutorial_mode_) {
|
| - case profiles::TUTORIAL_MODE_NONE:
|
| - case profiles::TUTORIAL_MODE_WELCOME_UPGRADE:
|
| - tutorial_view = CreateWelcomeUpgradeTutorialViewIfNeeded(
|
| - tutorial_mode_ == profiles::TUTORIAL_MODE_WELCOME_UPGRADE,
|
| - item);
|
| - break;
|
| - case profiles::TUTORIAL_MODE_CONFIRM_SIGNIN:
|
| - tutorial_view = CreateSigninConfirmationView();
|
| - break;
|
| - case profiles::TUTORIAL_MODE_SHOW_ERROR:
|
| - tutorial_view = CreateSigninErrorView();
|
| - break;
|
| - }
|
| + tutorial_view = CreateTutorialViewIfNeeded(item);
|
| } else {
|
| current_profile_accounts = CreateCurrentProfileAccountsView(item);
|
| }
|
| @@ -1003,10 +990,15 @@ views::View* ProfileChooserView::CreateProfileChooserView(
|
| views::View* view = new views::View();
|
| views::GridLayout* layout = CreateSingleColumnLayout(view, kFixedMenuWidth);
|
|
|
| - if (view_mode_ == profiles::BUBBLE_VIEW_MODE_FAST_PROFILE_CHOOSER)
|
| + if (view_mode_ == profiles::BUBBLE_VIEW_MODE_FAST_PROFILE_CHOOSER) {
|
| PopulateMinimalProfileChooserView(layout, avatar_menu);
|
| - else
|
| + // The user is using right-click switching, no need to tell them about it.
|
| + PrefService* local_state = g_browser_process->local_state();
|
| + local_state->SetBoolean(
|
| + prefs::kProfileAvatarRightClickTutorialDismissed, true);
|
| + } else {
|
| PopulateCompleteProfileChooserView(layout, avatar_menu);
|
| + }
|
|
|
| return view;
|
| }
|
| @@ -1019,10 +1011,42 @@ void ProfileChooserView::DismissTutorial() {
|
| signin_ui_util::kUpgradeWelcomeTutorialShowMax + 1);
|
| }
|
|
|
| + if (tutorial_mode_ == profiles::TUTORIAL_MODE_RIGHT_CLICK_SWITCHING) {
|
| + PrefService* local_state = g_browser_process->local_state();
|
| + local_state->SetBoolean(
|
| + prefs::kProfileAvatarRightClickTutorialDismissed, true);
|
| + }
|
| +
|
| tutorial_mode_ = profiles::TUTORIAL_MODE_NONE;
|
| ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get());
|
| }
|
|
|
| +views::View* ProfileChooserView::CreateTutorialViewIfNeeded(
|
| + const AvatarMenu::Item& item) {
|
| + if (tutorial_mode_ == profiles::TUTORIAL_MODE_CONFIRM_SIGNIN)
|
| + return CreateSigninConfirmationView();
|
| +
|
| + if (tutorial_mode_ == profiles::TUTORIAL_MODE_SHOW_ERROR)
|
| + return CreateSigninErrorView();
|
| +
|
| + if (ShouldShowWelcomeUpgradeTutorial()) {
|
| + if (tutorial_mode_ != profiles::TUTORIAL_MODE_WELCOME_UPGRADE) {
|
| + Profile* profile = browser_->profile();
|
| + const int show_count = profile->GetPrefs()->GetInteger(
|
| + prefs::kProfileAvatarTutorialShown);
|
| + profile->GetPrefs()->SetInteger(
|
| + prefs::kProfileAvatarTutorialShown, show_count + 1);
|
| + }
|
| +
|
| + return CreateWelcomeUpgradeTutorialView(item);
|
| + }
|
| +
|
| + if (ShouldShowRightClickTutorialView())
|
| + return CreateRightClickTutorialView();
|
| +
|
| + return nullptr;
|
| +}
|
| +
|
| views::View* ProfileChooserView::CreateTutorialView(
|
| profiles::TutorialMode tutorial_mode,
|
| const base::string16& title_text,
|
| @@ -1572,22 +1596,31 @@ views::View* ProfileChooserView::CreateAccountRemovalView() {
|
| kFixedAccountRemovalViewWidth);
|
| }
|
|
|
| -views::View* ProfileChooserView::CreateWelcomeUpgradeTutorialViewIfNeeded(
|
| - bool tutorial_shown, const AvatarMenu::Item& avatar_item) {
|
| +bool ProfileChooserView::ShouldShowWelcomeUpgradeTutorial() {
|
| Profile* profile = browser_->profile();
|
|
|
| const int show_count = profile->GetPrefs()->GetInteger(
|
| prefs::kProfileAvatarTutorialShown);
|
| // Do not show the tutorial if user has dismissed it.
|
| if (show_count > signin_ui_util::kUpgradeWelcomeTutorialShowMax)
|
| - return NULL;
|
| + return false;
|
|
|
| - if (!tutorial_shown) {
|
| - if (show_count == signin_ui_util::kUpgradeWelcomeTutorialShowMax)
|
| - return NULL;
|
| - profile->GetPrefs()->SetInteger(
|
| - prefs::kProfileAvatarTutorialShown, show_count + 1);
|
| - }
|
| + return tutorial_mode_ == profiles::TUTORIAL_MODE_WELCOME_UPGRADE ||
|
| + show_count != signin_ui_util::kUpgradeWelcomeTutorialShowMax;
|
| +}
|
| +
|
| +bool ProfileChooserView::ShouldShowRightClickTutorialView() {
|
| + PrefService* local_state = g_browser_process->local_state();
|
| + const bool dismissed = local_state->GetBoolean(
|
| + prefs::kProfileAvatarRightClickTutorialDismissed);
|
| +
|
| + // Don't show the tutorial if it's already been dismissed or if right-clicking
|
| + // wouldn't show any targets.
|
| + return !dismissed && profiles::HasProfileSwitchTargets(browser_->profile());
|
| +}
|
| +
|
| +views::View* ProfileChooserView::CreateWelcomeUpgradeTutorialView(
|
| + const AvatarMenu::Item& avatar_item) {
|
| ProfileMetrics::LogProfileNewAvatarMenuUpgrade(
|
| ProfileMetrics::PROFILE_AVATAR_MENU_UPGRADE_VIEW);
|
|
|
| @@ -1643,6 +1676,19 @@ views::View* ProfileChooserView::CreateSigninErrorView() {
|
| &tutorial_close_button_);
|
| }
|
|
|
| +views::View* ProfileChooserView::CreateRightClickTutorialView() {
|
| + return CreateTutorialView(
|
| + profiles::TUTORIAL_MODE_RIGHT_CLICK_SWITCHING,
|
| + l10n_util::GetStringUTF16(IDS_PROFILES_RIGHT_CLICK_TUTORIAL_TITLE),
|
| + l10n_util::GetStringUTF16(IDS_PROFILES_RIGHT_CLICK_TUTORIAL_CONTENT_TEXT),
|
| + base::string16(),
|
| + l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON),
|
| + false,
|
| + nullptr,
|
| + &tutorial_sync_settings_ok_button_,
|
| + nullptr);
|
| +}
|
| +
|
| views::View* ProfileChooserView::CreateSwitchUserView() {
|
| views::View* view = new views::View();
|
| views::GridLayout* layout = CreateSingleColumnLayout(
|
|
|