diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-09 19:25:33 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-09 19:25:33 +0000 |
commit | a7581710ab48c76d43496b535d77560bfd35510a (patch) | |
tree | 3c85a632300aa1d236b14dbee7a93c3f1ec29a3c /chrome/browser/extensions | |
parent | 580356f1523b1edcc4ad1e2a8eb7da4a0e469a17 (diff) | |
download | chromium_src-a7581710ab48c76d43496b535d77560bfd35510a.zip chromium_src-a7581710ab48c76d43496b535d77560bfd35510a.tar.gz chromium_src-a7581710ab48c76d43496b535d77560bfd35510a.tar.bz2 |
Revert 31458 - Revert "Always destroy the ExtensionsService on UI thread."
It introduced memory leaks in tests. I have to ensure that
all message loops run pending tasks to guarantee that
ExtensionsService will be destroyed.
TBR=erikkay
Review URL: http://codereview.chromium.org/377034
TBR=phajdan.jr@chromium.org
Review URL: http://codereview.chromium.org/378029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31460 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r-- | chrome/browser/extensions/extensions_service.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/chrome/browser/extensions/extensions_service.h b/chrome/browser/extensions/extensions_service.h index 60b17c3..b5aad76 100644 --- a/chrome/browser/extensions/extensions_service.h +++ b/chrome/browser/extensions/extensions_service.h @@ -17,6 +17,7 @@ #include "base/task.h" #include "base/tuple.h" #include "base/values.h" +#include "chrome/browser/chrome_thread.h" #include "chrome/browser/extensions/extension_prefs.h" #include "chrome/browser/extensions/extension_process_manager.h" #include "chrome/browser/extensions/external_extension_provider.h" @@ -53,7 +54,8 @@ class ExtensionUpdateService { // Manages installed and running Chromium extensions. class ExtensionsService - : public base::RefCountedThreadSafe<ExtensionsService>, + : public base::RefCountedThreadSafe<ExtensionsService, + ChromeThread::DeleteOnUIThread>, public BlacklistPathProvider, public ExtensionUpdateService, public NotificationObserver { @@ -234,7 +236,8 @@ class ExtensionsService const NotificationDetails& details); private: - friend class base::RefCountedThreadSafe<ExtensionsService>; + friend class ChromeThread; + friend class DeleteTask<ExtensionsService>; virtual ~ExtensionsService(); |