OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/extensions/extension_system_impl.h" | 5 #include "chrome/browser/extensions/extension_system_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/base_switches.h" | 9 #include "base/base_switches.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
201 service_worker_manager_.reset(new ServiceWorkerManager(profile_)); | 201 service_worker_manager_.reset(new ServiceWorkerManager(profile_)); |
202 | 202 |
203 shared_user_script_master_.reset(new SharedUserScriptMaster(profile_)); | 203 shared_user_script_master_.reset(new SharedUserScriptMaster(profile_)); |
204 | 204 |
205 // ExtensionService depends on RuntimeData. | 205 // ExtensionService depends on RuntimeData. |
206 runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_))); | 206 runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_))); |
207 | 207 |
208 bool autoupdate_enabled = !profile_->IsGuestSession() && | 208 bool autoupdate_enabled = !profile_->IsGuestSession() && |
209 !profile_->IsSystemProfile(); | 209 !profile_->IsSystemProfile(); |
210 #if defined(OS_CHROMEOS) | 210 #if defined(OS_CHROMEOS) |
211 if (!extensions_enabled) | 211 if (!extensions_enabled || |
212 chromeos::ProfileHelper::IsLockScreenAppProfile(profile_)) { | |
212 autoupdate_enabled = false; | 213 autoupdate_enabled = false; |
214 } | |
213 #endif // defined(OS_CHROMEOS) | 215 #endif // defined(OS_CHROMEOS) |
214 extension_service_.reset(new ExtensionService( | 216 extension_service_.reset(new ExtensionService( |
215 profile_, base::CommandLine::ForCurrentProcess(), | 217 profile_, base::CommandLine::ForCurrentProcess(), |
216 profile_->GetPath().AppendASCII(extensions::kInstallDirectoryName), | 218 profile_->GetPath().AppendASCII(extensions::kInstallDirectoryName), |
217 ExtensionPrefs::Get(profile_), Blacklist::Get(profile_), | 219 ExtensionPrefs::Get(profile_), Blacklist::Get(profile_), |
218 autoupdate_enabled, extensions_enabled, &ready_)); | 220 autoupdate_enabled, extensions_enabled, &ready_)); |
219 | 221 |
220 uninstall_ping_sender_.reset(new UninstallPingSender( | 222 uninstall_ping_sender_.reset(new UninstallPingSender( |
221 ExtensionRegistry::Get(profile_), base::Bind(&ShouldSendUninstallPing))); | 223 ExtensionRegistry::Get(profile_), base::Bind(&ShouldSendUninstallPing))); |
222 | 224 |
223 // These services must be registered before the ExtensionService tries to | 225 // These services must be registered before the ExtensionService tries to |
224 // load any extensions. | 226 // load any extensions. |
225 { | 227 { |
226 InstallVerifier::Get(profile_)->Init(); | 228 InstallVerifier::Get(profile_)->Init(); |
227 ContentVerifierDelegate::Mode mode = | 229 ContentVerifierDelegate::Mode mode = |
228 ChromeContentVerifierDelegate::GetDefaultMode(); | 230 ChromeContentVerifierDelegate::GetDefaultMode(); |
229 #if defined(OS_CHROMEOS) | 231 #if defined(OS_CHROMEOS) |
230 mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); | 232 mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); |
231 #endif // defined(OS_CHROMEOS) | 233 #endif // defined(OS_CHROMEOS) |
232 if (mode >= ContentVerifierDelegate::BOOTSTRAP) | 234 if (mode >= ContentVerifierDelegate::BOOTSTRAP) |
233 content_verifier_->Start(); | 235 content_verifier_->Start(); |
234 info_map()->SetContentVerifier(content_verifier_.get()); | 236 info_map()->SetContentVerifier(content_verifier_.get()); |
235 | 237 #if defined(OS_CHROMEOS) |
238 if (chromeos::ProfileHelper::IsLockScreenAppProfile(profile_)) | |
239 info_map()->SetIsLockScreenContext(true); | |
240 #endif | |
236 management_policy_.reset(new ManagementPolicy); | 241 management_policy_.reset(new ManagementPolicy); |
237 RegisterManagementPolicyProviders(); | 242 RegisterManagementPolicyProviders(); |
238 } | 243 } |
239 | 244 |
240 // Extension API calls require QuotaService, so create it before loading any | 245 // Extension API calls require QuotaService, so create it before loading any |
241 // extensions. | 246 // extensions. |
242 quota_service_.reset(new QuotaService); | 247 quota_service_.reset(new QuotaService); |
243 | 248 |
244 bool skip_session_extensions = false; | 249 bool skip_session_extensions = false; |
245 #if defined(OS_CHROMEOS) | 250 #if defined(OS_CHROMEOS) |
246 // Skip loading session extensions if we are not in a user session or if the | 251 // Skip loading session extensions if we are not in a user session or if the |
247 // profile is the sign-in profile, which doesn't correspond to a user session. | 252 // profile is the sign-in profile, which doesn't correspond to a user session. |
emaxx
2017/06/23 16:16:30
nit: Update the comment too?
tbarzic
2017/06/23 17:18:40
Done.
| |
248 skip_session_extensions = !chromeos::LoginState::Get()->IsUserLoggedIn() || | 253 skip_session_extensions = |
249 chromeos::ProfileHelper::IsSigninProfile(profile_); | 254 !chromeos::LoginState::Get()->IsUserLoggedIn() || |
255 chromeos::ProfileHelper::IsSigninProfile(profile_) || | |
256 chromeos::ProfileHelper::IsLockScreenAppProfile(profile_); | |
250 if (chrome::IsRunningInForcedAppMode()) { | 257 if (chrome::IsRunningInForcedAppMode()) { |
251 extension_service_->component_loader()-> | 258 extension_service_->component_loader()-> |
252 AddDefaultComponentExtensionsForKioskMode(skip_session_extensions); | 259 AddDefaultComponentExtensionsForKioskMode(skip_session_extensions); |
253 } else { | 260 } else { |
254 extension_service_->component_loader()->AddDefaultComponentExtensions( | 261 extension_service_->component_loader()->AddDefaultComponentExtensions( |
255 skip_session_extensions); | 262 skip_session_extensions); |
256 } | 263 } |
257 #else | 264 #else |
258 extension_service_->component_loader()->AddDefaultComponentExtensions( | 265 extension_service_->component_loader()->AddDefaultComponentExtensions( |
259 skip_session_extensions); | 266 skip_session_extensions); |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
461 | 468 |
462 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( | 469 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( |
463 const std::string& extension_id, | 470 const std::string& extension_id, |
464 const UnloadedExtensionReason reason) { | 471 const UnloadedExtensionReason reason) { |
465 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 472 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
466 base::BindOnce(&InfoMap::RemoveExtension, info_map(), | 473 base::BindOnce(&InfoMap::RemoveExtension, info_map(), |
467 extension_id, reason)); | 474 extension_id, reason)); |
468 } | 475 } |
469 | 476 |
470 } // namespace extensions | 477 } // namespace extensions |
OLD | NEW |