Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / child / indexed_db / indexed_db_message_filter.h
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_