Chromium Code Reviews| 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 |