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); |