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

Unified Diff: chrome/browser/ui/sync/one_click_signin_sync_starter.cc

Issue 471023003: Make sure the new confirmation bubble is always shown upon signin (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased 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/sync/one_click_signin_sync_starter.cc
diff --git a/chrome/browser/ui/sync/one_click_signin_sync_starter.cc b/chrome/browser/ui/sync/one_click_signin_sync_starter.cc
index 157d23b4dcf3204d6457285646d3bedeba4fd7f9..de6db90f27f875ec1efb66650b52adf0d26ef344 100644
--- a/chrome/browser/ui/sync/one_click_signin_sync_starter.cc
+++ b/chrome/browser/ui/sync/one_click_signin_sync_starter.cc
@@ -84,6 +84,7 @@ OneClickSigninSyncStarter::OneClickSigninSyncStarter(
const GURL& continue_url,
Callback sync_setup_completed_callback)
: content::WebContentsObserver(web_contents),
+ profile_(NULL),
start_mode_(start_mode),
desktop_type_(chrome::HOST_DESKTOP_TYPE_NATIVE),
confirmation_required_(confirmation_required),
@@ -93,7 +94,6 @@ OneClickSigninSyncStarter::OneClickSigninSyncStarter(
DCHECK(profile);
DCHECK(web_contents || continue_url.is_empty());
BrowserList::AddObserver(this);
- LoginUIServiceFactory::GetForProfile(profile)->AddObserver(this);
Initialize(profile, browser);
// Policy is enabled, so pass in a callback to do extra policy-related UI
@@ -117,9 +117,15 @@ OneClickSigninSyncStarter::~OneClickSigninSyncStarter() {
void OneClickSigninSyncStarter::Initialize(Profile* profile, Browser* browser) {
DCHECK(profile);
+
+ if (profile_)
+ LoginUIServiceFactory::GetForProfile(profile_)->RemoveObserver(this);
+
profile_ = profile;
browser_ = browser;
+ LoginUIServiceFactory::GetForProfile(profile_)->AddObserver(this);
+
// Cache the parent desktop for the browser, so we can reuse that same
// desktop for any UI we want to display.
if (browser) {
@@ -185,40 +191,15 @@ void OneClickSigninSyncStarter::SigninDialogDelegate::OnCancelSignin() {
void OneClickSigninSyncStarter::SigninDialogDelegate::OnContinueSignin() {
SetUserChoiceHistogram(SIGNIN_CHOICE_CONTINUE);
- if (sync_starter_ != NULL) {
- // If the user signs in from the new avatar bubble, the enterprise
- // confirmation dialog would dismiss the avatar bubble, thus it won't show
- // any confirmation upon sign in completes. This cofirmation dialog already
- // mentions that user data would be synced, thus we just start sync
- // immediately.
-
- // TODO(guohui): add a sync settings link to allow user to configure sync
- // settings before sync starts.
- if (sync_starter_->GetStartSyncMode() == CONFIRM_SYNC_SETTINGS_FIRST)
- sync_starter_->SetStartSyncMode(SYNC_WITH_DEFAULT_SETTINGS);
+ if (sync_starter_ != NULL)
sync_starter_->LoadPolicyWithCachedCredentials();
- }
}
void OneClickSigninSyncStarter::SigninDialogDelegate::OnSigninWithNewProfile() {
SetUserChoiceHistogram(SIGNIN_CHOICE_NEW_PROFILE);
- if (sync_starter_ != NULL) {
- // TODO(guohui): add a sync settings link to allow user to configure sync
- // settings before sync starts.
- if (sync_starter_->GetStartSyncMode() == CONFIRM_SYNC_SETTINGS_FIRST)
- sync_starter_->SetStartSyncMode(SYNC_WITH_DEFAULT_SETTINGS);
+ if (sync_starter_ != NULL)
sync_starter_->CreateNewSignedInProfile();
- }
-}
-
-void OneClickSigninSyncStarter::SetStartSyncMode(StartSyncMode start_mode) {
- start_mode_ = start_mode;
-}
-
-OneClickSigninSyncStarter::StartSyncMode
- OneClickSigninSyncStarter::GetStartSyncMode() {
- return start_mode_;
}
void OneClickSigninSyncStarter::OnRegisteredForPolicy(
@@ -482,6 +463,7 @@ void OneClickSigninSyncStarter::MergeSessionComplete(
}
case CONFIRM_SYNC_SETTINGS_FIRST:
// Blocks sync until the sync settings confirmation UI is closed.
+ DisplayFinalConfirmationBubble(base::string16());
return;
case CONFIGURE_SYNC_FIRST:
ShowSettingsPage(true); // Show sync config UI.
@@ -506,6 +488,16 @@ void OneClickSigninSyncStarter::MergeSessionComplete(
void OneClickSigninSyncStarter::DisplayFinalConfirmationBubble(
const base::string16& custom_message) {
browser_ = EnsureBrowser(browser_, profile_, desktop_type_);
+ // Show the success confirmation message in the new avatar menu if it is
+ // enabled.
+ // TODO(guohui): needs to handle custom messages.
+ if (custom_message.empty() && switches::IsNewAvatarMenu()) {
+ browser_->window()->ShowAvatarBubbleFromAvatarButton(
+ BrowserWindow::AVATAR_BUBBLE_MODE_CONFIRM_SIGNIN,
+ signin::ManageAccountsParams());
+ return;
+ }
+
browser_->window()->ShowOneClickSigninBubble(
BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE,
base::string16(), // No email required - this is not a SAML confirmation.
« no previous file with comments | « chrome/browser/ui/sync/one_click_signin_sync_starter.h ('k') | chrome/browser/ui/views/frame/browser_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698