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

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

Issue 2945023002: Introduce profile for lock screen apps (Closed)
Patch Set: . Created 3 years, 6 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 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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698