| 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 "base/metrics/histogram_macros.h" | 7 #include "base/metrics/histogram_macros.h" |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 #include "chrome/browser/first_run/first_run.h" | 9 #include "chrome/browser/first_run/first_run.h" |
| 10 #include "chrome/browser/profile_resetter/triggered_profile_resetter.h" | 10 #include "chrome/browser/profile_resetter/triggered_profile_resetter.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 #if defined(OS_CHROMEOS) | 49 #if defined(OS_CHROMEOS) |
| 50 return StartupTabs(); | 50 return StartupTabs(); |
| 51 #else | 51 #else |
| 52 if (!profile) | 52 if (!profile) |
| 53 return StartupTabs(); | 53 return StartupTabs(); |
| 54 | 54 |
| 55 bool is_first_run = first_run::IsChromeFirstRun(); | 55 bool is_first_run = first_run::IsChromeFirstRun(); |
| 56 PrefService* prefs = profile->GetPrefs(); | 56 PrefService* prefs = profile->GetPrefs(); |
| 57 bool has_seen_welcome_page = | 57 bool has_seen_welcome_page = |
| 58 prefs && prefs->GetBoolean(prefs::kHasSeenWelcomePage); | 58 prefs && prefs->GetBoolean(prefs::kHasSeenWelcomePage); |
| 59 bool is_signin_allowed = profile->IsSyncAllowed(); |
| 59 SigninManagerBase* signin_manager = | 60 SigninManagerBase* signin_manager = |
| 60 SigninManagerFactory::GetForProfile(profile); | 61 SigninManagerFactory::GetForProfile(profile); |
| 61 bool is_signed_in = signin_manager && signin_manager->IsAuthenticated(); | 62 bool is_signed_in = signin_manager && signin_manager->IsAuthenticated(); |
| 62 bool is_supervised_user = profile->IsSupervised(); | 63 bool is_supervised_user = profile->IsSupervised(); |
| 63 | 64 |
| 64 #if defined(OS_WIN) | 65 #if defined(OS_WIN) |
| 65 // Windows 10 has unique onboarding policies and content. | 66 // Windows 10 has unique onboarding policies and content. |
| 66 if (base::win::GetVersion() >= base::win::VERSION_WIN10) { | 67 if (base::win::GetVersion() >= base::win::VERSION_WIN10) { |
| 67 PrefService* local_state = g_browser_process->local_state(); | 68 PrefService* local_state = g_browser_process->local_state(); |
| 68 bool has_seen_win10_promo = | 69 bool has_seen_win10_promo = |
| 69 local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage); | 70 local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage); |
| 70 // The set default browser operation can be disabled by the browser | 71 // The set default browser operation can be disabled by the browser |
| 71 // distribution (e.g. SxS Canary), or by enterprise policy. In these cases, | 72 // distribution (e.g. SxS Canary), or by enterprise policy. In these cases, |
| 72 // the Win 10 promo page should not be displayed. | 73 // the Win 10 promo page should not be displayed. |
| 73 bool disabled_by_enterprise_policy = | 74 bool disabled_by_enterprise_policy = |
| 74 local_state && | 75 local_state && |
| 75 local_state->IsManagedPreference( | 76 local_state->IsManagedPreference( |
| 76 prefs::kDefaultBrowserSettingEnabled) && | 77 prefs::kDefaultBrowserSettingEnabled) && |
| 77 !local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled); | 78 !local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled); |
| 78 bool set_default_browser_allowed = | 79 bool set_default_browser_allowed = |
| 79 !disabled_by_enterprise_policy && | 80 !disabled_by_enterprise_policy && |
| 80 shell_integration::CanSetAsDefaultBrowser(); | 81 shell_integration::CanSetAsDefaultBrowser(); |
| 81 bool is_default_browser = | 82 bool is_default_browser = |
| 82 g_browser_process->CachedDefaultWebClientState() == | 83 g_browser_process->CachedDefaultWebClientState() == |
| 83 shell_integration::IS_DEFAULT; | 84 shell_integration::IS_DEFAULT; |
| 84 return GetWin10OnboardingTabsForState( | 85 return GetWin10OnboardingTabsForState( |
| 85 is_first_run, has_seen_welcome_page, has_seen_win10_promo, is_signed_in, | 86 is_first_run, has_seen_welcome_page, has_seen_win10_promo, |
| 86 set_default_browser_allowed, is_default_browser, is_supervised_user); | 87 is_signin_allowed, is_signed_in, set_default_browser_allowed, |
| 88 is_default_browser, is_supervised_user); |
| 87 } | 89 } |
| 88 #endif // defined(OS_WIN) | 90 #endif // defined(OS_WIN) |
| 89 | 91 |
| 90 return GetStandardOnboardingTabsForState(is_first_run, has_seen_welcome_page, | 92 return GetStandardOnboardingTabsForState(is_first_run, has_seen_welcome_page, |
| 91 is_signed_in, is_supervised_user); | 93 is_signin_allowed, is_signed_in, |
| 94 is_supervised_user); |
| 92 #endif // defined(OS_CHROMEOS) | 95 #endif // defined(OS_CHROMEOS) |
| 93 } | 96 } |
| 94 | 97 |
| 95 StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( | 98 StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( |
| 96 StartupBrowserCreator* browser_creator) const { | 99 StartupBrowserCreator* browser_creator) const { |
| 97 if (!browser_creator) | 100 if (!browser_creator) |
| 98 return StartupTabs(); | 101 return StartupTabs(); |
| 99 StartupTabs tabs = GetMasterPrefsTabsForState( | 102 StartupTabs tabs = GetMasterPrefsTabsForState( |
| 100 first_run::IsChromeFirstRun(), browser_creator->first_run_tabs_); | 103 first_run::IsChromeFirstRun(), browser_creator->first_run_tabs_); |
| 101 browser_creator->first_run_tabs_.clear(); | 104 browser_creator->first_run_tabs_.clear(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 132 const base::CommandLine& command_line, | 135 const base::CommandLine& command_line, |
| 133 Profile* profile) const { | 136 Profile* profile) const { |
| 134 return GetNewTabPageTabsForState( | 137 return GetNewTabPageTabsForState( |
| 135 StartupBrowserCreator::GetSessionStartupPref(command_line, profile)); | 138 StartupBrowserCreator::GetSessionStartupPref(command_line, profile)); |
| 136 } | 139 } |
| 137 | 140 |
| 138 // static | 141 // static |
| 139 StartupTabs StartupTabProviderImpl::GetStandardOnboardingTabsForState( | 142 StartupTabs StartupTabProviderImpl::GetStandardOnboardingTabsForState( |
| 140 bool is_first_run, | 143 bool is_first_run, |
| 141 bool has_seen_welcome_page, | 144 bool has_seen_welcome_page, |
| 145 bool is_signin_allowed, |
| 142 bool is_signed_in, | 146 bool is_signed_in, |
| 143 bool is_supervised_user) { | 147 bool is_supervised_user) { |
| 144 StartupTabs tabs; | 148 StartupTabs tabs; |
| 145 if (!has_seen_welcome_page && !is_signed_in && !is_supervised_user) | 149 if (!has_seen_welcome_page && is_signin_allowed && !is_signed_in && |
| 150 !is_supervised_user) |
| 146 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); | 151 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |
| 147 return tabs; | 152 return tabs; |
| 148 } | 153 } |
| 149 | 154 |
| 150 #if defined(OS_WIN) | 155 #if defined(OS_WIN) |
| 151 // static | 156 // static |
| 152 StartupTabs StartupTabProviderImpl::GetWin10OnboardingTabsForState( | 157 StartupTabs StartupTabProviderImpl::GetWin10OnboardingTabsForState( |
| 153 bool is_first_run, | 158 bool is_first_run, |
| 154 bool has_seen_welcome_page, | 159 bool has_seen_welcome_page, |
| 155 bool has_seen_win10_promo, | 160 bool has_seen_win10_promo, |
| 161 bool is_signin_allowed, |
| 156 bool is_signed_in, | 162 bool is_signed_in, |
| 157 bool set_default_browser_allowed, | 163 bool set_default_browser_allowed, |
| 158 bool is_default_browser, | 164 bool is_default_browser, |
| 159 bool is_supervised_user) { | 165 bool is_supervised_user) { |
| 160 StartupTabs tabs; | 166 StartupTabs tabs; |
| 161 | 167 |
| 162 if (is_supervised_user) | 168 if (is_supervised_user) |
| 163 return tabs; | 169 return tabs; |
| 164 | 170 |
| 165 if (set_default_browser_allowed && !has_seen_win10_promo && | 171 if (set_default_browser_allowed && !has_seen_win10_promo && |
| 166 !is_default_browser) { | 172 !is_default_browser) { |
| 167 tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false); | 173 tabs.emplace_back(GetWin10WelcomePageUrl(!is_first_run), false); |
| 168 } else if (!has_seen_welcome_page && !is_signed_in) { | 174 } else if (!has_seen_welcome_page && is_signin_allowed && !is_signed_in) { |
| 169 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); | 175 tabs.emplace_back(GetWelcomePageUrl(!is_first_run), false); |
| 170 } | 176 } |
| 171 return tabs; | 177 return tabs; |
| 172 } | 178 } |
| 173 #endif | 179 #endif |
| 174 | 180 |
| 175 // static | 181 // static |
| 176 StartupTabs StartupTabProviderImpl::GetMasterPrefsTabsForState( | 182 StartupTabs StartupTabProviderImpl::GetMasterPrefsTabsForState( |
| 177 bool is_first_run, | 183 bool is_first_run, |
| 178 const std::vector<GURL>& first_run_tabs) { | 184 const std::vector<GURL>& first_run_tabs) { |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 ? net::AppendQueryParameter(url, "text", "faster") | 262 ? net::AppendQueryParameter(url, "text", "faster") |
| 257 : url; | 263 : url; |
| 258 } | 264 } |
| 259 #endif | 265 #endif |
| 260 | 266 |
| 261 // static | 267 // static |
| 262 GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() { | 268 GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() { |
| 263 return GURL( | 269 return GURL( |
| 264 chrome::GetSettingsUrl(chrome::kTriggeredResetProfileSettingsSubPage)); | 270 chrome::GetSettingsUrl(chrome::kTriggeredResetProfileSettingsSubPage)); |
| 265 } | 271 } |
| OLD | NEW |