Make the ChromeNetworkDelegate use the ExtensionEventRouterForwarder

BUG=73903
TEST=tests for proxy and webrequest API should still work

Review URL: http://codereview.chromium.org/6598002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76372 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index d0c58de..2352225c 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -17,6 +17,7 @@
 
 class ChromeNetLog;
 class ChromeURLRequestContextGetter;
+class ExtensionEventRouterForwarder;
 class ListValue;
 class PrefService;
 
@@ -57,10 +58,14 @@
         proxy_script_fetcher_http_transaction_factory;
     scoped_ptr<net::URLSecurityManager> url_security_manager;
     scoped_refptr<net::URLRequestContext> proxy_script_fetcher_context;
+    scoped_refptr<ExtensionEventRouterForwarder>
+        extension_event_router_forwarder;
   };
 
   // |net_log| must either outlive the IOThread or be NULL.
-  IOThread(PrefService* local_state, ChromeNetLog* net_log);
+  IOThread(PrefService* local_state,
+           ChromeNetLog* net_log,
+           ExtensionEventRouterForwarder* extension_event_router_forwarder);
 
   virtual ~IOThread();
 
@@ -134,6 +139,10 @@
   // threads during shutdown, but is used most frequently on the IOThread.
   ChromeNetLog* net_log_;
 
+  // The ExtensionEventRouterForwarder allows for sending events to extensions
+  // from the IOThread.
+  ExtensionEventRouterForwarder* extension_event_router_forwarder_;
+
   // These member variables are basically global, but their lifetimes are tied
   // to the IOThread.  IOThread owns them all, despite not using scoped_ptr.
   // This is because the destructor of IOThread runs on the wrong thread.  All