| Index: chrome/browser/appcache/appcache_dispatcher_host.h | 
| =================================================================== | 
| --- chrome/browser/appcache/appcache_dispatcher_host.h	(revision 68122) | 
| +++ chrome/browser/appcache/appcache_dispatcher_host.h	(working copy) | 
| @@ -12,6 +12,7 @@ | 
| #include "base/ref_counted.h" | 
| #include "base/scoped_ptr.h" | 
| #include "chrome/browser/appcache/appcache_frontend_proxy.h" | 
| +#include "chrome/browser/browser_io_message_filter.h" | 
| #include "chrome/browser/renderer_host/resource_dispatcher_host.h" | 
| #include "ipc/ipc_message.h" | 
| #include "webkit/appcache/appcache_backend_impl.h" | 
| @@ -24,30 +25,24 @@ | 
| // its child processes. There is a distinct host for each child process. | 
| // Messages are handled on the IO thread. The ResourceMessageFilter and | 
| // WorkerProcessHost create an instance and delegates calls to it. | 
| -class AppCacheDispatcherHost { | 
| +class AppCacheDispatcherHost : public BrowserIOMessageFilter { | 
| public: | 
| // Constructor for use on the IO thread. | 
| -  explicit AppCacheDispatcherHost( | 
| -      URLRequestContext* request_context); | 
| +  AppCacheDispatcherHost(URLRequestContext* request_context, | 
| +                         int process_id); | 
|  | 
| // Constructor for use on the UI thread. | 
| -  explicit AppCacheDispatcherHost( | 
| -      URLRequestContextGetter* request_context_getter); | 
| +  AppCacheDispatcherHost(URLRequestContextGetter* request_context_getter, | 
| +                         int process_id); | 
|  | 
| ~AppCacheDispatcherHost(); | 
|  | 
| -  void Initialize(ResourceDispatcherHost::Receiver* receiver); | 
| -  bool OnMessageReceived(const IPC::Message& msg, bool* msg_is_ok); | 
| +  // BrowserIOMessageFilter implementation | 
| +  virtual bool OnMessageReceived(const IPC::Message& message); | 
| +  virtual void OnChannelConnected(int32 peer_pid); | 
|  | 
| -  int process_id() const { return backend_impl_.process_id(); } | 
| - | 
| -  // Note: needed to satisfy ipc message dispatching macros. | 
| -  bool Send(IPC::Message* msg) { | 
| -    return frontend_proxy_.sender()->Send(msg); | 
| -  } | 
| - | 
| private: | 
| -  // Ipc message handlers | 
| +  // IPC message handlers | 
| void OnRegisterHost(int host_id); | 
| void OnUnregisterHost(int host_id); | 
| void OnSelectCache(int host_id, const GURL& document_url, | 
| @@ -68,25 +63,26 @@ | 
| void StartUpdateCallback(bool result, void* param); | 
| void SwapCacheCallback(bool result, void* param); | 
|  | 
| -  void ReceivedBadMessage(uint32 msg_type); | 
| +  // This is only valid once Initialize() has been called.  This MUST be defined | 
| +  // before backend_impl_ since the latter maintains a (non-refcounted) pointer | 
| +  // to it. | 
| +  scoped_refptr<ChromeAppCacheService> appcache_service_; | 
|  | 
| AppCacheFrontendProxy frontend_proxy_; | 
| appcache::AppCacheBackendImpl backend_impl_; | 
|  | 
| -  // Temporary until Initialize() can be called from the IO thread, | 
| +  // Temporary until OnChannelConnected() can be called from the IO thread, | 
| // which will extract the AppCacheService from the URLRequestContext. | 
| scoped_refptr<URLRequestContext> request_context_; | 
| scoped_refptr<URLRequestContextGetter> request_context_getter_; | 
|  | 
| -  // This is only valid once Initialize() has been called. | 
| -  scoped_refptr<ChromeAppCacheService> appcache_service_; | 
| - | 
| scoped_ptr<appcache::GetStatusCallback> get_status_callback_; | 
| scoped_ptr<appcache::StartUpdateCallback> start_update_callback_; | 
| scoped_ptr<appcache::SwapCacheCallback> swap_cache_callback_; | 
| scoped_ptr<IPC::Message> pending_reply_msg_; | 
|  | 
| -  ResourceDispatcherHost::Receiver* receiver_; | 
| +  // The corresponding ChildProcessHost object's id(). | 
| +  int process_id_; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(AppCacheDispatcherHost); | 
| }; | 
|  |