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). |
Aaron Boodman
2011/12/08 00:43:20
FYI, see crbug.com/104095.
asargent_no_longer_on_chrome
2011/12/08 01:00:05
Re:APIControllerController, you might be able to u
|
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&ExtensionService::DeleteSocketController, |
+ socket_controller_)); |
+} |
+ |
+// static |
+void ExtensionService::DeleteSocketController( |
+ extensions::SocketController* socket_controller) { |
+ CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ delete socket_controller; |
} |
void ExtensionService::InitEventRoutersAfterImport() { |