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

Unified Diff: chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc

Issue 23629027: Add a hack to allow us to disable extension garbage collection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
index 67e87f512441445a0d4c0a0415efe44c2c233804..23eaa568aedd50f579727c46bb66f6efea6e3d28 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc
@@ -36,6 +36,14 @@ namespace chromeos {
namespace {
+ExtensionService* GetDefaultExtensionService() {
+ Profile* default_profile = ProfileManager::GetDefaultProfile();
+ if (!default_profile)
+ return NULL;
+ return extensions::ExtensionSystem::Get(
+ default_profile)->extension_service();
+}
+
typedef base::Callback<void(
scoped_refptr<Extension>,
const base::FilePath&)> UnpackCallback;
@@ -96,6 +104,12 @@ void ScreensaverUnpackerClient::LoadScreensaverExtension(
const base::FilePath& screensaver_extension_path) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
+ ExtensionService* service = GetDefaultExtensionService();
+ // TODO(rkc): This is a HACK, please remove this method from extension
+ // service once this code is deprecated. See crbug.com/280363
+ if (service)
+ service->disable_garbage_collection();
+
std::string error;
scoped_refptr<Extension> screensaver_extension =
extension_file_util::LoadExtension(screensaver_extension_path,
@@ -153,6 +167,12 @@ KioskModeScreensaver::KioskModeScreensaver()
KioskModeScreensaver::~KioskModeScreensaver() {
// If the extension was unpacked.
if (!extension_base_path_.empty()) {
+ ExtensionService* service = GetDefaultExtensionService();
+ // TODO(rkc): This is a HACK, please remove this method from extension
+ // service once this code is deprecated. See crbug.com/280363
+ if (service)
+ service->enable_garbage_collection();
+
// Delete it.
content::BrowserThread::PostTask(
content::BrowserThread::FILE,
@@ -183,8 +203,8 @@ void KioskModeScreensaver::ScreensaverPathCallback(
Profile* default_profile = ProfileManager::GetDefaultProfile();
if (!default_profile)
return;
- base::FilePath extensions_dir = extensions::ExtensionSystem::Get(
- default_profile)->extension_service()->install_directory();
+ base::FilePath extensions_dir =
+ GetDefaultExtensionService()->install_directory();
scoped_refptr<SandboxedUnpacker> screensaver_unpacker(
new SandboxedUnpacker(
screensaver_crx,
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698