OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |