Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1595)

Unified Diff: chrome/browser/extensions/extension_service.cc

Issue 8857004: Delete UDPClientSocket on same thread as creation. Also refactor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Initial. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698