Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: chrome/browser/ui/views/profiles/profile_chooser_view.cc

Issue 435423005: Implement the inline signin confirmation bubble and mirror upgrade tutorial (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 90c45761f6863ac48421d0daf863bbee66533df3..eaa97f49cc90ae616958a1b510b13b5a8e7925b6 100644
--- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc
+++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
@@ -7,6 +7,7 @@
#include "base/prefs/pref_service.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/first_run/first_run.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile_avatar_icon_util.h"
#include "chrome/browser/profiles/profile_info_cache.h"
@@ -24,6 +25,8 @@
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/singleton_tabs.h"
#include "chrome/browser/ui/views/profiles/user_manager_view.h"
+#include "chrome/browser/ui/webui/signin/login_ui_service.h"
+#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "components/signin/core/browser/mutable_profile_oauth2_token_service.h"
@@ -64,13 +67,15 @@ namespace {
const int kFixedMenuWidth = 250;
const int kButtonHeight = 32;
-const int kProfileAvatarTutorialShowMax = 1;
const int kFixedGaiaViewHeight = 400;
const int kFixedGaiaViewWidth = 360;
const int kFixedAccountRemovalViewWidth = 280;
const int kFixedEndPreviewViewWidth = 280;
const int kLargeImageSide = 88;
+// The maximum number of times to show the welcome tutorial for an upgrade user.
+const int kUpgradeWelcomeTutorialShowMax = 1;
+
// Creates a GridLayout with a single column. This ensures that all the child
// views added get auto-expanded to fill the full width of the bubble.
views::GridLayout* CreateSingleColumnLayout(views::View* view, int width) {
@@ -522,14 +527,8 @@ void ProfileChooserView::ResetView() {
open_other_profile_indexes_map_.clear();
delete_account_button_map_.clear();
reauth_account_button_map_.clear();
- tutorial_learn_more_link_ = NULL;
- tutorial_ok_button_ = NULL;
- tutorial_enable_new_profile_management_button_ = NULL;
- tutorial_end_preview_link_ = NULL;
- tutorial_send_feedback_button_ = NULL;
manage_accounts_link_ = NULL;
signin_current_profile_link_ = NULL;
- question_mark_button_ = NULL;
auth_error_email_button_ = NULL;
current_profile_photo_ = NULL;
current_profile_name_ = NULL;
@@ -540,8 +539,11 @@ void ProfileChooserView::ResetView() {
gaia_signin_cancel_button_ = NULL;
remove_account_button_ = NULL;
account_removal_cancel_button_ = NULL;
- end_preview_and_relaunch_button_ = NULL;
- end_preview_cancel_button_ = NULL;
+ tutorial_sync_settings_ok_button_ = NULL;
+ tutorial_sync_settings_link_ = NULL;
+ tutorial_learn_more_link_ = NULL;
+ tutorial_see_whats_new_button_ = NULL;
+ tutorial_not_you_link_ = NULL;
tutorial_mode_ = profiles::TUTORIAL_MODE_NONE;
}
@@ -561,6 +563,13 @@ void ProfileChooserView::Init() {
void ProfileChooserView::OnAvatarMenuChanged(
AvatarMenu* avatar_menu) {
+ if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT ||
+ view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN ||
+ view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT ||
+ view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) {
+ return;
+ }
Roger Tawa OOO till Jul 10th 2014/08/05 16:02:13 Add comment explaining why we ignore these modes?
guohui 2014/08/05 19:27:41 Done.
+
// Refresh the view with the new menu. We can't just update the local copy
// as this may have been triggered by a sign out action, in which case
// the view is being destroyed.
@@ -569,12 +578,12 @@ void ProfileChooserView::OnAvatarMenuChanged(
void ProfileChooserView::OnRefreshTokenAvailable(
const std::string& account_id) {
- // Refresh the account management view when a new account is added to the
- // profile.
if (view_mode_ == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT ||
view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN ||
view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT ||
view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) {
+ if (view_mode_ == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN)
+ tutorial_mode_ = profiles::TUTORIAL_MODE_CONFIRM_SIGNIN;
// The account management UI is only available through the
// --enable-account-consistency flag.
ShowView(switches::IsEnableAccountConsistency() ?
@@ -627,10 +636,6 @@ void ProfileChooserView::ShowView(profiles::BubbleViewMode view_to_display,
layout = CreateSingleColumnLayout(this, kFixedAccountRemovalViewWidth);
sub_view = CreateAccountRemovalView();
break;
- case profiles::BUBBLE_VIEW_MODE_END_PREVIEW:
- layout = CreateSingleColumnLayout(this, kFixedEndPreviewViewWidth);
- sub_view = CreateEndPreviewView();
- break;
default:
layout = CreateSingleColumnLayout(this, kFixedMenuWidth);
sub_view = CreateProfileChooserView(avatar_menu, last_tutorial_mode);
@@ -645,6 +650,11 @@ void ProfileChooserView::ShowView(profiles::BubbleViewMode view_to_display,
void ProfileChooserView::WindowClosing() {
DCHECK_EQ(profile_bubble_, this);
profile_bubble_ = NULL;
+
+ if (tutorial_mode_ == profiles::TUTORIAL_MODE_CONFIRM_SIGNIN) {
+ LoginUIServiceFactory::GetForProfile(browser_->profile())->
+ SyncConfirmationUIClosed(false /* configure_sync_first */);
+ }
}
void ProfileChooserView::ButtonPressed(views::Button* sender,
@@ -668,21 +678,14 @@ void ProfileChooserView::ButtonPressed(views::Button* sender,
PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_LOCK);
} else if (sender == auth_error_email_button_) {
ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH, avatar_menu_.get());
- } else if (sender == tutorial_ok_button_) {
- // If the user manually dismissed the tutorial, never show it again by
- // setting the number of times shown to the maximum plus 1, so that later we
- // could distinguish between the dismiss case and the case when the tutorial
- // is indeed shown for the maximum number of times.
- browser_->profile()->GetPrefs()->SetInteger(
- prefs::kProfileAvatarTutorialShown, kProfileAvatarTutorialShowMax + 1);
-
- ProfileMetrics::LogProfileUpgradeEnrollment(
- ProfileMetrics::PROFILE_ENROLLMENT_CLOSE_WELCOME_CARD);
+ } else if (sender == tutorial_sync_settings_ok_button_) {
+ LoginUIServiceFactory::GetForProfile(browser_->profile())->
+ SyncConfirmationUIClosed(false /* configure_sync_first */);
+ tutorial_mode_ = profiles::TUTORIAL_MODE_NONE;
ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get());
- } else if (sender == tutorial_enable_new_profile_management_button_) {
- ProfileMetrics::LogProfileUpgradeEnrollment(
- ProfileMetrics::PROFILE_ENROLLMENT_ACCEPT_NEW_PROFILE_MGMT);
- profiles::EnableNewProfileManagementPreview(browser_->profile());
+ } else if (sender == tutorial_see_whats_new_button_) {
+ chrome::ShowUserManagerWithTutorial(
+ profiles::USER_MANAGER_TUTORIAL_OVERVIEW);
} else if (sender == remove_account_button_) {
RemoveAccount();
} else if (sender == account_removal_cancel_button_) {
@@ -699,20 +702,6 @@ void ProfileChooserView::ButtonPressed(views::Button* sender,
ShowView(account_management_available ?
profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT :
profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get());
- } else if (sender == question_mark_button_) {
- tutorial_mode_ = profiles::TUTORIAL_MODE_SEND_FEEDBACK;
- ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get());
- } else if (sender == tutorial_send_feedback_button_) {
- ProfileMetrics::LogProfileUpgradeEnrollment(
- ProfileMetrics::PROFILE_ENROLLMENT_SEND_FEEDBACK);
- chrome::OpenFeedbackDialog(browser_);
- } else if (sender == end_preview_and_relaunch_button_) {
- ProfileMetrics::LogProfileUpgradeEnrollment(
- ProfileMetrics::PROFILE_ENROLLMENT_DISABLE_NEW_PROFILE_MGMT);
- profiles::DisableNewProfileManagementPreview(browser_->profile());
- } else if (sender == end_preview_cancel_button_) {
- tutorial_mode_ = profiles::TUTORIAL_MODE_SEND_FEEDBACK;
- ShowView(profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER, avatar_menu_.get());
} else if (current_profile_photo_ &&
sender == current_profile_photo_->change_photo_button()) {
avatar_menu_->EditProfile(avatar_menu_->GetActiveProfileIndex());
@@ -773,9 +762,11 @@ void ProfileChooserView::LinkClicked(views::Link* sender, int event_flags) {
} else if (sender == add_account_link_) {
ShowView(profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT, avatar_menu_.get());
PostActionPerformed(ProfileMetrics::PROFILE_DESKTOP_MENU_ADD_ACCT);
+ } else if (sender == tutorial_sync_settings_link_) {
+ LoginUIServiceFactory::GetForProfile(browser_->profile())->
+ SyncConfirmationUIClosed(true /* configure_sync_first */);
Roger Tawa OOO till Jul 10th 2014/08/05 16:02:13 Do you need to reset the tutorial mode to none her
guohui 2014/08/05 19:27:41 Done.
} else if (sender == tutorial_learn_more_link_) {
- ProfileMetrics::LogProfileUpgradeEnrollment(
- ProfileMetrics::PROFILE_ENROLLMENT_LAUNCH_LEARN_MORE);
+ // TODO(mlerman): update the UMA stats.
// TODO(guohui): update |learn_more_url| once it is decided.
const GURL lear_more_url("https://support.google.com/chrome/?hl=en#to");
chrome::NavigateParams params(
@@ -785,8 +776,8 @@ void ProfileChooserView::LinkClicked(views::Link* sender, int event_flags) {
params.disposition = NEW_FOREGROUND_TAB;
chrome::Navigate(&params);
} else {
- DCHECK(sender == tutorial_end_preview_link_);
- ShowView(profiles::BUBBLE_VIEW_MODE_END_PREVIEW, avatar_menu_.get());
+ DCHECK(sender == tutorial_not_you_link_);
+ // TODO(guohui): show a "not XXX" view.
}
}
@@ -853,12 +844,19 @@ views::View* ProfileChooserView::CreateProfileChooserView(
switches::IsNewProfileManagement() && item.signed_in);
current_profile_view = CreateCurrentProfileView(item, false);
if (view_mode_ == profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER) {
- if (is_enable_account_consistency) {
- tutorial_view =
- last_tutorial_mode == profiles::TUTORIAL_MODE_SEND_FEEDBACK ?
- CreateSendPreviewFeedbackView() :
- CreatePreviewEnabledTutorialView(
- item, last_tutorial_mode == profiles::TUTORIAL_MODE_WELCOME);
+ switch (last_tutorial_mode) {
+ case profiles::TUTORIAL_MODE_NONE:
+ case profiles::TUTORIAL_MODE_WELCOME_UPGRADE:
+ tutorial_view = CreateWelcomeUpgradeTutorialViewIfNeeded(
+ last_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:
+ // TODO(guohui): not implemented yet.
+ NOTREACHED();
}
} else {
current_profile_accounts = CreateCurrentProfileAccountsView(item);
@@ -921,49 +919,6 @@ views::View* ProfileChooserView::CreateProfileChooserView(
return view;
}
-views::View* ProfileChooserView::CreatePreviewEnabledTutorialView(
- const AvatarMenu::Item& current_avatar_item,
- bool tutorial_shown) {
- if (!switches::IsNewProfileManagementPreviewEnabled())
- return NULL;
-
- 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 > kProfileAvatarTutorialShowMax)
- return NULL;
-
- if (!tutorial_shown) {
- if (show_count == kProfileAvatarTutorialShowMax)
- return NULL;
- profile->GetPrefs()->SetInteger(
- prefs::kProfileAvatarTutorialShown, show_count + 1);
- }
-
- return CreateTutorialView(
- profiles::TUTORIAL_MODE_WELCOME,
- l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_TITLE),
- l10n_util::GetStringUTF16(
- IDS_PROFILES_PREVIEW_ENABLED_TUTORIAL_CONTENT_TEXT),
- l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE),
- l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON),
- &tutorial_learn_more_link_,
- &tutorial_ok_button_);
-}
-
-views::View* ProfileChooserView::CreateSendPreviewFeedbackView() {
- return CreateTutorialView(
- profiles::TUTORIAL_MODE_SEND_FEEDBACK,
- l10n_util::GetStringUTF16(IDS_PROFILES_FEEDBACK_TUTORIAL_TITLE),
- l10n_util::GetStringUTF16(
- IDS_PROFILES_FEEDBACK_TUTORIAL_CONTENT_TEXT),
- l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW),
- l10n_util::GetStringUTF16(IDS_PROFILES_SEND_FEEDBACK_BUTTON),
- &tutorial_end_preview_link_,
- &tutorial_send_feedback_button_);
-}
-
views::View* ProfileChooserView::CreateTutorialView(
profiles::TutorialMode tutorial_mode,
const base::string16& title_text,
@@ -1030,32 +985,7 @@ views::View* ProfileChooserView::CreateTutorialView(
layout->StartRowWithPadding(1, 0, 0, views::kUnrelatedControlVerticalSpacing);
layout->AddView(button_row);
- // Adds a padded caret image at the bottom.
- views::View* padded_caret_view = new views::View();
- views::GridLayout* padded_caret_layout =
- new views::GridLayout(padded_caret_view);
- views::ColumnSet* padded_columns = padded_caret_layout->AddColumnSet(0);
- padded_columns->AddPaddingColumn(0, views::kButtonHEdgeMarginNew);
- padded_columns->AddColumn(views::GridLayout::LEADING,
- views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0);
- padded_caret_view->SetLayoutManager(padded_caret_layout);
-
- views::ImageView* caret_image_view = new views::ImageView();
- ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
- caret_image_view->SetImage(
- *rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_CARET));
-
- padded_caret_layout->StartRow(1, 0);
- padded_caret_layout->AddView(caret_image_view);
-
- views::View* view_with_caret = new views::View();
- views::GridLayout* layout_with_caret =
- CreateSingleColumnLayout(view_with_caret, kFixedMenuWidth);
- layout_with_caret->StartRow(1, 0);
- layout_with_caret->AddView(view);
- layout_with_caret->StartRow(1, 0);
- layout_with_caret->AddView(padded_caret_view);
- return view_with_caret;
+ return view;
}
views::View* ProfileChooserView::CreateCurrentProfileView(
@@ -1079,22 +1009,6 @@ views::View* ProfileChooserView::CreateCurrentProfileView(
profile_icon_container->AddChildView(current_profile_photo_);
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
- if (switches::IsNewProfileManagementPreviewEnabled()) {
- question_mark_button_ = new views::ImageButton(this);
- question_mark_button_->SetImageAlignment(
- views::ImageButton::ALIGN_LEFT, views::ImageButton::ALIGN_MIDDLE);
- question_mark_button_->SetImage(views::ImageButton::STATE_NORMAL,
- rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_QUESTION_STABLE));
- question_mark_button_->SetImage(views::ImageButton::STATE_HOVERED,
- rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_QUESTION_HOVER));
- question_mark_button_->SetImage(views::ImageButton::STATE_PRESSED,
- rb->GetImageSkiaNamed(IDR_ICON_PROFILES_MENU_QUESTION_SELECT));
- gfx::Size preferred_size = question_mark_button_->GetPreferredSize();
- question_mark_button_->SetBounds(
- 0, 0, preferred_size.width(), preferred_size.height());
- profile_icon_container->AddChildView(question_mark_button_);
- }
-
if (browser_->profile()->IsSupervised()) {
views::ImageView* supervised_icon = new views::ImageView();
supervised_icon->SetImage(
@@ -1159,9 +1073,8 @@ views::View* ProfileChooserView::CreateCurrentProfileView(
}
}
} else {
- SigninManagerBase* signin_manager =
- SigninManagerFactory::GetForProfile(
- browser_->profile()->GetOriginalProfile());
+ SigninManager* signin_manager = SigninManagerFactory::GetForProfile(
+ browser_->profile()->GetOriginalProfile());
if (signin_manager->IsSigninAllowed()) {
views::Label* promo = new views::Label(
l10n_util::GetStringUTF16(IDS_PROFILES_SIGNIN_PROMO));
@@ -1487,49 +1400,52 @@ views::View* ProfileChooserView::CreateAccountRemovalView() {
kFixedAccountRemovalViewWidth);
}
-views::View* ProfileChooserView::CreateNewProfileManagementPreviewView() {
- return CreateTutorialView(
- profiles::TUTORIAL_MODE_ENABLE_PREVIEW,
- l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_TITLE),
- l10n_util::GetStringUTF16(IDS_PROFILES_PREVIEW_TUTORIAL_CONTENT_TEXT),
- l10n_util::GetStringUTF16(IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE),
- l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_TRY_BUTTON),
- &tutorial_learn_more_link_,
- &tutorial_enable_new_profile_management_button_);
-}
+views::View* ProfileChooserView::CreateWelcomeUpgradeTutorialViewIfNeeded(
+ bool tutorial_shown, const AvatarMenu::Item& avatar_item){
+ if (first_run::IsChromeFirstRun())
+ return NULL;
-views::View* ProfileChooserView::CreateEndPreviewView() {
- views::View* view = new views::View();
- views::GridLayout* layout = CreateSingleColumnLayout(
- view, kFixedAccountRemovalViewWidth - 2 * views::kButtonHEdgeMarginNew);
- layout->SetInsets(0,
- views::kButtonHEdgeMarginNew,
- views::kButtonVEdgeMarginNew,
- views::kButtonHEdgeMarginNew);
+ Profile* profile = browser_->profile();
+ if (!avatar_item.signed_in) {
+ profile->GetPrefs()->SetInteger(
+ prefs::kProfileAvatarTutorialShown, kUpgradeWelcomeTutorialShowMax + 1);
+ return NULL;
+ }
- // Adds main text.
- views::Label* content_label = new views::Label(
- l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW_TEXT));
- content_label->SetMultiLine(true);
- content_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
- const gfx::FontList& small_font_list =
- rb->GetFontList(ui::ResourceBundle::SmallFont);
- content_label->SetFontList(small_font_list);
- layout->StartRowWithPadding(1, 0, 0, views::kUnrelatedControlVerticalSpacing);
- layout->AddView(content_label);
+ const int show_count = profile->GetPrefs()->GetInteger(
+ prefs::kProfileAvatarTutorialShown);
+ // Do not show the tutorial if user has dismissed it.
+ if (show_count > kUpgradeWelcomeTutorialShowMax)
+ return NULL;
- // Adds button.
- end_preview_and_relaunch_button_ = new views::BlueButton(
- this, l10n_util::GetStringUTF16(IDS_PROFILES_END_PREVIEW_AND_RELAUNCH));
- end_preview_and_relaunch_button_->SetHorizontalAlignment(
- gfx::ALIGN_CENTER);
- layout->StartRowWithPadding(
- 1, 0, 0, views::kUnrelatedControlVerticalSpacing);
- layout->AddView(end_preview_and_relaunch_button_);
-
- TitleCard* title_card = new TitleCard(
- IDS_PROFILES_END_PREVIEW, this, &end_preview_cancel_button_);
- return TitleCard::AddPaddedTitleCard(
- view, title_card, kFixedAccountRemovalViewWidth);
+ if (!tutorial_shown) {
+ if (show_count == kUpgradeWelcomeTutorialShowMax)
+ return NULL;
+ profile->GetPrefs()->SetInteger(
+ prefs::kProfileAvatarTutorialShown, show_count + 1);
+ }
+
+ return CreateTutorialView(
+ profiles::TUTORIAL_MODE_WELCOME_UPGRADE,
+ l10n_util::GetStringFUTF16(
+ IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_TITLE, avatar_item.name),
+ l10n_util::GetStringUTF16(
+ IDS_PROFILES_WELCOME_UPGRADE_TUTORIAL_CONTENT_TEXT),
+ l10n_util::GetStringFUTF16(
+ IDS_PROFILES_TUTORIAL_NOT_YOU_LINK, avatar_item.name),
+ l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_WHATS_NEW_BUTTON),
+ &tutorial_not_you_link_,
+ &tutorial_see_whats_new_button_);
+}
+
+views::View* ProfileChooserView::CreateSigninConfirmationView(){
+ return CreateTutorialView(
+ profiles::TUTORIAL_MODE_CONFIRM_SIGNIN,
+ l10n_util::GetStringUTF16(IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_TITLE),
+ l10n_util::GetStringUTF16(
+ IDS_PROFILES_CONFIRM_SIGNIN_TUTORIAL_CONTENT_TEXT),
+ l10n_util::GetStringUTF16(IDS_PROFILES_SYNC_SETTINGS_LINK),
+ l10n_util::GetStringUTF16(IDS_PROFILES_TUTORIAL_OK_BUTTON),
+ &tutorial_sync_settings_link_,
+ &tutorial_sync_settings_ok_button_);
}

Powered by Google App Engine
This is Rietveld 408576698