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 5d4206cd68ed3fc64e1485f684ecfddf322f0ccc..4b9c540ef8e99e2376bf2476c5210d8ba3ab6d6b 100644 |
| --- a/chrome/browser/ui/startup/startup_tab_provider.cc |
| +++ b/chrome/browser/ui/startup/startup_tab_provider.cc |
| @@ -8,17 +8,22 @@ |
| #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 "net/base/url_util.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #if defined(OS_WIN) |
| #include "base/win/windows_version.h" |
| #endif |
| -StartupTabs StartupTabProviderImpl::GetOnboardingTabs() const { |
| +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 +36,17 @@ 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); |
| + SigninManagerBase* signin_manager = |
| + SigninManagerFactory::GetForProfile(profile); |
| + bool is_signed_in = signin_manager && signin_manager->IsAuthenticated(); |
| + |
|
Peter Kasting
2016/11/20 07:32:09
Nit: I'd probably remove this blank line since the
tmartino
2016/11/21 00:27:34
Done
|
| + return CheckStandardOnboardingTabPolicy(first_run::IsChromeFirstRun(), |
| + has_seen_welcome, is_signed_in); |
| } |
| StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( |
| @@ -77,10 +92,12 @@ StartupTabs StartupTabProviderImpl::GetNewTabPageTabs( |
| // static |
| StartupTabs StartupTabProviderImpl::CheckStandardOnboardingTabPolicy( |
| - bool is_first_run) { |
| + bool is_first_run, |
| + bool has_seen_welcome, |
| + bool is_signed_in) { |
| StartupTabs tabs; |
| - if (is_first_run) |
| - tabs.emplace_back(GetWelcomePageUrl(), false); |
| + if (!has_seen_welcome && !is_signed_in) |
| + tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |
| return tabs; |
| } |
| @@ -100,7 +117,7 @@ StartupTabs StartupTabProviderImpl::CheckMasterPrefsTabPolicy( |
| if (url.host_piece() == kNewTabUrlHost) |
| url = GURL(chrome::kChromeUINewTabURL); |
| else if (url.host_piece() == kWelcomePageUrlHost) |
| - url = GetWelcomePageUrl(); |
| + url = GetWelcomePageUrl(false); |
| tabs.emplace_back(url, false); |
| } |
| } |
| @@ -145,8 +162,11 @@ StartupTabs StartupTabProviderImpl::CheckNewTabPageTabPolicy( |
| } |
| // static |
| -GURL StartupTabProviderImpl::GetWelcomePageUrl() { |
| - return GURL(chrome::kChromeUIWelcomeURL); |
| +GURL StartupTabProviderImpl::GetWelcomePageUrl(bool use_later_run_variant) { |
| + GURL url(chrome::kChromeUIWelcomeURL); |
| + return use_later_run_variant |
| + ? net::AppendQueryParameter(url, "variant", "everywhere") |
| + : url; |
| } |
| // static |