Home | History | Annotate | Download | only in indexed_db
      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_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
      6 #define CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
      7 
      8 #include "base/memory/ref_counted.h"
      9 #include "content/child/child_message_filter.h"
     10 
     11 struct IndexedDBDatabaseMetadata;
     12 struct IndexedDBMsg_CallbacksUpgradeNeeded_Params;
     13 
     14 namespace base {
     15 class MessageLoopProxy;
     16 }
     17 
     18 namespace IPC {
     19 class Message;
     20 }
     21 
     22 namespace content {
     23 
     24 class ThreadSafeSender;
     25 
     26 class IndexedDBMessageFilter : public ChildMessageFilter {
     27  public:
     28   explicit IndexedDBMessageFilter(ThreadSafeSender* thread_safe_sender);
     29 
     30  protected:
     31   virtual ~IndexedDBMessageFilter();
     32 
     33  private:
     34   // ChildMessageFilter implementation:
     35   virtual base::TaskRunner* OverrideTaskRunnerForMessage(
     36       const IPC::Message& msg) OVERRIDE;
     37   virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
     38   virtual void OnStaleMessageReceived(const IPC::Message& msg) OVERRIDE;
     39 
     40   void OnStaleSuccessIDBDatabase(int32 ipc_thread_id,
     41                                  int32 ipc_callbacks_id,
     42                                  int32 ipc_database_callbacks_id,
     43                                  int32 ipc_object_id,
     44                                  const IndexedDBDatabaseMetadata&);
     45   void OnStaleUpgradeNeeded(const IndexedDBMsg_CallbacksUpgradeNeeded_Params&);
     46 
     47   scoped_refptr<base::MessageLoopProxy> main_thread_loop_;
     48   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
     49 
     50   DISALLOW_COPY_AND_ASSIGN(IndexedDBMessageFilter);
     51 };
     52 
     53 }  // namespace content
     54 
     55 #endif  // CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
     56