Home | History | Annotate | Download | only in service_worker
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_MESSAGE_FILTER_H_
      6 #define CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_MESSAGE_FILTER_H_
      7 
      8 #include "content/child/child_message_filter.h"
      9 #include "content/common/content_export.h"
     10 
     11 namespace base {
     12 class MessageLoopProxy;
     13 }
     14 
     15 namespace content {
     16 
     17 struct ServiceWorkerObjectInfo;
     18 class ThreadSafeSender;
     19 
     20 class CONTENT_EXPORT ServiceWorkerMessageFilter
     21     : public NON_EXPORTED_BASE(ChildMessageFilter) {
     22  public:
     23   explicit ServiceWorkerMessageFilter(ThreadSafeSender* thread_safe_sender);
     24 
     25  protected:
     26   virtual ~ServiceWorkerMessageFilter();
     27 
     28  private:
     29   // ChildMessageFilter implementation:
     30   virtual base::TaskRunner* OverrideTaskRunnerForMessage(
     31       const IPC::Message& msg) OVERRIDE;
     32   virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
     33   virtual void OnStaleMessageReceived(const IPC::Message& msg) OVERRIDE;
     34 
     35   // Message handlers for stale messages.
     36   void OnStaleRegistered(int thread_id,
     37                          int request_id,
     38                          const ServiceWorkerObjectInfo& info);
     39   void OnStaleSetServiceWorker(int thread_id,
     40                                int provider_id,
     41                                const ServiceWorkerObjectInfo& info);
     42 
     43   scoped_refptr<base::MessageLoopProxy> main_thread_loop_proxy_;
     44   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(ServiceWorkerMessageFilter);
     47 };
     48 
     49 }  // namespace content
     50 
     51 #endif  // CONTENT_CHILD_SERVICE_WORKER_SERVICE_WORKER_MESSAGE_FILTER_H_
     52