Index: content/browser/indexed_db/indexed_db_dispatcher_host.h |
diff --git a/content/browser/indexed_db/indexed_db_dispatcher_host.h b/content/browser/indexed_db/indexed_db_dispatcher_host.h |
index e254cadf486460cd2ba7deae897106dabd1c6a94..c963b8b1722d29f27983f919c18513a56f0604b8 100644 |
--- a/content/browser/indexed_db/indexed_db_dispatcher_host.h |
+++ b/content/browser/indexed_db/indexed_db_dispatcher_host.h |
@@ -12,6 +12,7 @@ |
#include "base/id_map.h" |
#include "base/memory/ref_counted.h" |
#include "content/public/browser/browser_message_filter.h" |
+#include "net/url_request/url_request_context_getter.h" |
#include "url/gurl.h" |
struct IndexedDBDatabaseMetadata; |
@@ -29,6 +30,7 @@ struct IndexedDBHostMsg_FactoryGetDatabaseNames_Params; |
struct IndexedDBHostMsg_FactoryOpen_Params; |
namespace content { |
+class FileAPIMessageFilter; |
class IndexedDBConnection; |
class IndexedDBContextImpl; |
class IndexedDBCursor; |
@@ -42,12 +44,19 @@ class IndexedDBDispatcherHost : public BrowserMessageFilter { |
public: |
// Only call the constructor from the UI thread. |
IndexedDBDispatcherHost(int ipc_process_id, |
- IndexedDBContextImpl* indexed_db_context); |
+ net::URLRequestContextGetter* request_context_getter, |
+ IndexedDBContextImpl* indexed_db_context, |
+ FileAPIMessageFilter* file_api_message_filter); |
+ IndexedDBDispatcherHost(int ipc_process_id, |
+ net::URLRequestContext* request_context, |
+ IndexedDBContextImpl* indexed_db_context, |
+ FileAPIMessageFilter* file_api_message_filter); |
static ::IndexedDBDatabaseMetadata ConvertMetadata( |
const content::IndexedDBDatabaseMetadata& metadata); |
// BrowserMessageFilter implementation. |
+ virtual void OnChannelConnected(int32 peer_pid) OVERRIDE; |
virtual void OnChannelClosing() OVERRIDE; |
virtual void OnDestruct() const OVERRIDE; |
virtual base::TaskRunner* OverrideTaskRunnerForMessage( |
@@ -59,6 +68,9 @@ class IndexedDBDispatcherHost : public BrowserMessageFilter { |
// A shortcut for accessing our context. |
IndexedDBContextImpl* Context() { return indexed_db_context_; } |
+ FileAPIMessageFilter* file_api_message_filter() { |
+ return file_api_message_filter_; |
+ } |
// IndexedDBCallbacks call these methods to add the results into the |
// applicable map. See below for more details. |
@@ -226,7 +238,12 @@ class IndexedDBDispatcherHost : public BrowserMessageFilter { |
RefIDMap<IndexedDBCursor> map_; |
}; |
+ // The getter holds the context until OnChannelConnected() can be called from |
+ // the IO thread, which will extract the net::URLRequestContext from it. |
+ scoped_refptr<net::URLRequestContextGetter> request_context_getter_; |
+ net::URLRequestContext* request_context_; |
scoped_refptr<IndexedDBContextImpl> indexed_db_context_; |
+ FileAPIMessageFilter* file_api_message_filter_; |
// Only access on IndexedDB thread. |
scoped_ptr<DatabaseDispatcherHost> database_dispatcher_host_; |