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