Chromium Code Reviews| Index: chrome/browser/ui/sync/one_click_signin_helper.cc |
| diff --git a/chrome/browser/ui/sync/one_click_signin_helper.cc b/chrome/browser/ui/sync/one_click_signin_helper.cc |
| index 7e4904b73b579cd2dac920db23a458a6477f4c36..48df587049d4c1ae94821e7f66cdc55a65815843 100644 |
| --- a/chrome/browser/ui/sync/one_click_signin_helper.cc |
| +++ b/chrome/browser/ui/sync/one_click_signin_helper.cc |
| @@ -30,6 +30,7 @@ |
| #include "chrome/browser/profiles/profile_info_cache.h" |
| #include "chrome/browser/profiles/profile_io_data.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| +#include "chrome/browser/search/search.h" |
| #include "chrome/browser/signin/signin_manager.h" |
| #include "chrome/browser/signin/signin_manager_factory.h" |
| #include "chrome/browser/signin/signin_names_io_thread.h" |
| @@ -122,6 +123,10 @@ void LogHistogramValue(SyncPromoUI::Source source, int action) { |
| UMA_HISTOGRAM_ENUMERATION("Signin.AppLauncherActions", action, |
| one_click_signin::HISTOGRAM_MAX); |
| break; |
| + case SyncPromoUI::SOURCE_APPS_PAGE_LINK: |
| + UMA_HISTOGRAM_ENUMERATION("Signin.AppsPageLinkActions", action, |
| + one_click_signin::HISTOGRAM_MAX); |
| + break; |
| default: |
| NOTREACHED() << "Invalid Source"; |
| return; |
| @@ -223,8 +228,8 @@ void ClearPendingEmailOnIOThread(content::ResourceContext* context) { |
| } |
| // Determines the source of the sign in and the continue URL. Its either one |
| -// of the known sign in access point (first run, NTP, menu, settings) or its |
| -// an implicit sign in via another Google property. In the former case, |
| +// of the known sign in access point (first run, NTP, Apps page, menu, settings) |
| +// or its an implicit sign in via another Google property. In the former case, |
| // "service" is also checked to make sure its "chromiumsync". |
| SyncPromoUI::Source GetSigninSource(const GURL& url, GURL* continue_url) { |
| std::string value; |
| @@ -865,8 +870,8 @@ void OneClickSigninHelper::ShowInfoBarIfPossible(net::URLRequest* request, |
| } |
| } |
| - // If this is an explicit sign in (i.e., first run, NTP, menu,settings) |
| - // then force the auto accept type to explicit. |
| + // If this is an explicit sign in (i.e., first run, NTP, Apps page, menu, |
| + // settings) then force the auto accept type to explicit. |
| source = GetSigninSource(request->url(), &continue_url); |
| if (source != SyncPromoUI::SOURCE_UNKNOWN) |
| auto_accept = AUTO_ACCEPT_EXPLICIT; |
| @@ -955,10 +960,10 @@ void OneClickSigninHelper::ShowInfoBarUIThread( |
| helper->continue_url_ = continue_url; |
| } |
| -void OneClickSigninHelper::RedirectToNTP(bool show_bubble) { |
| - VLOG(1) << "OneClickSigninHelper::RedirectToNTP"; |
| +void OneClickSigninHelper::RedirectToAppsPage(bool show_bubble) { |
| + VLOG(1) << "OneClickSigninHelper::RedirectToAppsPage"; |
|
Roger Tawa OOO till Jul 10th
2013/03/22 14:23:23
Please rename to RedirectToNtpOrAppsPage
kmadhusu
2013/03/22 15:03:09
Done.
|
| - // Redirect to NTP with sign in bubble visible. |
| + // Redirect to NTP/Apps page with sign in bubble visible. |
| content::WebContents* contents = web_contents(); |
| Profile* profile = |
| Profile::FromBrowserContext(contents->GetBrowserContext()); |
| @@ -968,12 +973,18 @@ void OneClickSigninHelper::RedirectToNTP(bool show_bubble) { |
| pref_service->SetString(prefs::kSyncPromoErrorMessage, error_message_); |
| } |
| - content::OpenURLParams params( |
| - GURL(chrome::kChromeUINewTabURL), |
| - content::Referrer(), |
| - CURRENT_TAB, |
| - content::PAGE_TRANSITION_AUTO_TOPLEVEL, |
| - false); |
| + GURL url(chrome::kChromeUINewTabURL); |
| + if ((source_ == SyncPromoUI::SOURCE_APPS_PAGE_LINK) || |
| + (source_ == SyncPromoUI::SOURCE_MENU && |
|
Roger Tawa OOO till Jul 10th
2013/03/22 14:23:23
Why does the menu redirect to the apps page?
kmadhusu
2013/03/22 15:03:09
If there is an error during "signing to chrome" fr
Roger Tawa OOO till Jul 10th
2013/03/22 20:44:01
if that is the case with instant extended, then I'
kmadhusu
2013/03/22 21:29:06
Done.
|
| + chrome::search::IsInstantExtendedAPIEnabled())) { |
| + // Navigate to Apps page. |
| + url = GURL(chrome::kChromeUIAppsURL); |
| + } |
| + content::OpenURLParams params(url, |
| + content::Referrer(), |
| + CURRENT_TAB, |
| + content::PAGE_TRANSITION_AUTO_TOPLEVEL, |
| + false); |
| contents->OpenURL(params); |
| error_message_.clear(); |
| @@ -1002,7 +1013,6 @@ void OneClickSigninHelper::CleanTransientState() { |
| email_.clear(); |
| password_.clear(); |
| auto_accept_ = AUTO_ACCEPT_NONE; |
| - source_ = SyncPromoUI::SOURCE_UNKNOWN; |
|
Roger Tawa OOO till Jul 10th
2013/03/22 14:23:23
This method is meant to reset the state of OneClic
kmadhusu
2013/03/22 15:03:09
OneClickSigninHelper::SigninSuccess() is called wh
Roger Tawa OOO till Jul 10th
2013/03/22 20:44:01
Once you fix RedirectToNtpOrAppsPage() to no longe
kmadhusu
2013/03/22 21:29:06
Done.
|
| switched_to_advanced_ = false; |
| original_source_ = SyncPromoUI::SOURCE_UNKNOWN; |
| continue_url_ = GURL(); |
| @@ -1056,7 +1066,7 @@ void OneClickSigninHelper::DidStopLoading( |
| // explicit sign ins. |
| if (!error_message_.empty() && auto_accept_ == AUTO_ACCEPT_EXPLICIT) { |
| VLOG(1) << "OneClickSigninHelper::DidStopLoading: error=" << error_message_; |
| - RedirectToNTP(true); |
| + RedirectToAppsPage(true); |
| return; |
| } |
| @@ -1088,7 +1098,7 @@ void OneClickSigninHelper::DidStopLoading( |
| std::string unused_value; |
| if (net::GetValueForKeyInQuery(url, "ntp", &unused_value)) { |
| SyncPromoUI::SetUserSkippedSyncPromo(profile); |
| - RedirectToNTP(false); |
| + RedirectToAppsPage(false); |
| } |
| return; |
| } |
| @@ -1122,6 +1132,7 @@ void OneClickSigninHelper::DidStopLoading( |
| VLOG(1) << "OneClickSigninHelper::DidStopLoading: invalid url='" |
| << url.spec() |
| << "' expected continue url=" << continue_url_; |
| + source_ = SyncPromoUI::SOURCE_UNKNOWN; |
| CleanTransientState(); |
| return; |
| } |
| @@ -1240,14 +1251,13 @@ void OneClickSigninHelper::DidStopLoading( |
| } |
| // If this explicit sign in is not from settings page/webstore, show the |
| - // NTP after sign in completes. In the case of the settings page, it will |
| - // get closed by SyncSetupHandler. In the case of webstore, it will |
| - // redirect back to webstore. |
| + // NTP/Apps page after sign in completes. In the case of the settings |
| + // page, it will get closed by SyncSetupHandler. In the case of webstore, |
| + // it will redirect back to webstore. |
| if (source_ != SyncPromoUI::SOURCE_SETTINGS && |
| source_ != SyncPromoUI::SOURCE_WEBSTORE_INSTALL) { |
| signin_tracker_.reset(new SigninTracker(profile, this)); |
| - // Show the NTP, but don't show the signed-in bubble yet. |
| - RedirectToNTP(false); |
| + RedirectToAppsPage(false); |
| } |
| break; |
| } |
| @@ -1311,13 +1321,16 @@ void OneClickSigninHelper::SigninFailed(const GoogleServiceAuthError& error) { |
| break; |
| } |
| } |
| - |
| - RedirectToNTP(true); |
| - signin_tracker_.reset(); |
| + RedirectOnSigninComplete(); |
| } |
| void OneClickSigninHelper::SigninSuccess() { |
| - // Signed in now, so show the signed-in bubble. |
| - RedirectToNTP(true); |
| + RedirectOnSigninComplete(); |
| +} |
| + |
| +void OneClickSigninHelper::RedirectOnSigninComplete() { |
| + // Show the result in the sign-in bubble. |
| + RedirectToAppsPage(true); |
| signin_tracker_.reset(); |
| + source_ = SyncPromoUI::SOURCE_UNKNOWN; |
| } |