Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(726)

Side by Side Diff: chrome/browser/extensions/extension_system_impl.cc

Issue 2945023002: Introduce profile for lock screen apps (Closed)
Patch Set: rebase Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 or lock screen app profile, which don't correspond
248 skip_session_extensions = !chromeos::LoginState::Get()->IsUserLoggedIn() || 253 // to a user session.
249 chromeos::ProfileHelper::IsSigninProfile(profile_); 254 skip_session_extensions =
255 !chromeos::LoginState::Get()->IsUserLoggedIn() ||
256 chromeos::ProfileHelper::IsSigninProfile(profile_) ||
257 chromeos::ProfileHelper::IsLockScreenAppProfile(profile_);
250 if (chrome::IsRunningInForcedAppMode()) { 258 if (chrome::IsRunningInForcedAppMode()) {
251 extension_service_->component_loader()-> 259 extension_service_->component_loader()->
252 AddDefaultComponentExtensionsForKioskMode(skip_session_extensions); 260 AddDefaultComponentExtensionsForKioskMode(skip_session_extensions);
253 } else { 261 } else {
254 extension_service_->component_loader()->AddDefaultComponentExtensions( 262 extension_service_->component_loader()->AddDefaultComponentExtensions(
255 skip_session_extensions); 263 skip_session_extensions);
256 } 264 }
257 #else 265 #else
258 extension_service_->component_loader()->AddDefaultComponentExtensions( 266 extension_service_->component_loader()->AddDefaultComponentExtensions(
259 skip_session_extensions); 267 skip_session_extensions);
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 469
462 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 470 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
463 const std::string& extension_id, 471 const std::string& extension_id,
464 const UnloadedExtensionReason reason) { 472 const UnloadedExtensionReason reason) {
465 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 473 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
466 base::BindOnce(&InfoMap::RemoveExtension, info_map(), 474 base::BindOnce(&InfoMap::RemoveExtension, info_map(),
467 extension_id, reason)); 475 extension_id, reason));
468 } 476 }
469 477
470 } // namespace extensions 478 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/metrics/chrome_metrics_service_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698