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

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

Issue 2892403002: Introduce lock screen app context to extension features (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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_service.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <iterator> 10 #include <iterator>
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 registrar_.Add(this, 345 registrar_.Add(this,
346 extensions::NOTIFICATION_EXTENSION_PROCESS_TERMINATED, 346 extensions::NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
347 content::NotificationService::AllBrowserContextsAndSources()); 347 content::NotificationService::AllBrowserContextsAndSources());
348 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, 348 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED,
349 content::NotificationService::AllBrowserContextsAndSources()); 349 content::NotificationService::AllBrowserContextsAndSources());
350 registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED, 350 registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED,
351 content::NotificationService::AllBrowserContextsAndSources()); 351 content::NotificationService::AllBrowserContextsAndSources());
352 registrar_.Add(this, 352 registrar_.Add(this,
353 chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, 353 chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED,
354 content::Source<Profile>(profile_)); 354 content::Source<Profile>(profile_));
355 #if defined(OS_CHROMEOS)
356 // Sign in profile extension service should observe session start - when the
357 // session is started, the context's process map should be updated to consider
358 // extension scripts to run in lock screen context (as the sign-in profile
359 // will be used to host lock screen apps from that point).
360 // TODO(tbarzic): Consider introducing a profile dedicated to lock screen apps
361 // so the process map's 'is lock screen context' flag does not have to be
362 // changed when the user session starts.
363 if (chromeos::ProfileHelper::IsSigninProfile(profile_)) {
364 registrar_.Add(this, chrome::NOTIFICATION_SESSION_STARTED,
365 content::NotificationService::AllSources());
366 }
367 #endif
355 368
356 extensions::ExtensionManagementFactory::GetForBrowserContext(profile_) 369 extensions::ExtensionManagementFactory::GetForBrowserContext(profile_)
357 ->AddObserver(this); 370 ->AddObserver(this);
358 371
359 // Set up the ExtensionUpdater. 372 // Set up the ExtensionUpdater.
360 if (autoupdate_enabled) { 373 if (autoupdate_enabled) {
361 int update_frequency = extensions::kDefaultUpdateFrequencySeconds; 374 int update_frequency = extensions::kDefaultUpdateFrequencySeconds;
362 if (command_line->HasSwitch(switches::kExtensionsUpdateFrequency)) { 375 if (command_line->HasSwitch(switches::kExtensionsUpdateFrequency)) {
363 base::StringToInt(command_line->GetSwitchValueASCII( 376 base::StringToInt(command_line->GetSwitchValueASCII(
364 switches::kExtensionsUpdateFrequency), 377 switches::kExtensionsUpdateFrequency),
(...skipping 1886 matching lines...) Expand 10 before | Expand all | Expand 10 after
2251 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: { 2264 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: {
2252 // Notify observers that chrome update is available. 2265 // Notify observers that chrome update is available.
2253 for (auto& observer : update_observers_) 2266 for (auto& observer : update_observers_)
2254 observer.OnChromeUpdateAvailable(); 2267 observer.OnChromeUpdateAvailable();
2255 break; 2268 break;
2256 } 2269 }
2257 case chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED: { 2270 case chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED: {
2258 OnProfileDestructionStarted(); 2271 OnProfileDestructionStarted();
2259 break; 2272 break;
2260 } 2273 }
2274 #if defined(OS_CHROMEOS)
2275 case chrome::NOTIFICATION_SESSION_STARTED: {
2276 DCHECK(chromeos::ProfileHelper::IsSigninProfile(profile_));
2277
2278 // When the user session starts, mark the signin context as lock screen
2279 // context, as it will be used to host apps on lock screen.
2280 extensions::ProcessMap::Get(profile_)->set_is_lock_screen_context(true);
2281 BrowserThread::PostTask(
2282 BrowserThread::IO, FROM_HERE,
2283 base::BindOnce(&extensions::InfoMap::SetIsLockScreenContext,
2284 system_->info_map(), true));
2285 break;
2286 }
2287 #endif
2261 2288
2262 default: 2289 default:
2263 NOTREACHED() << "Unexpected notification type."; 2290 NOTREACHED() << "Unexpected notification type.";
2264 } 2291 }
2265 } 2292 }
2266 2293
2267 int ExtensionService::GetDisableReasonsOnInstalled(const Extension* extension) { 2294 int ExtensionService::GetDisableReasonsOnInstalled(const Extension* extension) {
2268 bool is_update_from_same_type = false; 2295 bool is_update_from_same_type = false;
2269 { 2296 {
2270 const Extension* existing_extension = 2297 const Extension* existing_extension =
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
2550 for (const auto& extension : registry_->disabled_extensions()) { 2577 for (const auto& extension : registry_->disabled_extensions()) {
2551 if (SharedModuleInfo::IsSharedModule(extension.get())) 2578 if (SharedModuleInfo::IsSharedModule(extension.get()))
2552 to_enable.push_back(extension); 2579 to_enable.push_back(extension);
2553 } 2580 }
2554 for (const auto& extension : to_enable) { 2581 for (const auto& extension : to_enable) {
2555 EnableExtension(extension->id()); 2582 EnableExtension(extension->id());
2556 } 2583 }
2557 2584
2558 OnBlacklistUpdated(); 2585 OnBlacklistUpdated();
2559 } 2586 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/chrome_extensions_browser_client.cc ('k') | chrome/common/extensions/api/_features.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698