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 7ba207290c6578779ebebbf6cb0478b5ab8c1e7e..93968ebd61f14ba26c2e4fb3ac5e254def68ea80 100644 |
| --- a/chrome/browser/ui/startup/startup_tab_provider.cc |
| +++ b/chrome/browser/ui/startup/startup_tab_provider.cc |
| @@ -25,6 +25,22 @@ |
| #include "chrome/browser/shell_integration.h" |
| #endif |
| +namespace { |
| + |
| +// The set default browser operation can be disabled by the browser distribution |
| +// (e.g. SxS Canary), or by enterprise policy. In these cases, the Win 10 promo |
| +// page should not be displayed. |
| +bool IsSetDefaultBrowserAllowed(PrefService* local_state) { |
| + bool disabled_by_enterprise_policy = |
| + local_state && |
| + local_state->IsManagedPreference(prefs::kDefaultBrowserSettingEnabled) && |
| + !local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled); |
| + bool allowed_by_distribution = shell_integration::CanSetAsDefaultBrowser(); |
|
Peter Kasting
2017/01/11 01:06:09
Nit: I'd just inline this below
Patrick Monette
2017/01/11 16:41:20
I inlined the whole function below.
|
| + return !disabled_by_enterprise_policy && allowed_by_distribution; |
| +} |
| + |
| +} // namespace |
| + |
| StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { |
| if (!profile) |
| return StartupTabs(); |
| @@ -43,12 +59,13 @@ StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { |
| PrefService* local_state = g_browser_process->local_state(); |
| bool has_seen_win10_promo = |
| local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage); |
| + bool set_default_browser_allowed = IsSetDefaultBrowserAllowed(local_state); |
|
Peter Kasting
2017/01/11 01:06:09
Nit: I'd just inline this below, or else I'd inlin
Patrick Monette
2017/01/11 16:41:20
Done.
|
| bool is_default_browser = |
| g_browser_process->CachedDefaultWebClientState() == |
| shell_integration::IS_DEFAULT; |
| - return CheckWin10OnboardingTabPolicy(is_first_run, has_seen_welcome_page, |
| - has_seen_win10_promo, is_signed_in, |
| - is_default_browser); |
| + return CheckWin10OnboardingTabPolicy( |
| + is_first_run, has_seen_welcome_page, has_seen_win10_promo, is_signed_in, |
| + set_default_browser_allowed, is_default_browser); |
| } |
| #endif |
| @@ -115,9 +132,11 @@ StartupTabs StartupTabProviderImpl::CheckWin10OnboardingTabPolicy( |
| bool has_seen_welcome_page, |
| bool has_seen_win10_promo, |
| bool is_signed_in, |
| + bool set_default_browser_allowed, |
| bool is_default_browser) { |
| StartupTabs tabs; |
| - if (!has_seen_win10_promo && !is_default_browser) |
| + if (set_default_browser_allowed && !has_seen_win10_promo && |
| + !is_default_browser) |
| tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false); |
| else if (!has_seen_welcome_page && !is_signed_in) |
| tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |