Chromium Code Reviews| Index: chrome/browser/extensions/extension_service.cc |
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
| index 3a6ff8b2c19c3b7e30b2d520324bd35a828c7d36..90beb51531493639f850cf4988c5b7acb947df48 100644 |
| --- a/chrome/browser/extensions/extension_service.cc |
| +++ b/chrome/browser/extensions/extension_service.cc |
| @@ -31,6 +31,7 @@ |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/chrome_plugin_service_filter.h" |
| #include "chrome/browser/download/download_extension_api.h" |
| +#include "chrome/browser/extensions/api/socket/socket_api_controller.h" |
| #include "chrome/browser/extensions/app_notification_manager.h" |
| #include "chrome/browser/extensions/apps_promo.h" |
| #include "chrome/browser/extensions/component_loader.h" |
| @@ -386,7 +387,8 @@ ExtensionService::ExtensionService(Profile* profile, |
| permissions_manager_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
| apps_promo_(profile->GetPrefs()), |
| event_routers_initialized_(false), |
| - extension_warnings_(profile) { |
| + extension_warnings_(profile), |
| + socket_controller_(new extensions::SocketController()) { |
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| // Figure out if extension installation should be enabled. |
| @@ -470,6 +472,21 @@ ExtensionService::~ExtensionService() { |
| ExternalExtensionProviderInterface* provider = i->get(); |
| provider->ServiceShutdown(); |
| } |
| + |
| + // TODO(miket): if we find ourselves adding more and more per-API |
| + // controllers, we should manage them all with an |
| + // APIControllerController (still working on that name). |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, |
| + base::Bind(&ExtensionService::DeleteSocketController, |
| + socket_controller_)); |
| +} |
| + |
| +// static |
| +void ExtensionService::DeleteSocketController( |
|
Aaron Boodman
2011/12/07 23:16:22
I believe that you can use MessageLoop::DeleteSoon
miket_OOO
2011/12/08 00:29:22
If I'm reading the documentation correctly, this w
Aaron Boodman
2011/12/08 00:41:50
Oh, whoops. I was thinking of DeleteTask from base
|
| + extensions::SocketController* socket_controller) { |
| + CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + delete socket_controller; |
| } |
| void ExtensionService::InitEventRoutersAfterImport() { |