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

Side by Side 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: Rebase comments add braces 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/startup/startup_tab_provider.h" 5 #include "chrome/browser/ui/startup/startup_tab_provider.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "chrome/browser/first_run/first_run.h" 8 #include "chrome/browser/first_run/first_run.h"
9 #include "chrome/browser/profile_resetter/triggered_profile_resetter.h" 9 #include "chrome/browser/profile_resetter/triggered_profile_resetter.h"
10 #include "chrome/browser/profile_resetter/triggered_profile_resetter_factory.h" 10 #include "chrome/browser/profile_resetter/triggered_profile_resetter_factory.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 SigninManagerBase* signin_manager = 43 SigninManagerBase* signin_manager =
44 SigninManagerFactory::GetForProfile(profile); 44 SigninManagerFactory::GetForProfile(profile);
45 bool is_signed_in = signin_manager && signin_manager->IsAuthenticated(); 45 bool is_signed_in = signin_manager && signin_manager->IsAuthenticated();
46 46
47 #if defined(OS_WIN) 47 #if defined(OS_WIN)
48 // Windows 10 has unique onboarding policies and content. 48 // Windows 10 has unique onboarding policies and content.
49 if (base::win::GetVersion() >= base::win::VERSION_WIN10) { 49 if (base::win::GetVersion() >= base::win::VERSION_WIN10) {
50 PrefService* local_state = g_browser_process->local_state(); 50 PrefService* local_state = g_browser_process->local_state();
51 bool has_seen_win10_promo = 51 bool has_seen_win10_promo =
52 local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage); 52 local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage);
53 // The set default browser operation can be disabled by the browser
54 // distribution (e.g. SxS Canary), or by enterprise policy. In these cases,
55 // the Win 10 promo page should not be displayed.
56 bool disabled_by_enterprise_policy =
57 local_state &&
58 local_state->IsManagedPreference(
59 prefs::kDefaultBrowserSettingEnabled) &&
60 !local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled);
61 bool set_default_browser_allowed =
62 !disabled_by_enterprise_policy &&
63 shell_integration::CanSetAsDefaultBrowser();
53 bool is_default_browser = 64 bool is_default_browser =
54 g_browser_process->CachedDefaultWebClientState() == 65 g_browser_process->CachedDefaultWebClientState() ==
55 shell_integration::IS_DEFAULT; 66 shell_integration::IS_DEFAULT;
56 return CheckWin10OnboardingTabPolicy(is_first_run, has_seen_welcome_page, 67 return CheckWin10OnboardingTabPolicy(
57 has_seen_win10_promo, is_signed_in, 68 is_first_run, has_seen_welcome_page, has_seen_win10_promo, is_signed_in,
58 is_default_browser); 69 set_default_browser_allowed, is_default_browser);
59 } 70 }
60 #endif // defined(OS_WIN) 71 #endif // defined(OS_WIN)
61 72
62 return CheckStandardOnboardingTabPolicy(is_first_run, has_seen_welcome_page, 73 return CheckStandardOnboardingTabPolicy(is_first_run, has_seen_welcome_page,
63 is_signed_in); 74 is_signed_in);
64 #endif // defined(OS_CHROMEOS) 75 #endif // defined(OS_CHROMEOS)
65 } 76 }
66 77
67 StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( 78 StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs(
68 StartupBrowserCreator* browser_creator) const { 79 StartupBrowserCreator* browser_creator) const {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 return tabs; 139 return tabs;
129 } 140 }
130 141
131 #if defined(OS_WIN) 142 #if defined(OS_WIN)
132 // static 143 // static
133 StartupTabs StartupTabProviderImpl::CheckWin10OnboardingTabPolicy( 144 StartupTabs StartupTabProviderImpl::CheckWin10OnboardingTabPolicy(
134 bool is_first_run, 145 bool is_first_run,
135 bool has_seen_welcome_page, 146 bool has_seen_welcome_page,
136 bool has_seen_win10_promo, 147 bool has_seen_win10_promo,
137 bool is_signed_in, 148 bool is_signed_in,
149 bool set_default_browser_allowed,
138 bool is_default_browser) { 150 bool is_default_browser) {
139 StartupTabs tabs; 151 StartupTabs tabs;
140 if (!has_seen_win10_promo && !is_default_browser) 152 if (set_default_browser_allowed && !has_seen_win10_promo &&
153 !is_default_browser) {
141 tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false); 154 tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false);
142 else if (!has_seen_welcome_page && !is_signed_in) 155 } else if (!has_seen_welcome_page && !is_signed_in) {
143 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); 156 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false);
157 }
144 return tabs; 158 return tabs;
145 } 159 }
146 #endif 160 #endif
147 161
148 // static 162 // static
149 StartupTabs StartupTabProviderImpl::CheckMasterPrefsTabPolicy( 163 StartupTabs StartupTabProviderImpl::CheckMasterPrefsTabPolicy(
150 bool is_first_run, 164 bool is_first_run,
151 const std::vector<GURL>& first_run_tabs) { 165 const std::vector<GURL>& first_run_tabs) {
152 // Constants: Magic words used by Master Preferences files in place of a URL 166 // Constants: Magic words used by Master Preferences files in place of a URL
153 // host to indicate that internal pages should appear on first run. 167 // host to indicate that internal pages should appear on first run.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 ? net::AppendQueryParameter(url, "text", "faster") 238 ? net::AppendQueryParameter(url, "text", "faster")
225 : url; 239 : url;
226 } 240 }
227 #endif 241 #endif
228 242
229 // static 243 // static
230 GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() { 244 GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() {
231 return GURL( 245 return GURL(
232 chrome::GetSettingsUrl(chrome::kTriggeredResetProfileSettingsSubPage)); 246 chrome::GetSettingsUrl(chrome::kTriggeredResetProfileSettingsSubPage));
233 } 247 }
OLDNEW
« 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