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(); | |
Peter Kasting
2017/04/05 23:04:11
Naively it seems like this should be checking sign
tmartino
2017/04/06 20:43:05
In fact, the policy backing IsSigninAllowed is dep
| |
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) { |
Peter Kasting
2017/04/05 23:04:11
Nit: This function could be simplified to somethin
tmartino
2017/04/06 20:43:05
Ack. Will follow up with a CL that reorganizes thi
| |
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 |