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

Unified Diff: content/renderer/indexed_db_dispatcher.cc

Issue 8747002: Dispatch IndexedDB IPC messages to worker threads (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: inject thread ids into ipcs Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/indexed_db_dispatcher.cc
diff --git a/content/renderer/indexed_db_dispatcher.cc b/content/renderer/indexed_db_dispatcher.cc
index 8b3ddda96cea6fb9d2aca33816449674ae090b2a..8ca651e150999d6f755772231a3794e5802e8d86 100644
--- a/content/renderer/indexed_db_dispatcher.cc
+++ b/content/renderer/indexed_db_dispatcher.cc
@@ -31,13 +31,16 @@ using WebKit::WebIDBDatabaseError;
using WebKit::WebIDBTransaction;
using WebKit::WebIDBTransactionCallbacks;
-IndexedDBDispatcher::IndexedDBDispatcher() {
+IndexedDBDispatcher::IndexedDBDispatcher(IndexedDBMessageFilter* filter) :
+ pending_callbacks_(filter),
+ pending_transaction_callbacks_(filter),
+ pending_database_callbacks_(filter) {
}
IndexedDBDispatcher::~IndexedDBDispatcher() {
}
-bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
+void IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(IndexedDBDispatcher, msg)
IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBCursor,
@@ -62,7 +65,9 @@ bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
OnVersionChange)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
- return handled;
+ // If a message gets here, IndexedDBMessageFilter already determined that it
+ // is an IndexedDB message.
+ DCHECK(handled);
}
void IndexedDBDispatcher::Send(IPC::Message* msg) {
@@ -116,12 +121,6 @@ void IndexedDBDispatcher::RequestIDBFactoryOpen(
WebFrame* web_frame) {
scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- if (!web_frame)
michaeln 2011/12/01 21:42:05 does this no longer apply?
dgrogan 2011/12/01 22:49:00 This was to make the webkit side easier, so I didn
- return; // We must be shutting down.
- RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view());
- if (!render_view)
- return; // We must be shutting down.
-
IndexedDBHostMsg_FactoryOpen_Params params;
params.response_id = pending_callbacks_.Add(callbacks.release());
params.origin = origin;
@@ -177,8 +176,8 @@ void IndexedDBDispatcher::RequestIDBDatabaseOpen(
int32 idb_database_id) {
scoped_ptr<WebIDBDatabaseCallbacks> callbacks(callbacks_ptr);
- int32 response_id = pending_database_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_DatabaseOpen(response_id, idb_database_id));
+ pending_database_callbacks_.AddWithID(callbacks.release(), idb_database_id);
+ Send(new IndexedDBHostMsg_DatabaseOpen(idb_database_id, idb_database_id));
}
void IndexedDBDispatcher::RequestIDBDatabaseSetVersion(

Powered by Google App Engine
This is Rietveld 408576698