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 11struct IndexedDBDatabaseMetadata; 12struct IndexedDBMsg_CallbacksUpgradeNeeded_Params; 13 14namespace base { 15class MessageLoopProxy; 16} 17 18namespace IPC { 19class Message; 20} 21 22namespace content { 23 24class ThreadSafeSender; 25 26class 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