OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/login/startup_utils.h" | 5 #include "chrome/browser/chromeos/login/startup_utils.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
11 #include "base/prefs/pref_registry_simple.h" | 11 #include "base/prefs/pref_registry_simple.h" |
12 #include "base/prefs/pref_service.h" | 12 #include "base/prefs/pref_service.h" |
13 #include "base/sys_info.h" | 13 #include "base/sys_info.h" |
14 #include "base/threading/thread_restrictions.h" | 14 #include "base/threading/thread_restrictions.h" |
15 #include "chrome/browser/browser_process.h" | 15 #include "chrome/browser/browser_process.h" |
16 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | |
17 #include "chrome/common/chrome_paths.h" | 16 #include "chrome/common/chrome_paths.h" |
18 #include "chrome/common/extensions/features/feature_channel.h" | 17 #include "chrome/common/extensions/features/feature_channel.h" |
19 #include "chrome/common/pref_names.h" | 18 #include "chrome/common/pref_names.h" |
20 #include "chromeos/chromeos_switches.h" | 19 #include "chromeos/chromeos_switches.h" |
21 #include "components/web_resource/web_resource_pref_names.h" | 20 #include "components/web_resource/web_resource_pref_names.h" |
22 #include "content/public/browser/browser_thread.h" | 21 #include "content/public/browser/browser_thread.h" |
23 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
24 | 23 |
25 using content::BrowserThread; | 24 using content::BrowserThread; |
26 | 25 |
(...skipping 26 matching lines...) Expand all Loading... |
53 namespace chromeos { | 52 namespace chromeos { |
54 | 53 |
55 // static | 54 // static |
56 void StartupUtils::RegisterPrefs(PrefRegistrySimple* registry) { | 55 void StartupUtils::RegisterPrefs(PrefRegistrySimple* registry) { |
57 registry->RegisterBooleanPref(prefs::kOobeComplete, false); | 56 registry->RegisterBooleanPref(prefs::kOobeComplete, false); |
58 registry->RegisterStringPref(prefs::kOobeScreenPending, ""); | 57 registry->RegisterStringPref(prefs::kOobeScreenPending, ""); |
59 registry->RegisterIntegerPref(prefs::kDeviceRegistered, -1); | 58 registry->RegisterIntegerPref(prefs::kDeviceRegistered, -1); |
60 registry->RegisterBooleanPref(prefs::kEnrollmentRecoveryRequired, false); | 59 registry->RegisterBooleanPref(prefs::kEnrollmentRecoveryRequired, false); |
61 registry->RegisterStringPref(prefs::kInitialLocale, "en-US"); | 60 registry->RegisterStringPref(prefs::kInitialLocale, "en-US"); |
62 registry->RegisterBooleanPref(prefs::kNewOobe, false); | 61 registry->RegisterBooleanPref(prefs::kNewOobe, false); |
63 registry->RegisterBooleanPref(prefs::kWebviewSigninDisabled, false); | 62 registry->RegisterBooleanPref(prefs::kWebviewSigninEnabled, false); |
64 } | 63 } |
65 | 64 |
66 // static | 65 // static |
67 bool StartupUtils::IsEulaAccepted() { | 66 bool StartupUtils::IsEulaAccepted() { |
68 return g_browser_process->local_state()->GetBoolean(prefs::kEulaAccepted); | 67 return g_browser_process->local_state()->GetBoolean(prefs::kEulaAccepted); |
69 } | 68 } |
70 | 69 |
71 // static | 70 // static |
72 bool StartupUtils::IsOobeCompleted() { | 71 bool StartupUtils::IsOobeCompleted() { |
73 return g_browser_process->local_state()->GetBoolean(prefs::kOobeComplete); | 72 return g_browser_process->local_state()->GetBoolean(prefs::kOobeComplete); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 std::string StartupUtils::GetInitialLocale() { | 172 std::string StartupUtils::GetInitialLocale() { |
174 std::string locale = | 173 std::string locale = |
175 g_browser_process->local_state()->GetString(prefs::kInitialLocale); | 174 g_browser_process->local_state()->GetString(prefs::kInitialLocale); |
176 if (!l10n_util::IsValidLocaleSyntax(locale)) | 175 if (!l10n_util::IsValidLocaleSyntax(locale)) |
177 locale = "en-US"; | 176 locale = "en-US"; |
178 return locale; | 177 return locale; |
179 } | 178 } |
180 | 179 |
181 // static | 180 // static |
182 bool StartupUtils::IsWebviewSigninAllowed() { | 181 bool StartupUtils::IsWebviewSigninAllowed() { |
183 return !base::CommandLine::ForCurrentProcess()->HasSwitch( | 182 return extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV && |
184 switches::kDisableWebviewSigninFlow); | 183 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 184 switches::kDisableWebviewSigninFlow); |
185 } | 185 } |
186 | 186 |
187 // static | 187 // static |
188 bool StartupUtils::IsWebviewSigninEnabled() { | 188 bool StartupUtils::IsWebviewSigninEnabled() { |
189 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = | 189 return IsWebviewSigninAllowed() && |
190 g_browser_process | 190 g_browser_process->local_state()->GetBoolean( |
191 ? g_browser_process->platform_part() | 191 prefs::kWebviewSigninEnabled); |
192 ->browser_policy_connector_chromeos() | |
193 ->GetDeviceCloudPolicyManager() | |
194 : nullptr; | |
195 | |
196 bool is_remora_or_shark_requisition = | |
197 policy_manager | |
198 ? policy_manager->IsRemoraRequisition() || | |
199 policy_manager->IsSharkRequisition() | |
200 : false; | |
201 | |
202 bool is_webview_disabled_pref = g_browser_process->local_state()->GetBoolean( | |
203 prefs::kWebviewSigninDisabled); | |
204 | |
205 // TODO(dzhioev): Re-enable webview signin for remora/shark requisition | |
206 // http://crbug.com/464049 | |
207 return !is_remora_or_shark_requisition && IsWebviewSigninAllowed() && | |
208 !is_webview_disabled_pref; | |
209 } | 192 } |
210 | 193 |
211 // static | 194 // static |
212 bool StartupUtils::EnableWebviewSignin(bool is_enabled) { | 195 bool StartupUtils::EnableWebviewSignin(bool is_enabled) { |
213 if (is_enabled && !IsWebviewSigninAllowed()) | 196 if (!IsWebviewSigninAllowed()) |
214 return false; | 197 return false; |
215 | 198 |
216 g_browser_process->local_state()->SetBoolean(prefs::kWebviewSigninDisabled, | 199 g_browser_process->local_state()->SetBoolean(prefs::kWebviewSigninEnabled, |
217 !is_enabled); | 200 is_enabled); |
218 return true; | 201 return true; |
219 } | 202 } |
220 | 203 |
221 // static | 204 // static |
222 void StartupUtils::SetInitialLocale(const std::string& locale) { | 205 void StartupUtils::SetInitialLocale(const std::string& locale) { |
223 if (l10n_util::IsValidLocaleSyntax(locale)) | 206 if (l10n_util::IsValidLocaleSyntax(locale)) |
224 SaveStringPreferenceForced(prefs::kInitialLocale, locale); | 207 SaveStringPreferenceForced(prefs::kInitialLocale, locale); |
225 else | 208 else |
226 NOTREACHED(); | 209 NOTREACHED(); |
227 } | 210 } |
228 | 211 |
229 // static | 212 // static |
230 bool StartupUtils::IsNewOobeAllowed() { | 213 bool StartupUtils::IsNewOobeAllowed() { |
231 return extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV; | 214 return extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV; |
232 } | 215 } |
233 | 216 |
234 // static | 217 // static |
235 bool StartupUtils::IsNewOobeActivated() { | 218 bool StartupUtils::IsNewOobeActivated() { |
236 return g_browser_process->local_state()->GetBoolean(prefs::kNewOobe) && | 219 return g_browser_process->local_state()->GetBoolean(prefs::kNewOobe) && |
237 IsNewOobeAllowed(); | 220 IsNewOobeAllowed(); |
238 } | 221 } |
239 | 222 |
240 } // namespace chromeos | 223 } // namespace chromeos |
OLD | NEW |