Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1296)

Side by Side Diff: content/browser/in_process_webkit/indexed_db_dispatcher_host.h

Issue 8747002: Dispatch IndexedDB IPC messages to worker threads (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove OVERRIDE from dtor Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_ 5 #ifndef CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_
6 #define CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_ 6 #define CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_
7 #pragma once 7 #pragma once
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/id_map.h" 10 #include "base/id_map.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 void TransactionComplete(int32 transaction_id); 53 void TransactionComplete(int32 transaction_id);
54 54
55 // A shortcut for accessing our context. 55 // A shortcut for accessing our context.
56 IndexedDBContext* Context() { 56 IndexedDBContext* Context() {
57 return webkit_context_->indexed_db_context(); 57 return webkit_context_->indexed_db_context();
58 } 58 }
59 59
60 // The various IndexedDBCallbacks children call these methods to add the 60 // The various IndexedDBCallbacks children call these methods to add the
61 // results into the applicable map. See below for more details. 61 // results into the applicable map. See below for more details.
62 int32 Add(WebKit::WebIDBCursor* idb_cursor); 62 int32 Add(WebKit::WebIDBCursor* idb_cursor);
63 int32 Add(WebKit::WebIDBDatabase* idb_database, const GURL& origin_url); 63 int32 Add(WebKit::WebIDBDatabase* idb_database,
64 int32 thread_id,
65 const GURL& origin_url);
64 int32 Add(WebKit::WebIDBIndex* idb_index); 66 int32 Add(WebKit::WebIDBIndex* idb_index);
65 int32 Add(WebKit::WebIDBObjectStore* idb_object_store); 67 int32 Add(WebKit::WebIDBObjectStore* idb_object_store);
66 int32 Add(WebKit::WebIDBTransaction* idb_transaction, const GURL& origin_url); 68 int32 Add(WebKit::WebIDBTransaction* idb_transaction,
69 int32 thread_id,
70 const GURL& origin_url);
67 int32 Add(WebKit::WebDOMStringList* domStringList); 71 int32 Add(WebKit::WebDOMStringList* domStringList);
68 72
69 WebKit::WebIDBCursor* GetCursorFromId(int32 cursor_id); 73 WebKit::WebIDBCursor* GetCursorFromId(int32 cursor_id);
70 74
71 private: 75 private:
72 virtual ~IndexedDBDispatcherHost(); 76 virtual ~IndexedDBDispatcherHost();
73 77
74 // Message processing. Most of the work is delegated to the dispatcher hosts 78 // Message processing. Most of the work is delegated to the dispatcher hosts
75 // below. 79 // below.
76 void OnIDBFactoryGetDatabaseNames( 80 void OnIDBFactoryGetDatabaseNames(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 void OnObjectStoreNames(int32 idb_database_id, 115 void OnObjectStoreNames(int32 idb_database_id,
112 std::vector<string16>* object_stores); 116 std::vector<string16>* object_stores);
113 void OnCreateObjectStore( 117 void OnCreateObjectStore(
114 const IndexedDBHostMsg_DatabaseCreateObjectStore_Params& params, 118 const IndexedDBHostMsg_DatabaseCreateObjectStore_Params& params,
115 int32* object_store_id, WebKit::WebExceptionCode* ec); 119 int32* object_store_id, WebKit::WebExceptionCode* ec);
116 void OnDeleteObjectStore(int32 idb_database_id, 120 void OnDeleteObjectStore(int32 idb_database_id,
117 const string16& name, 121 const string16& name,
118 int32 transaction_id, 122 int32 transaction_id,
119 WebKit::WebExceptionCode* ec); 123 WebKit::WebExceptionCode* ec);
120 void OnSetVersion(int32 idb_database_id, 124 void OnSetVersion(int32 idb_database_id,
125 int32 thread_id,
121 int32 response_id, 126 int32 response_id,
122 const string16& version, 127 const string16& version,
123 WebKit::WebExceptionCode* ec); 128 WebKit::WebExceptionCode* ec);
124 void OnTransaction(int32 idb_database_id, 129 void OnTransaction(int32 thread_id,
130 int32 idb_database_id,
125 const std::vector<string16>& names, 131 const std::vector<string16>& names,
126 int32 mode, 132 int32 mode,
127 int32* idb_transaction_id, 133 int32* idb_transaction_id,
128 WebKit::WebExceptionCode* ec); 134 WebKit::WebExceptionCode* ec);
129 void OnOpen(int32 idb_database_id, int32 response_id); 135 void OnOpen(int32 idb_database_id, int32 thread_id, int32 response_id);
130 void OnClose(int32 idb_database_id); 136 void OnClose(int32 idb_database_id);
131 void OnDestroyed(int32 idb_database_id); 137 void OnDestroyed(int32 idb_database_id);
132 138
133 IndexedDBDispatcherHost* parent_; 139 IndexedDBDispatcherHost* parent_;
134 IDMap<WebKit::WebIDBDatabase, IDMapOwnPointer> map_; 140 IDMap<WebKit::WebIDBDatabase, IDMapOwnPointer> map_;
135 WebIDBObjectIDToURLMap database_url_map_; 141 WebIDBObjectIDToURLMap database_url_map_;
136 }; 142 };
137 143
138 class IndexDispatcherHost { 144 class IndexDispatcherHost {
139 public: 145 public:
140 explicit IndexDispatcherHost(IndexedDBDispatcherHost* parent); 146 explicit IndexDispatcherHost(IndexedDBDispatcherHost* parent);
141 ~IndexDispatcherHost(); 147 ~IndexDispatcherHost();
142 148
143 bool OnMessageReceived(const IPC::Message& message, bool *msg_is_ok); 149 bool OnMessageReceived(const IPC::Message& message, bool *msg_is_ok);
144 void Send(IPC::Message* message); 150 void Send(IPC::Message* message);
145 151
146 void OnName(int32 idb_index_id, string16* name); 152 void OnName(int32 idb_index_id, string16* name);
147 void OnStoreName(int32 idb_index_id, string16* store_name); 153 void OnStoreName(int32 idb_index_id, string16* store_name);
148 void OnKeyPath(int32 idb_index_id, NullableString16* key_path); 154 void OnKeyPath(int32 idb_index_id, NullableString16* key_path);
149 void OnUnique(int32 idb_index_id, bool* unique); 155 void OnUnique(int32 idb_index_id, bool* unique);
150 void OnOpenObjectCursor( 156 void OnOpenObjectCursor(
151 const IndexedDBHostMsg_IndexOpenCursor_Params& params, 157 const IndexedDBHostMsg_IndexOpenCursor_Params& params,
152 WebKit::WebExceptionCode* ec); 158 WebKit::WebExceptionCode* ec);
153 void OnOpenKeyCursor(const IndexedDBHostMsg_IndexOpenCursor_Params& params, 159 void OnOpenKeyCursor(const IndexedDBHostMsg_IndexOpenCursor_Params& params,
154 WebKit::WebExceptionCode* ec); 160 WebKit::WebExceptionCode* ec);
155 void OnGetObject(int idb_index_id, 161 void OnGetObject(int idb_index_id,
162 int32 thread_id,
156 int32 response_id, 163 int32 response_id,
157 const IndexedDBKey& key, 164 const IndexedDBKey& key,
158 int32 transaction_id, 165 int32 transaction_id,
159 WebKit::WebExceptionCode* ec); 166 WebKit::WebExceptionCode* ec);
160 void OnGetKey(int idb_index_id, 167 void OnGetKey(int idb_index_id,
168 int32 thread_id,
161 int32 response_id, 169 int32 response_id,
162 const IndexedDBKey& key, 170 const IndexedDBKey& key,
163 int32 transaction_id, 171 int32 transaction_id,
164 WebKit::WebExceptionCode* ec); 172 WebKit::WebExceptionCode* ec);
165 void OnDestroyed(int32 idb_index_id); 173 void OnDestroyed(int32 idb_index_id);
166 174
167 IndexedDBDispatcherHost* parent_; 175 IndexedDBDispatcherHost* parent_;
168 IDMap<WebKit::WebIDBIndex, IDMapOwnPointer> map_; 176 IDMap<WebKit::WebIDBIndex, IDMapOwnPointer> map_;
169 }; 177 };
170 178
171 class ObjectStoreDispatcherHost { 179 class ObjectStoreDispatcherHost {
172 public: 180 public:
173 explicit ObjectStoreDispatcherHost(IndexedDBDispatcherHost* parent); 181 explicit ObjectStoreDispatcherHost(IndexedDBDispatcherHost* parent);
174 ~ObjectStoreDispatcherHost(); 182 ~ObjectStoreDispatcherHost();
175 183
176 bool OnMessageReceived(const IPC::Message& message, bool *msg_is_ok); 184 bool OnMessageReceived(const IPC::Message& message, bool *msg_is_ok);
177 void Send(IPC::Message* message); 185 void Send(IPC::Message* message);
178 186
179 void OnName(int32 idb_object_store_id, string16* name); 187 void OnName(int32 idb_object_store_id, string16* name);
180 void OnKeyPath(int32 idb_object_store_id, NullableString16* keyPath); 188 void OnKeyPath(int32 idb_object_store_id, NullableString16* keyPath);
181 void OnIndexNames(int32 idb_object_store_id, 189 void OnIndexNames(int32 idb_object_store_id,
182 std::vector<string16>* index_names); 190 std::vector<string16>* index_names);
183 void OnGet(int idb_object_store_id, 191 void OnGet(int idb_object_store_id,
192 int32 thread_id,
184 int32 response_id, 193 int32 response_id,
185 const IndexedDBKey& key, 194 const IndexedDBKey& key,
186 int32 transaction_id, 195 int32 transaction_id,
187 WebKit::WebExceptionCode* ec); 196 WebKit::WebExceptionCode* ec);
188 void OnPut(const IndexedDBHostMsg_ObjectStorePut_Params& params, 197 void OnPut(const IndexedDBHostMsg_ObjectStorePut_Params& params,
189 WebKit::WebExceptionCode* ec); 198 WebKit::WebExceptionCode* ec);
190 void OnDelete(int idb_object_store_id, 199 void OnDelete(int idb_object_store_id,
200 int32 thread_id,
191 int32 response_id, 201 int32 response_id,
192 const IndexedDBKey& key, 202 const IndexedDBKey& key,
193 int32 transaction_id, 203 int32 transaction_id,
194 WebKit::WebExceptionCode* ec); 204 WebKit::WebExceptionCode* ec);
195 void OnClear(int idb_object_store_id, 205 void OnClear(int idb_object_store_id,
206 int32 thread_id,
196 int32 response_id, 207 int32 response_id,
197 int32 transaction_id, 208 int32 transaction_id,
198 WebKit::WebExceptionCode* ec); 209 WebKit::WebExceptionCode* ec);
199 void OnCreateIndex( 210 void OnCreateIndex(
200 const IndexedDBHostMsg_ObjectStoreCreateIndex_Params& params, 211 const IndexedDBHostMsg_ObjectStoreCreateIndex_Params& params,
201 int32* index_id, 212 int32* index_id,
202 WebKit::WebExceptionCode* ec); 213 WebKit::WebExceptionCode* ec);
203 void OnIndex(int32 idb_object_store_id, 214 void OnIndex(int32 idb_object_store_id,
204 const string16& name, 215 const string16& name,
205 int32* idb_index_id, 216 int32* idb_index_id,
(...skipping 18 matching lines...) Expand all
224 235
225 bool OnMessageReceived(const IPC::Message& message, bool *msg_is_ok); 236 bool OnMessageReceived(const IPC::Message& message, bool *msg_is_ok);
226 void Send(IPC::Message* message); 237 void Send(IPC::Message* message);
227 238
228 void OnDirection(int32 idb_object_store_id, int32* direction); 239 void OnDirection(int32 idb_object_store_id, int32* direction);
229 void OnKey(int32 idb_object_store_id, IndexedDBKey* key); 240 void OnKey(int32 idb_object_store_id, IndexedDBKey* key);
230 void OnPrimaryKey(int32 idb_object_store_id, IndexedDBKey* primary_key); 241 void OnPrimaryKey(int32 idb_object_store_id, IndexedDBKey* primary_key);
231 void OnValue(int32 idb_object_store_id, 242 void OnValue(int32 idb_object_store_id,
232 content::SerializedScriptValue* script_value); 243 content::SerializedScriptValue* script_value);
233 void OnUpdate(int32 idb_object_store_id, 244 void OnUpdate(int32 idb_object_store_id,
245 int32 thread_id,
234 int32 response_id, 246 int32 response_id,
235 const content::SerializedScriptValue& value, 247 const content::SerializedScriptValue& value,
236 WebKit::WebExceptionCode* ec); 248 WebKit::WebExceptionCode* ec);
237 void OnContinue(int32 idb_object_store_id, 249 void OnContinue(int32 idb_object_store_id,
250 int32 thread_id,
238 int32 response_id, 251 int32 response_id,
239 const IndexedDBKey& key, 252 const IndexedDBKey& key,
240 WebKit::WebExceptionCode* ec); 253 WebKit::WebExceptionCode* ec);
241 void OnPrefetch(int32 idb_cursor_id, 254 void OnPrefetch(int32 idb_cursor_id,
255 int32 thread_id,
242 int32 response_id, 256 int32 response_id,
243 int n, 257 int n,
244 WebKit::WebExceptionCode* ec); 258 WebKit::WebExceptionCode* ec);
245 void OnPrefetchReset(int32 idb_cursor_id, int used_prefetches, 259 void OnPrefetchReset(int32 idb_cursor_id, int used_prefetches,
246 int unused_prefetches); 260 int unused_prefetches);
247 void OnDelete(int32 idb_object_store_id, 261 void OnDelete(int32 idb_object_store_id,
262 int32 thread_id,
248 int32 response_id, 263 int32 response_id,
249 WebKit::WebExceptionCode* ec); 264 WebKit::WebExceptionCode* ec);
250 void OnDestroyed(int32 idb_cursor_id); 265 void OnDestroyed(int32 idb_cursor_id);
251 266
252 IndexedDBDispatcherHost* parent_; 267 IndexedDBDispatcherHost* parent_;
253 IDMap<WebKit::WebIDBCursor, IDMapOwnPointer> map_; 268 IDMap<WebKit::WebIDBCursor, IDMapOwnPointer> map_;
254 }; 269 };
255 270
256 class TransactionDispatcherHost { 271 class TransactionDispatcherHost {
257 public: 272 public:
(...skipping 30 matching lines...) Expand all
288 scoped_ptr<CursorDispatcherHost> cursor_dispatcher_host_; 303 scoped_ptr<CursorDispatcherHost> cursor_dispatcher_host_;
289 scoped_ptr<TransactionDispatcherHost> transaction_dispatcher_host_; 304 scoped_ptr<TransactionDispatcherHost> transaction_dispatcher_host_;
290 305
291 // Used to dispatch messages to the correct view host. 306 // Used to dispatch messages to the correct view host.
292 int process_id_; 307 int process_id_;
293 308
294 DISALLOW_IMPLICIT_CONSTRUCTORS(IndexedDBDispatcherHost); 309 DISALLOW_IMPLICIT_CONSTRUCTORS(IndexedDBDispatcherHost);
295 }; 310 };
296 311
297 #endif // CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_ 312 #endif // CONTENT_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698