diff options
author | huanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-25 06:59:33 +0000 |
---|---|---|
committer | huanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-25 06:59:33 +0000 |
commit | 303e8f00bec846e87a34e9a3e00f0947ae33a584 (patch) | |
tree | 58638382ffed902f6f4fe1d7728516ee830b6793 /chrome/browser/extensions/extension_message_service.h | |
parent | 61e9572d1eeadfd4eb8326515fa73e3826de3111 (diff) | |
download | chromium_src-303e8f00bec846e87a34e9a3e00f0947ae33a584.zip chromium_src-303e8f00bec846e87a34e9a3e00f0947ae33a584.tar.gz chromium_src-303e8f00bec846e87a34e9a3e00f0947ae33a584.tar.bz2 |
Fixing 27834 by always deleting ExtensionMessageService on
UI thread.
BUG=27834
TEST=none
Review URL: http://codereview.chromium.org/440012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33057 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_message_service.h')
-rw-r--r-- | chrome/browser/extensions/extension_message_service.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/chrome/browser/extensions/extension_message_service.h b/chrome/browser/extensions/extension_message_service.h index bdd1187..a4c6037 100644 --- a/chrome/browser/extensions/extension_message_service.h +++ b/chrome/browser/extensions/extension_message_service.h @@ -12,6 +12,7 @@ #include "base/lock.h" #include "base/ref_counted.h" #include "chrome/common/notification_registrar.h" +#include "chrome/browser/chrome_thread.h" #include "chrome/browser/extensions/extension_devtools_manager.h" #include "ipc/ipc_message.h" @@ -44,7 +45,8 @@ class URLRequestContext; // case that the port is a tab). The Sender is usually either a // RenderProcessHost or a RenderViewHost. class ExtensionMessageService - : public base::RefCountedThreadSafe<ExtensionMessageService>, + : public base::RefCountedThreadSafe< + ExtensionMessageService, ChromeThread::DeleteOnUIThread>, public NotificationObserver { public: // Javascript function name constants. @@ -127,7 +129,8 @@ class ExtensionMessageService ResourceMessageFilter* source); private: - friend class base::RefCountedThreadSafe<ExtensionMessageService>; + friend class ChromeThread; + friend class DeleteTask<ExtensionMessageService>; // A map of channel ID to its channel object. typedef std::map<int, MessageChannel*> MessageChannelMap; @@ -195,6 +198,9 @@ class ExtensionMessageService // used on the IO thread or the UI thread. Lock next_port_id_lock_; + // The thread creating this object. Should be UI thread. + ChromeThread::ID thread_id_; + DISALLOW_COPY_AND_ASSIGN(ExtensionMessageService); }; |