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

Side by Side Diff: chrome/browser/in_process_webkit/indexed_db_dispatcher_host.cc

Issue 3107029: Revert 56862 - Add transaction coordinator. Allow idle transactions to be abo... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 4 months 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h" 5 #include "chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/chrome_thread.h" 8 #include "chrome/browser/chrome_thread.h"
9 #include "chrome/browser/in_process_webkit/indexed_db_callbacks.h" 9 #include "chrome/browser/in_process_webkit/indexed_db_callbacks.h"
10 #include "chrome/browser/renderer_host/browser_render_process_host.h" 10 #include "chrome/browser/renderer_host/browser_render_process_host.h"
11 #include "chrome/browser/renderer_host/resource_message_filter.h" 11 #include "chrome/browser/renderer_host/resource_message_filter.h"
12 #include "chrome/common/chrome_switches.h" 12 #include "chrome/common/chrome_switches.h"
13 #include "chrome/common/render_messages.h" 13 #include "chrome/common/render_messages.h"
14 #include "chrome/common/serialized_script_value.h" 14 #include "chrome/common/serialized_script_value.h"
15 #include "third_party/WebKit/WebKit/chromium/public/WebDOMStringList.h" 15 #include "third_party/WebKit/WebKit/chromium/public/WebDOMStringList.h"
16 #include "third_party/WebKit/WebKit/chromium/public/WebIDBCursor.h" 16 #include "third_party/WebKit/WebKit/chromium/public/WebIDBCursor.h"
17 #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabase.h" 17 #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabase.h"
18 #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabaseError.h" 18 #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabaseError.h"
19 #include "third_party/WebKit/WebKit/chromium/public/WebIDBKeyRange.h" 19 #include "third_party/WebKit/WebKit/chromium/public/WebIDBKeyRange.h"
20 #include "third_party/WebKit/WebKit/chromium/public/WebIDBIndex.h" 20 #include "third_party/WebKit/WebKit/chromium/public/WebIDBIndex.h"
21 #include "third_party/WebKit/WebKit/chromium/public/WebIDBFactory.h" 21 #include "third_party/WebKit/WebKit/chromium/public/WebIDBFactory.h"
22 #include "third_party/WebKit/WebKit/chromium/public/WebIDBObjectStore.h" 22 #include "third_party/WebKit/WebKit/chromium/public/WebIDBObjectStore.h"
23 #include "third_party/WebKit/WebKit/chromium/public/WebIDBTransaction.h"
24 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" 23 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h"
25 #include "third_party/WebKit/WebKit/chromium/public/WebVector.h"
26 24
27 using WebKit::WebDOMStringList; 25 using WebKit::WebDOMStringList;
28 using WebKit::WebIDBCursor; 26 using WebKit::WebIDBCursor;
29 using WebKit::WebIDBDatabase; 27 using WebKit::WebIDBDatabase;
30 using WebKit::WebIDBDatabaseError; 28 using WebKit::WebIDBDatabaseError;
31 using WebKit::WebIDBIndex; 29 using WebKit::WebIDBIndex;
32 using WebKit::WebIDBKey; 30 using WebKit::WebIDBKey;
33 using WebKit::WebIDBKeyRange; 31 using WebKit::WebIDBKeyRange;
34 using WebKit::WebIDBObjectStore; 32 using WebKit::WebIDBObjectStore;
35 using WebKit::WebIDBTransaction;
36 using WebKit::WebSecurityOrigin; 33 using WebKit::WebSecurityOrigin;
37 using WebKit::WebSerializedScriptValue; 34 using WebKit::WebSerializedScriptValue;
38 using WebKit::WebVector;
39 35
40 IndexedDBDispatcherHost::IndexedDBDispatcherHost( 36 IndexedDBDispatcherHost::IndexedDBDispatcherHost(
41 IPC::Message::Sender* sender, WebKitContext* webkit_context) 37 IPC::Message::Sender* sender, WebKitContext* webkit_context)
42 : sender_(sender), 38 : sender_(sender),
43 webkit_context_(webkit_context), 39 webkit_context_(webkit_context),
44 ALLOW_THIS_IN_INITIALIZER_LIST(database_dispatcher_host_( 40 ALLOW_THIS_IN_INITIALIZER_LIST(database_dispatcher_host_(
45 new DatabaseDispatcherHost(this))), 41 new DatabaseDispatcherHost(this))),
46 ALLOW_THIS_IN_INITIALIZER_LIST(index_dispatcher_host_( 42 ALLOW_THIS_IN_INITIALIZER_LIST(index_dispatcher_host_(
47 new IndexDispatcherHost(this))), 43 new IndexDispatcherHost(this))),
48 ALLOW_THIS_IN_INITIALIZER_LIST(object_store_dispatcher_host_( 44 ALLOW_THIS_IN_INITIALIZER_LIST(object_store_dispatcher_host_(
49 new ObjectStoreDispatcherHost(this))), 45 new ObjectStoreDispatcherHost(this))),
50 ALLOW_THIS_IN_INITIALIZER_LIST(cursor_dispatcher_host_( 46 ALLOW_THIS_IN_INITIALIZER_LIST(cursor_dispatcher_host_(
51 new CursorDispatcherHost(this))), 47 new CursorDispatcherHost(this))),
52 ALLOW_THIS_IN_INITIALIZER_LIST(transaction_dispatcher_host_(
53 new TransactionDispatcherHost(this))),
54 process_handle_(0) { 48 process_handle_(0) {
55 DCHECK(sender_); 49 DCHECK(sender_);
56 DCHECK(webkit_context_.get()); 50 DCHECK(webkit_context_.get());
57 } 51 }
58 52
59 IndexedDBDispatcherHost::~IndexedDBDispatcherHost() { 53 IndexedDBDispatcherHost::~IndexedDBDispatcherHost() {
60 } 54 }
61 55
62 void IndexedDBDispatcherHost::Init(int process_id, 56 void IndexedDBDispatcherHost::Init(int process_id,
63 base::ProcessHandle process_handle) { 57 base::ProcessHandle process_handle) {
(...skipping 27 matching lines...) Expand all
91 bool IndexedDBDispatcherHost::OnMessageReceived(const IPC::Message& message) { 85 bool IndexedDBDispatcherHost::OnMessageReceived(const IPC::Message& message) {
92 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); 86 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
93 DCHECK(process_handle_); 87 DCHECK(process_handle_);
94 88
95 switch (message.type()) { 89 switch (message.type()) {
96 case ViewHostMsg_IDBCursorDestroyed::ID: 90 case ViewHostMsg_IDBCursorDestroyed::ID:
97 case ViewHostMsg_IDBCursorDirection::ID: 91 case ViewHostMsg_IDBCursorDirection::ID:
98 case ViewHostMsg_IDBCursorKey::ID: 92 case ViewHostMsg_IDBCursorKey::ID:
99 case ViewHostMsg_IDBCursorValue::ID: 93 case ViewHostMsg_IDBCursorValue::ID:
100 case ViewHostMsg_IDBFactoryOpen::ID: 94 case ViewHostMsg_IDBFactoryOpen::ID:
101 case ViewHostMsg_IDBFactoryAbortPendingTransactions::ID:
102 case ViewHostMsg_IDBDatabaseName::ID: 95 case ViewHostMsg_IDBDatabaseName::ID:
103 case ViewHostMsg_IDBDatabaseDescription::ID: 96 case ViewHostMsg_IDBDatabaseDescription::ID:
104 case ViewHostMsg_IDBDatabaseVersion::ID: 97 case ViewHostMsg_IDBDatabaseVersion::ID:
105 case ViewHostMsg_IDBDatabaseObjectStores::ID: 98 case ViewHostMsg_IDBDatabaseObjectStores::ID:
106 case ViewHostMsg_IDBDatabaseCreateObjectStore::ID: 99 case ViewHostMsg_IDBDatabaseCreateObjectStore::ID:
107 case ViewHostMsg_IDBDatabaseObjectStore::ID: 100 case ViewHostMsg_IDBDatabaseObjectStore::ID:
108 case ViewHostMsg_IDBDatabaseRemoveObjectStore::ID: 101 case ViewHostMsg_IDBDatabaseRemoveObjectStore::ID:
109 case ViewHostMsg_IDBDatabaseTransaction::ID:
110 case ViewHostMsg_IDBDatabaseDestroyed::ID: 102 case ViewHostMsg_IDBDatabaseDestroyed::ID:
111 case ViewHostMsg_IDBIndexName::ID: 103 case ViewHostMsg_IDBIndexName::ID:
112 case ViewHostMsg_IDBIndexKeyPath::ID: 104 case ViewHostMsg_IDBIndexKeyPath::ID:
113 case ViewHostMsg_IDBIndexUnique::ID: 105 case ViewHostMsg_IDBIndexUnique::ID:
114 case ViewHostMsg_IDBIndexDestroyed::ID: 106 case ViewHostMsg_IDBIndexDestroyed::ID:
115 case ViewHostMsg_IDBObjectStoreName::ID: 107 case ViewHostMsg_IDBObjectStoreName::ID:
116 case ViewHostMsg_IDBObjectStoreKeyPath::ID: 108 case ViewHostMsg_IDBObjectStoreKeyPath::ID:
117 case ViewHostMsg_IDBObjectStoreIndexNames::ID: 109 case ViewHostMsg_IDBObjectStoreIndexNames::ID:
118 case ViewHostMsg_IDBObjectStoreGet::ID: 110 case ViewHostMsg_IDBObjectStoreGet::ID:
119 case ViewHostMsg_IDBObjectStoreOpenCursor::ID: 111 case ViewHostMsg_IDBObjectStoreOpenCursor::ID:
120 case ViewHostMsg_IDBObjectStorePut::ID: 112 case ViewHostMsg_IDBObjectStorePut::ID:
121 case ViewHostMsg_IDBObjectStoreRemove::ID: 113 case ViewHostMsg_IDBObjectStoreRemove::ID:
122 case ViewHostMsg_IDBObjectStoreCreateIndex::ID: 114 case ViewHostMsg_IDBObjectStoreCreateIndex::ID:
123 case ViewHostMsg_IDBObjectStoreIndex::ID: 115 case ViewHostMsg_IDBObjectStoreIndex::ID:
124 case ViewHostMsg_IDBObjectStoreRemoveIndex::ID: 116 case ViewHostMsg_IDBObjectStoreRemoveIndex::ID:
125 case ViewHostMsg_IDBObjectStoreDestroyed::ID: 117 case ViewHostMsg_IDBObjectStoreDestroyed::ID:
126 case ViewHostMsg_IDBTransactionDestroyed::ID:
127 break; 118 break;
128 default: 119 default:
129 return false; 120 return false;
130 } 121 }
131 122
132 bool success = ChromeThread::PostTask( 123 bool success = ChromeThread::PostTask(
133 ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod( 124 ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod(
134 this, &IndexedDBDispatcherHost::OnMessageReceivedWebKit, message)); 125 this, &IndexedDBDispatcherHost::OnMessageReceivedWebKit, message));
135 DCHECK(success); 126 DCHECK(success);
136 return true; 127 return true;
(...skipping 24 matching lines...) Expand all
161 void IndexedDBDispatcherHost::OnMessageReceivedWebKit( 152 void IndexedDBDispatcherHost::OnMessageReceivedWebKit(
162 const IPC::Message& message) { 153 const IPC::Message& message) {
163 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); 154 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT));
164 DCHECK(process_handle_); 155 DCHECK(process_handle_);
165 156
166 bool msg_is_ok = true; 157 bool msg_is_ok = true;
167 bool handled = 158 bool handled =
168 database_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) || 159 database_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) ||
169 index_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) || 160 index_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) ||
170 object_store_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) || 161 object_store_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) ||
171 cursor_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) || 162 cursor_dispatcher_host_->OnMessageReceived(message, &msg_is_ok);
172 transaction_dispatcher_host_->OnMessageReceived(message, &msg_is_ok);
173 163
174 if (!handled) { 164 if (!handled) {
175 handled = true; 165 handled = true;
176 DCHECK(msg_is_ok); 166 DCHECK(msg_is_ok);
177 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost, message, msg_is_ok) 167 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost, message, msg_is_ok)
178 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBFactoryOpen, 168 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBFactoryOpen,
179 OnIDBFactoryOpen) 169 OnIDBFactoryOpen)
180 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBFactoryAbortPendingTransactions,
181 OnIDBFactoryAbortPendingTransactions)
182 IPC_MESSAGE_UNHANDLED(handled = false) 170 IPC_MESSAGE_UNHANDLED(handled = false)
183 IPC_END_MESSAGE_MAP() 171 IPC_END_MESSAGE_MAP()
184 } 172 }
185 173
186 DCHECK(handled); 174 DCHECK(handled);
187 if (!msg_is_ok) { 175 if (!msg_is_ok) {
188 BrowserRenderProcessHost::BadMessageTerminateProcess(message.type(), 176 BrowserRenderProcessHost::BadMessageTerminateProcess(message.type(),
189 process_handle_); 177 process_handle_);
190 } 178 }
191 } 179 }
192 180
193 int32 IndexedDBDispatcherHost::Add(WebIDBCursor* idb_cursor) { 181 int32 IndexedDBDispatcherHost::Add(WebIDBCursor* idb_cursor) {
194 return cursor_dispatcher_host_->map_.Add(idb_cursor); 182 return cursor_dispatcher_host_->map_.Add(idb_cursor);
195 } 183 }
196 184
197 int32 IndexedDBDispatcherHost::Add(WebIDBDatabase* idb_database) { 185 int32 IndexedDBDispatcherHost::Add(WebIDBDatabase* idb_database) {
198 return database_dispatcher_host_->map_.Add(idb_database); 186 return database_dispatcher_host_->map_.Add(idb_database);
199 } 187 }
200 188
201 int32 IndexedDBDispatcherHost::Add(WebIDBIndex* idb_index) { 189 int32 IndexedDBDispatcherHost::Add(WebIDBIndex* idb_index) {
202 return index_dispatcher_host_->map_.Add(idb_index); 190 return index_dispatcher_host_->map_.Add(idb_index);
203 } 191 }
204 192
205 int32 IndexedDBDispatcherHost::Add(WebIDBObjectStore* idb_object_store) { 193 int32 IndexedDBDispatcherHost::Add(WebIDBObjectStore* idb_object_store) {
206 return object_store_dispatcher_host_->map_.Add(idb_object_store); 194 return object_store_dispatcher_host_->map_.Add(idb_object_store);
207 } 195 }
208 196
209 void IndexedDBDispatcherHost::Add(WebIDBTransaction* idb_transaction) {
210 transaction_dispatcher_host_->map_.AddWithID(
211 idb_transaction, idb_transaction->id());
212 }
213
214 void IndexedDBDispatcherHost::OnIDBFactoryOpen( 197 void IndexedDBDispatcherHost::OnIDBFactoryOpen(
215 const ViewHostMsg_IDBFactoryOpen_Params& params) { 198 const ViewHostMsg_IDBFactoryOpen_Params& params) {
216 // TODO(jorlow): Check the content settings map and use params.routing_id_ 199 // TODO(jorlow): Check the content settings map and use params.routing_id_
217 // if it's necessary to ask the user for permission. 200 // if it's necessary to ask the user for permission.
218 201
219 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); 202 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT));
220 Context()->GetIDBFactory()->open( 203 Context()->GetIDBFactory()->open(
221 params.name_, params.description_, 204 params.name_, params.description_,
222 new IndexedDBCallbacks<WebIDBDatabase>(this, params.response_id_), 205 new IndexedDBCallbacks<WebIDBDatabase>(this, params.response_id_),
223 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin_), NULL); 206 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin_), NULL);
224 } 207 }
225 208
226 void IndexedDBDispatcherHost::OnIDBFactoryAbortPendingTransactions(
227 const std::vector<int32>& ids) {
228 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT));
229
230 WebVector<int32> pendingIDs = ids;
231 Context()->GetIDBFactory()->abortPendingTransactions(pendingIDs);
232 }
233
234 ////////////////////////////////////////////////////////////////////// 209 //////////////////////////////////////////////////////////////////////
235 // Helper templates. 210 // Helper templates.
236 // 211 //
237 212
238 template <typename ObjectType> 213 template <typename ObjectType>
239 ObjectType* IndexedDBDispatcherHost::GetOrTerminateProcess( 214 ObjectType* IndexedDBDispatcherHost::GetOrTerminateProcess(
240 IDMap<ObjectType, IDMapOwnPointer>* map, int32 return_object_id, 215 IDMap<ObjectType, IDMapOwnPointer>* map, int32 return_object_id,
241 IPC::Message* reply_msg, uint32 message_type) { 216 IPC::Message* reply_msg, uint32 message_type) {
242 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); 217 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT));
243 ObjectType* return_object = map->Lookup(return_object_id); 218 ObjectType* return_object = map->Lookup(return_object_id);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 OnDescription) 270 OnDescription)
296 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseVersion, OnVersion) 271 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseVersion, OnVersion)
297 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseObjectStores, 272 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseObjectStores,
298 OnObjectStores) 273 OnObjectStores)
299 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseCreateObjectStore, 274 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseCreateObjectStore,
300 OnCreateObjectStore) 275 OnCreateObjectStore)
301 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseObjectStore, 276 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseObjectStore,
302 OnObjectStore) 277 OnObjectStore)
303 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseRemoveObjectStore, 278 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseRemoveObjectStore,
304 OnRemoveObjectStore) 279 OnRemoveObjectStore)
305 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseTransaction,
306 OnTransaction)
307 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseDestroyed, OnDestroyed) 280 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseDestroyed, OnDestroyed)
308 IPC_MESSAGE_UNHANDLED(handled = false) 281 IPC_MESSAGE_UNHANDLED(handled = false)
309 IPC_END_MESSAGE_MAP() 282 IPC_END_MESSAGE_MAP()
310 return handled; 283 return handled;
311 } 284 }
312 285
313 void IndexedDBDispatcherHost::DatabaseDispatcherHost::Send( 286 void IndexedDBDispatcherHost::DatabaseDispatcherHost::Send(
314 IPC::Message* message) { 287 IPC::Message* message) {
315 // The macro magic in OnMessageReceived requires this to link, but it should 288 // The macro magic in OnMessageReceived requires this to link, but it should
316 // never actually be called. 289 // never actually be called.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); 361 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT));
389 WebIDBDatabase* idb_database = parent_->GetOrTerminateProcess( 362 WebIDBDatabase* idb_database = parent_->GetOrTerminateProcess(
390 &map_, idb_database_id, NULL, 363 &map_, idb_database_id, NULL,
391 ViewHostMsg_IDBDatabaseRemoveObjectStore::ID); 364 ViewHostMsg_IDBDatabaseRemoveObjectStore::ID);
392 if (!idb_database) 365 if (!idb_database)
393 return; 366 return;
394 idb_database->removeObjectStore( 367 idb_database->removeObjectStore(
395 name, new IndexedDBCallbacks<WebIDBObjectStore>(parent_, response_id)); 368 name, new IndexedDBCallbacks<WebIDBObjectStore>(parent_, response_id));
396 } 369 }
397 370
398 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnTransaction(
399 int32 idb_database_id, const std::vector<string16>& names,
400 int32 mode, int32 timeout, IPC::Message* reply_msg) {
401 WebIDBDatabase* database = parent_->GetOrTerminateProcess(
402 &map_, idb_database_id, reply_msg,
403 ViewHostMsg_IDBDatabaseTransaction::ID);
404 if (!database)
405 return;
406
407 WebDOMStringList object_stores;
408 for (std::vector<string16>::const_iterator it = names.begin();
409 it != names.end(); ++it) {
410 object_stores.append(*it);
411 }
412
413 WebIDBTransaction* transaction = database->transaction(
414 object_stores, mode, timeout);
415 transaction->setCallbacks(
416 new IndexedDBTransactionCallbacks(parent_, transaction->id()));
417 parent_->Add(transaction);
418 ViewHostMsg_IDBDatabaseTransaction::WriteReplyParams(
419 reply_msg, transaction->id());
420 parent_->Send(reply_msg);
421 }
422
423 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDestroyed( 371 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnDestroyed(
424 int32 object_id) { 372 int32 object_id) {
425 parent_->DestroyObject(&map_, object_id, 373 parent_->DestroyObject(&map_, object_id,
426 ViewHostMsg_IDBDatabaseDestroyed::ID); 374 ViewHostMsg_IDBDatabaseDestroyed::ID);
427 } 375 }
428 376
429 377
430 ////////////////////////////////////////////////////////////////////// 378 //////////////////////////////////////////////////////////////////////
431 // IndexedDBDispatcherHost::IndexDispatcherHost 379 // IndexedDBDispatcherHost::IndexDispatcherHost
432 // 380 //
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBCursorDirection, 608 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBCursorDirection,
661 OnDirection) 609 OnDirection)
662 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBCursorKey, OnKey) 610 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBCursorKey, OnKey)
663 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBCursorValue, OnValue) 611 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBCursorValue, OnValue)
664 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBCursorDestroyed, OnDestroyed) 612 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBCursorDestroyed, OnDestroyed)
665 IPC_MESSAGE_UNHANDLED(handled = false) 613 IPC_MESSAGE_UNHANDLED(handled = false)
666 IPC_END_MESSAGE_MAP() 614 IPC_END_MESSAGE_MAP()
667 return handled; 615 return handled;
668 } 616 }
669 617
670
671 void IndexedDBDispatcherHost::CursorDispatcherHost::Send( 618 void IndexedDBDispatcherHost::CursorDispatcherHost::Send(
672 IPC::Message* message) { 619 IPC::Message* message) {
673 // The macro magic in OnMessageReceived requires this to link, but it should 620 // The macro magic in OnMessageReceived requires this to link, but it should
674 // never actually be called. 621 // never actually be called.
675 NOTREACHED(); 622 NOTREACHED();
676 parent_->Send(message); 623 parent_->Send(message);
677 } 624 }
678 625
679 void IndexedDBDispatcherHost::CursorDispatcherHost::OnOpenCursor( 626 void IndexedDBDispatcherHost::CursorDispatcherHost::OnOpenCursor(
680 const ViewHostMsg_IDBObjectStoreOpenCursor_Params& params) { 627 const ViewHostMsg_IDBObjectStoreOpenCursor_Params& params) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 SerializedScriptValue value(idb_cursor->value()); 675 SerializedScriptValue value(idb_cursor->value());
729 ViewHostMsg_IDBCursorValue::WriteReplyParams(reply_msg, value); 676 ViewHostMsg_IDBCursorValue::WriteReplyParams(reply_msg, value);
730 parent_->Send(reply_msg); 677 parent_->Send(reply_msg);
731 } 678 }
732 679
733 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( 680 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed(
734 int32 object_id) { 681 int32 object_id) {
735 parent_->DestroyObject( 682 parent_->DestroyObject(
736 &map_, object_id, ViewHostMsg_IDBCursorDestroyed::ID); 683 &map_, object_id, ViewHostMsg_IDBCursorDestroyed::ID);
737 } 684 }
738
739 //////////////////////////////////////////////////////////////////////
740 // IndexedDBDispatcherHost::TransactionDispatcherHost
741 //
742
743 IndexedDBDispatcherHost::TransactionDispatcherHost::TransactionDispatcherHost(
744 IndexedDBDispatcherHost* parent)
745 : parent_(parent) {
746 }
747
748 IndexedDBDispatcherHost::
749 TransactionDispatcherHost::~TransactionDispatcherHost() {
750 }
751
752 bool IndexedDBDispatcherHost::TransactionDispatcherHost::OnMessageReceived(
753 const IPC::Message& message, bool* msg_is_ok) {
754 bool handled = true;
755 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::TransactionDispatcherHost,
756 message, *msg_is_ok)
757 IPC_MESSAGE_HANDLER(ViewHostMsg_IDBTransactionDestroyed, OnDestroyed)
758 IPC_MESSAGE_UNHANDLED(handled = false)
759 IPC_END_MESSAGE_MAP()
760 return handled;
761 }
762
763 void IndexedDBDispatcherHost::TransactionDispatcherHost::Send(
764 IPC::Message* message) {
765 // The macro magic in OnMessageReceived requires this to link, but it should
766 // never actually be called.
767 NOTREACHED();
768 parent_->Send(message);
769 }
770
771 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed(
772 int32 object_id) {
773 parent_->DestroyObject(
774 &map_, object_id, ViewHostMsg_IDBTransactionDestroyed::ID);
775 }
OLDNEW
« no previous file with comments | « chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h ('k') | chrome/chrome_renderer.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698