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.
5 #ifndef CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
6 #define CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
8 #include "base/memory/ref_counted.h"
9 #include "content/child/child_message_filter.h"
11 struct IndexedDBDatabaseMetadata;
12 struct IndexedDBMsg_CallbacksUpgradeNeeded_Params;
15 class MessageLoopProxy;
24 class ThreadSafeSender;
26 class IndexedDBMessageFilter : public ChildMessageFilter {
28 explicit IndexedDBMessageFilter(ThreadSafeSender* thread_safe_sender);
31 virtual ~IndexedDBMessageFilter();
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;
40 void OnStaleSuccessIDBDatabase(int32 ipc_thread_id,
41 int32 ipc_callbacks_id,
42 int32 ipc_database_callbacks_id,
44 const IndexedDBDatabaseMetadata&);
45 void OnStaleUpgradeNeeded(const IndexedDBMsg_CallbacksUpgradeNeeded_Params&);
47 scoped_refptr<base::MessageLoopProxy> main_thread_loop_;
48 scoped_refptr<ThreadSafeSender> thread_safe_sender_;
50 DISALLOW_COPY_AND_ASSIGN(IndexedDBMessageFilter);
53 } // namespace content
55 #endif // CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_