Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3695)

Unified Diff: chrome/browser/ui/startup/startup_tab_provider.cc

Issue 2625793002: Fix the logic that determines when to show the Win 10 promo page. (Closed)
Patch Set: Fix comment Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « chrome/browser/ui/startup/startup_tab_provider.h ('k') | chrome/browser/ui/startup/startup_tab_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698