summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-09 19:25:33 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-09 19:25:33 +0000
commita7581710ab48c76d43496b535d77560bfd35510a (patch)
tree3c85a632300aa1d236b14dbee7a93c3f1ec29a3c /chrome/browser/extensions
parent580356f1523b1edcc4ad1e2a8eb7da4a0e469a17 (diff)
downloadchromium_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.h7
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();