Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / child / service_worker / service_worker_message_filter.h
index 5400e74..fcd39be 100644 (file)
@@ -5,29 +5,40 @@
 #ifndef CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_MESSAGE_FILTER_H_
 #define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_MESSAGE_FILTER_H_
 
-#include <map>
-
+#include "content/child/child_message_filter.h"
 #include "content/common/content_export.h"
-#include "ipc/ipc_channel_proxy.h"
+
+namespace base {
+class MessageLoopProxy;
+}
 
 namespace content {
 
+struct ServiceWorkerObjectInfo;
 class ThreadSafeSender;
-class MessageLoopProxy;
 
 class CONTENT_EXPORT ServiceWorkerMessageFilter
-    : public IPC::ChannelProxy::MessageFilter {
+    : public NON_EXPORTED_BASE(ChildMessageFilter) {
  public:
   explicit ServiceWorkerMessageFilter(ThreadSafeSender* thread_safe_sender);
 
-  // IPC::Listener implementation
-  virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
-
  protected:
   virtual ~ServiceWorkerMessageFilter();
 
  private:
-  void DispatchMessage(const IPC::Message& msg);
+  // ChildMessageFilter implementation:
+  virtual base::TaskRunner* OverrideTaskRunnerForMessage(
+      const IPC::Message& msg) OVERRIDE;
+  virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
+  virtual void OnStaleMessageReceived(const IPC::Message& msg) OVERRIDE;
+
+  // Message handlers for stale messages.
+  void OnStaleRegistered(int thread_id,
+                         int request_id,
+                         const ServiceWorkerObjectInfo& info);
+  void OnStaleSetCurrentServiceWorker(int thread_id,
+                                      int provider_id,
+                                      const ServiceWorkerObjectInfo& info);
 
   scoped_refptr<base::MessageLoopProxy> main_thread_loop_proxy_;
   scoped_refptr<ThreadSafeSender> thread_safe_sender_;