| 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 25 matching lines...) Expand all Loading... |
| 36 if (!profile) | 36 if (!profile) |
| 37 return StartupTabs(); | 37 return StartupTabs(); |
| 38 | 38 |
| 39 bool is_first_run = first_run::IsChromeFirstRun(); | 39 bool is_first_run = first_run::IsChromeFirstRun(); |
| 40 PrefService* prefs = profile->GetPrefs(); | 40 PrefService* prefs = profile->GetPrefs(); |
| 41 bool has_seen_welcome_page = | 41 bool has_seen_welcome_page = |
| 42 prefs && prefs->GetBoolean(prefs::kHasSeenWelcomePage); | 42 prefs && prefs->GetBoolean(prefs::kHasSeenWelcomePage); |
| 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 bool is_supervised_user = profile->IsSupervised(); |
| 46 | 47 |
| 47 #if defined(OS_WIN) | 48 #if defined(OS_WIN) |
| 48 // Windows 10 has unique onboarding policies and content. | 49 // Windows 10 has unique onboarding policies and content. |
| 49 if (base::win::GetVersion() >= base::win::VERSION_WIN10) { | 50 if (base::win::GetVersion() >= base::win::VERSION_WIN10) { |
| 50 PrefService* local_state = g_browser_process->local_state(); | 51 PrefService* local_state = g_browser_process->local_state(); |
| 51 bool has_seen_win10_promo = | 52 bool has_seen_win10_promo = |
| 52 local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage); | 53 local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage); |
| 53 // The set default browser operation can be disabled by the browser | 54 // 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 // distribution (e.g. SxS Canary), or by enterprise policy. In these cases, |
| 55 // the Win 10 promo page should not be displayed. | 56 // the Win 10 promo page should not be displayed. |
| 56 bool disabled_by_enterprise_policy = | 57 bool disabled_by_enterprise_policy = |
| 57 local_state && | 58 local_state && |
| 58 local_state->IsManagedPreference( | 59 local_state->IsManagedPreference( |
| 59 prefs::kDefaultBrowserSettingEnabled) && | 60 prefs::kDefaultBrowserSettingEnabled) && |
| 60 !local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled); | 61 !local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled); |
| 61 bool set_default_browser_allowed = | 62 bool set_default_browser_allowed = |
| 62 !disabled_by_enterprise_policy && | 63 !disabled_by_enterprise_policy && |
| 63 shell_integration::CanSetAsDefaultBrowser(); | 64 shell_integration::CanSetAsDefaultBrowser(); |
| 64 bool is_default_browser = | 65 bool is_default_browser = |
| 65 g_browser_process->CachedDefaultWebClientState() == | 66 g_browser_process->CachedDefaultWebClientState() == |
| 66 shell_integration::IS_DEFAULT; | 67 shell_integration::IS_DEFAULT; |
| 67 return CheckWin10OnboardingTabPolicy( | 68 return CheckWin10OnboardingTabPolicy( |
| 68 is_first_run, has_seen_welcome_page, has_seen_win10_promo, is_signed_in, | 69 is_first_run, has_seen_welcome_page, has_seen_win10_promo, is_signed_in, |
| 69 set_default_browser_allowed, is_default_browser); | 70 set_default_browser_allowed, is_default_browser, is_supervised_user); |
| 70 } | 71 } |
| 71 #endif // defined(OS_WIN) | 72 #endif // defined(OS_WIN) |
| 72 | 73 |
| 73 return CheckStandardOnboardingTabPolicy(is_first_run, has_seen_welcome_page, | 74 return CheckStandardOnboardingTabPolicy(is_first_run, has_seen_welcome_page, |
| 74 is_signed_in); | 75 is_signed_in, is_supervised_user); |
| 75 #endif // defined(OS_CHROMEOS) | 76 #endif // defined(OS_CHROMEOS) |
| 76 } | 77 } |
| 77 | 78 |
| 78 StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( | 79 StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( |
| 79 StartupBrowserCreator* browser_creator) const { | 80 StartupBrowserCreator* browser_creator) const { |
| 80 if (!browser_creator) | 81 if (!browser_creator) |
| 81 return StartupTabs(); | 82 return StartupTabs(); |
| 82 StartupTabs tabs = CheckMasterPrefsTabPolicy( | 83 StartupTabs tabs = CheckMasterPrefsTabPolicy( |
| 83 first_run::IsChromeFirstRun(), browser_creator->first_run_tabs_); | 84 first_run::IsChromeFirstRun(), browser_creator->first_run_tabs_); |
| 84 browser_creator->first_run_tabs_.clear(); | 85 browser_creator->first_run_tabs_.clear(); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 const base::CommandLine& command_line, | 126 const base::CommandLine& command_line, |
| 126 Profile* profile) const { | 127 Profile* profile) const { |
| 127 return CheckNewTabPageTabPolicy( | 128 return CheckNewTabPageTabPolicy( |
| 128 StartupBrowserCreator::GetSessionStartupPref(command_line, profile)); | 129 StartupBrowserCreator::GetSessionStartupPref(command_line, profile)); |
| 129 } | 130 } |
| 130 | 131 |
| 131 // static | 132 // static |
| 132 StartupTabs StartupTabProviderImpl::CheckStandardOnboardingTabPolicy( | 133 StartupTabs StartupTabProviderImpl::CheckStandardOnboardingTabPolicy( |
| 133 bool is_first_run, | 134 bool is_first_run, |
| 134 bool has_seen_welcome_page, | 135 bool has_seen_welcome_page, |
| 135 bool is_signed_in) { | 136 bool is_signed_in, |
| 137 bool is_supervised_user) { |
| 136 StartupTabs tabs; | 138 StartupTabs tabs; |
| 137 if (!has_seen_welcome_page && !is_signed_in) | 139 if (!has_seen_welcome_page && !is_signed_in && !is_supervised_user) |
| 138 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); | 140 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |
| 139 return tabs; | 141 return tabs; |
| 140 } | 142 } |
| 141 | 143 |
| 142 #if defined(OS_WIN) | 144 #if defined(OS_WIN) |
| 143 // static | 145 // static |
| 144 StartupTabs StartupTabProviderImpl::CheckWin10OnboardingTabPolicy( | 146 StartupTabs StartupTabProviderImpl::CheckWin10OnboardingTabPolicy( |
| 145 bool is_first_run, | 147 bool is_first_run, |
| 146 bool has_seen_welcome_page, | 148 bool has_seen_welcome_page, |
| 147 bool has_seen_win10_promo, | 149 bool has_seen_win10_promo, |
| 148 bool is_signed_in, | 150 bool is_signed_in, |
| 149 bool set_default_browser_allowed, | 151 bool set_default_browser_allowed, |
| 150 bool is_default_browser) { | 152 bool is_default_browser, |
| 153 bool is_supervised_user) { |
| 151 StartupTabs tabs; | 154 StartupTabs tabs; |
| 155 |
| 156 if (is_supervised_user) |
| 157 return tabs; |
| 158 |
| 152 if (set_default_browser_allowed && !has_seen_win10_promo && | 159 if (set_default_browser_allowed && !has_seen_win10_promo && |
| 153 !is_default_browser) { | 160 !is_default_browser) { |
| 154 tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false); | 161 tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false); |
| 155 } else if (!has_seen_welcome_page && !is_signed_in) { | 162 } else if (!has_seen_welcome_page && !is_signed_in) { |
| 156 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); | 163 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |
| 157 } | 164 } |
| 158 return tabs; | 165 return tabs; |
| 159 } | 166 } |
| 160 #endif | 167 #endif |
| 161 | 168 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 ? net::AppendQueryParameter(url, "text", "faster") | 245 ? net::AppendQueryParameter(url, "text", "faster") |
| 239 : url; | 246 : url; |
| 240 } | 247 } |
| 241 #endif | 248 #endif |
| 242 | 249 |
| 243 // static | 250 // static |
| 244 GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() { | 251 GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() { |
| 245 return GURL( | 252 return GURL( |
| 246 chrome::GetSettingsUrl(chrome::kTriggeredResetProfileSettingsSubPage)); | 253 chrome::GetSettingsUrl(chrome::kTriggeredResetProfileSettingsSubPage)); |
| 247 } | 254 } |
| OLD | NEW |