Chromium Code Reviews| Index: chrome/browser/ui/startup/startup_tab_provider.cc |
| diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc |
| index 7270275644e1d171f783803ac589aea2d65b709f..6b0beb9ddc87c86cc35a877b3100858d05ca6ad6 100644 |
| --- a/chrome/browser/ui/startup/startup_tab_provider.cc |
| +++ b/chrome/browser/ui/startup/startup_tab_provider.cc |
| @@ -8,17 +8,25 @@ |
| #include "chrome/browser/first_run/first_run.h" |
| #include "chrome/browser/profile_resetter/triggered_profile_resetter.h" |
| #include "chrome/browser/profile_resetter/triggered_profile_resetter_factory.h" |
| +#include "chrome/browser/signin/signin_manager_factory.h" |
| #include "chrome/browser/ui/chrome_pages.h" |
| #include "chrome/browser/ui/tabs/pinned_tab_codec.h" |
| +#include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| #include "chrome/grit/locale_settings.h" |
| +#include "components/prefs/pref_service.h" |
| +#include "components/signin/core/browser/signin_manager.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #if defined(OS_WIN) |
| #include "base/win/windows_version.h" |
| #endif |
| -StartupTabs StartupTabProviderImpl::GetOnboardingTabs() const { |
| +namespace { |
| +constexpr char kVersionWelcomeIntroduced[] = "55.0.0.0"; |
|
Peter Kasting
2016/11/10 05:26:43
I'm not a big fan of a version-number-based check
tmartino
2016/11/15 00:16:30
Agreed on the structural changes, but I've looked
Peter Kasting
2016/11/15 00:32:06
Sorry, I think you parsed the phrase differently t
|
| +} // namespace |
| + |
| +StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { |
| #if defined(OS_WIN) |
| // Windows 10 has unique onboarding policies and content. |
| if (base::win::GetVersion() >= base::win::VERSION_WIN10) { |
| @@ -31,7 +39,19 @@ StartupTabs StartupTabProviderImpl::GetOnboardingTabs() const { |
| } |
| #endif |
| - return CheckStandardOnboardingTabPolicy(first_run::IsChromeFirstRun()); |
| + if (!profile) |
| + return StartupTabs(); |
| + |
| + PrefService* prefs = profile->GetPrefs(); |
| + bool has_seen_welcome = prefs && prefs->GetBoolean(prefs::kHasSeenWelcomeUI); |
| + SigninManager* signin_manager = SigninManagerFactory::GetForProfile(profile); |
| + bool is_signed_in = signin_manager && signin_manager->IsAuthenticated(); |
| + bool created_after_welcome_ui = |
| + profile->WasCreatedByVersionOrLater(kVersionWelcomeIntroduced); |
| + |
| + return CheckStandardOnboardingTabPolicy(first_run::IsChromeFirstRun(), |
| + has_seen_welcome, is_signed_in, |
| + created_after_welcome_ui); |
| } |
| StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( |
| @@ -77,10 +97,13 @@ StartupTabs StartupTabProviderImpl::GetNewTabPageTabs( |
| // static |
| StartupTabs StartupTabProviderImpl::CheckStandardOnboardingTabPolicy( |
| - bool is_first_run) { |
| + bool is_first_run, |
| + bool has_seen_welcome, |
| + bool is_signed_in, |
| + bool created_after_welcome_ui) { |
| StartupTabs tabs; |
| - if (is_first_run) |
| - tabs.emplace_back(GetWelcomePageUrl(), false); |
| + if (!has_seen_welcome && created_after_welcome_ui && !is_signed_in) |
| + tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |
| return tabs; |
| } |
| @@ -100,7 +123,7 @@ StartupTabs StartupTabProviderImpl::CheckMasterPrefsTabPolicy( |
| if (url.host() == kNewTabUrlHost) |
| url = GURL(chrome::kChromeUINewTabURL); |
| else if (url.host() == kWelcomePageUrlHost) |
| - url = GetWelcomePageUrl(); |
| + url = GetWelcomePageUrl(false); |
| tabs.emplace_back(url, false); |
| } |
| } |
| @@ -145,8 +168,11 @@ StartupTabs StartupTabProviderImpl::CheckNewTabPageTabPolicy( |
| } |
| // static |
| -GURL StartupTabProviderImpl::GetWelcomePageUrl() { |
| - return GURL(chrome::kChromeUIWelcomeURL); |
| +GURL StartupTabProviderImpl::GetWelcomePageUrl(bool use_later_run_variant) { |
| + std::string url(chrome::kChromeUIWelcomeURL); |
| + if (use_later_run_variant) |
| + url.append("?variant=everywhere"); |
|
Peter Kasting
2016/11/10 05:26:43
Nit: Safer in case someone changes the welcome URL
tmartino
2016/11/15 00:16:30
Done
|
| + return GURL(url); |
| } |
| // static |