diff options
author | dgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 00:12:05 +0000 |
---|---|---|
committer | dgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 00:12:05 +0000 |
commit | 86ce7d413f1767a28522db37af4e4143d878064f (patch) | |
tree | 0f4138c0e60677b8d35f79645fbab1405a047981 /content/renderer | |
parent | 244de53c6d7714d0b02f8017a4c59f5267075548 (diff) | |
download | chromium_src-86ce7d413f1767a28522db37af4e4143d878064f.zip chromium_src-86ce7d413f1767a28522db37af4e4143d878064f.tar.gz chromium_src-86ce7d413f1767a28522db37af4e4143d878064f.tar.bz2 |
Allow IndexedDB to send messages from any thread in the renderer process, not just the main thread.
BUG=64054
TEST=
Review URL: http://codereview.chromium.org/8745003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112348 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/indexed_db_dispatcher.cc | 76 | ||||
-rw-r--r-- | content/renderer/indexed_db_dispatcher.h | 1 | ||||
-rw-r--r-- | content/renderer/renderer_webidbcursor_impl.cc | 4 | ||||
-rw-r--r-- | content/renderer/renderer_webidbdatabase_impl.cc | 14 | ||||
-rw-r--r-- | content/renderer/renderer_webidbindex_impl.cc | 12 | ||||
-rw-r--r-- | content/renderer/renderer_webidbobjectstore_impl.cc | 16 | ||||
-rw-r--r-- | content/renderer/renderer_webidbtransaction_impl.cc | 12 |
7 files changed, 61 insertions, 74 deletions
diff --git a/content/renderer/indexed_db_dispatcher.cc b/content/renderer/indexed_db_dispatcher.cc index 915275f..8b3ddda 100644 --- a/content/renderer/indexed_db_dispatcher.cc +++ b/content/renderer/indexed_db_dispatcher.cc @@ -65,6 +65,10 @@ bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) { return handled; } +void IndexedDBDispatcher::Send(IPC::Message* msg) { + ChildThread::current()->Send(msg); +} + void IndexedDBDispatcher::RequestIDBCursorUpdate( const content::SerializedScriptValue& value, WebIDBCallbacks* callbacks_ptr, @@ -73,7 +77,7 @@ void IndexedDBDispatcher::RequestIDBCursorUpdate( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( + Send( new IndexedDBHostMsg_CursorUpdate(idb_cursor_id, response_id, value, ec)); if (*ec) pending_callbacks_.Remove(response_id); @@ -87,7 +91,7 @@ void IndexedDBDispatcher::RequestIDBCursorContinue( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( + Send( new IndexedDBHostMsg_CursorContinue(idb_cursor_id, response_id, key, ec)); if (*ec) pending_callbacks_.Remove(response_id); @@ -100,8 +104,7 @@ void IndexedDBDispatcher::RequestIDBCursorDelete( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_CursorDelete(idb_cursor_id, response_id, ec)); + Send(new IndexedDBHostMsg_CursorDelete(idb_cursor_id, response_id, ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -123,7 +126,7 @@ void IndexedDBDispatcher::RequestIDBFactoryOpen( params.response_id = pending_callbacks_.Add(callbacks.release()); params.origin = origin; params.name = name; - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_FactoryOpen(params)); + Send(new IndexedDBHostMsg_FactoryOpen(params)); } void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames( @@ -141,8 +144,7 @@ void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames( IndexedDBHostMsg_FactoryGetDatabaseNames_Params params; params.response_id = pending_callbacks_.Add(callbacks.release()); params.origin = origin; - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_FactoryGetDatabaseNames(params)); + Send(new IndexedDBHostMsg_FactoryGetDatabaseNames(params)); } void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase( @@ -162,24 +164,21 @@ void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase( params.response_id = pending_callbacks_.Add(callbacks.release()); params.origin = origin; params.name = name; - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_FactoryDeleteDatabase(params)); + Send(new IndexedDBHostMsg_FactoryDeleteDatabase(params)); } void IndexedDBDispatcher::RequestIDBDatabaseClose(int32 idb_database_id) { - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_DatabaseClose(idb_database_id)); + Send(new IndexedDBHostMsg_DatabaseClose(idb_database_id)); pending_database_callbacks_.Remove(idb_database_id); } - void IndexedDBDispatcher::RequestIDBDatabaseOpen( +void IndexedDBDispatcher::RequestIDBDatabaseOpen( WebIDBDatabaseCallbacks* callbacks_ptr, int32 idb_database_id) { scoped_ptr<WebIDBDatabaseCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_database_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_DatabaseOpen( - response_id, idb_database_id)); + Send(new IndexedDBHostMsg_DatabaseOpen(response_id, idb_database_id)); } void IndexedDBDispatcher::RequestIDBDatabaseSetVersion( @@ -190,9 +189,8 @@ void IndexedDBDispatcher::RequestIDBDatabaseSetVersion( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_DatabaseSetVersion(idb_database_id, response_id, - version, ec)); + Send(new IndexedDBHostMsg_DatabaseSetVersion(idb_database_id, response_id, + version, ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -214,8 +212,7 @@ void IndexedDBDispatcher::RequestIDBIndexOpenObjectCursor( params.direction = direction; params.idb_index_id = idb_index_id; params.transaction_id = TransactionId(transaction); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_IndexOpenObjectCursor(params, ec)); + Send(new IndexedDBHostMsg_IndexOpenObjectCursor(params, ec)); if (*ec) pending_callbacks_.Remove(params.response_id); } @@ -239,8 +236,7 @@ void IndexedDBDispatcher::RequestIDBIndexOpenKeyCursor( params.direction = direction; params.idb_index_id = idb_index_id; params.transaction_id = TransactionId(transaction); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_IndexOpenKeyCursor(params, ec)); + Send(new IndexedDBHostMsg_IndexOpenKeyCursor(params, ec)); if (*ec) pending_callbacks_.Remove(params.response_id); } @@ -253,10 +249,8 @@ void IndexedDBDispatcher::RequestIDBIndexGetObject( WebExceptionCode* ec) { scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_IndexGetObject( - idb_index_id, response_id, key, - TransactionId(transaction), ec)); + Send(new IndexedDBHostMsg_IndexGetObject(idb_index_id, response_id, key, + TransactionId(transaction), ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -269,10 +263,9 @@ void IndexedDBDispatcher::RequestIDBIndexGetKey( WebExceptionCode* ec) { scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_IndexGetKey( - idb_index_id, response_id, key, - TransactionId(transaction), ec)); + Send(new IndexedDBHostMsg_IndexGetKey( + idb_index_id, response_id, key, + TransactionId(transaction), ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -286,10 +279,9 @@ void IndexedDBDispatcher::RequestIDBObjectStoreGet( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_ObjectStoreGet( - idb_object_store_id, response_id, - key, TransactionId(transaction), ec)); + Send(new IndexedDBHostMsg_ObjectStoreGet( + idb_object_store_id, response_id, + key, TransactionId(transaction), ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -310,8 +302,7 @@ void IndexedDBDispatcher::RequestIDBObjectStorePut( params.key = key; params.put_mode = put_mode; params.transaction_id = TransactionId(transaction); - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_ObjectStorePut( - params, ec)); + Send(new IndexedDBHostMsg_ObjectStorePut(params, ec)); if (*ec) pending_callbacks_.Remove(params.response_id); } @@ -325,10 +316,8 @@ void IndexedDBDispatcher::RequestIDBObjectStoreDelete( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_ObjectStoreDelete( - idb_object_store_id, response_id, - key, TransactionId(transaction), ec)); + Send(new IndexedDBHostMsg_ObjectStoreDelete( + idb_object_store_id, response_id, key, TransactionId(transaction), ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -341,10 +330,8 @@ void IndexedDBDispatcher::RequestIDBObjectStoreClear( scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); int32 response_id = pending_callbacks_.Add(callbacks.release()); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_ObjectStoreClear( - idb_object_store_id, response_id, - TransactionId(transaction), ec)); + Send(new IndexedDBHostMsg_ObjectStoreClear( + idb_object_store_id, response_id, TransactionId(transaction), ec)); if (*ec) pending_callbacks_.Remove(response_id); } @@ -366,8 +353,7 @@ void IndexedDBDispatcher::RequestIDBObjectStoreOpenCursor( params.direction = direction; params.idb_object_store_id = idb_object_store_id; params.transaction_id = TransactionId(transaction); - RenderThreadImpl::current()->Send( - new IndexedDBHostMsg_ObjectStoreOpenCursor(params, ec)); + Send(new IndexedDBHostMsg_ObjectStoreOpenCursor(params, ec)); if (*ec) pending_callbacks_.Remove(params.response_id); } diff --git a/content/renderer/indexed_db_dispatcher.h b/content/renderer/indexed_db_dispatcher.h index 2807158..d2b3f1a 100644 --- a/content/renderer/indexed_db_dispatcher.h +++ b/content/renderer/indexed_db_dispatcher.h @@ -39,6 +39,7 @@ class IndexedDBDispatcher : public IPC::Channel::Listener { // IPC::Channel::Listener implementation. virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; + void Send(IPC::Message* msg); void RequestIDBFactoryGetDatabaseNames( WebKit::WebIDBCallbacks* callbacks, diff --git a/content/renderer/renderer_webidbcursor_impl.cc b/content/renderer/renderer_webidbcursor_impl.cc index 8060040..5ba7820 100644 --- a/content/renderer/renderer_webidbcursor_impl.cc +++ b/content/renderer/renderer_webidbcursor_impl.cc @@ -22,7 +22,7 @@ RendererWebIDBCursorImpl::~RendererWebIDBCursorImpl() { // object since inside WebKit, they hold a reference to the object wich owns // this object. But, if that ever changed, then we'd need to invalidate // any such pointers. - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_CursorDestroyed( + ChildThread::current()->Send(new IndexedDBHostMsg_CursorDestroyed( idb_cursor_id_)); IndexedDBDispatcher* dispatcher = RenderThreadImpl::current()->indexed_db_dispatcher(); @@ -31,7 +31,7 @@ RendererWebIDBCursorImpl::~RendererWebIDBCursorImpl() { unsigned short RendererWebIDBCursorImpl::direction() const { int direction; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_CursorDirection(idb_cursor_id_, &direction)); return direction; } diff --git a/content/renderer/renderer_webidbdatabase_impl.cc b/content/renderer/renderer_webidbdatabase_impl.cc index 7450b01..bb230e0 100644 --- a/content/renderer/renderer_webidbdatabase_impl.cc +++ b/content/renderer/renderer_webidbdatabase_impl.cc @@ -30,27 +30,27 @@ RendererWebIDBDatabaseImpl::~RendererWebIDBDatabaseImpl() { // object since inside WebKit, they hold a reference to the object which owns // this object. But, if that ever changed, then we'd need to invalidate // any such pointers. - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_DatabaseDestroyed( + ChildThread::current()->Send(new IndexedDBHostMsg_DatabaseDestroyed( idb_database_id_)); } WebString RendererWebIDBDatabaseImpl::name() const { string16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_DatabaseName(idb_database_id_, &result)); return result; } WebString RendererWebIDBDatabaseImpl::version() const { string16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_DatabaseVersion(idb_database_id_, &result)); return result; } WebDOMStringList RendererWebIDBDatabaseImpl::objectStoreNames() const { std::vector<string16> result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_DatabaseObjectStoreNames(idb_database_id_, &result)); WebDOMStringList webResult; for (std::vector<string16>::const_iterator it = result.begin(); @@ -74,7 +74,7 @@ WebKit::WebIDBObjectStore* RendererWebIDBDatabaseImpl::createObjectStore( params.idb_database_id = idb_database_id_; int object_store; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_DatabaseCreateObjectStore( params, &object_store, &ec)); if (!object_store) @@ -86,7 +86,7 @@ void RendererWebIDBDatabaseImpl::deleteObjectStore( const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) { - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_DatabaseDeleteObjectStore( idb_database_id_, name, IndexedDBDispatcher::TransactionId(transaction), &ec)); @@ -112,7 +112,7 @@ WebKit::WebIDBTransaction* RendererWebIDBDatabaseImpl::transaction( object_stores.push_back(names.item(i)); int transaction_id; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_DatabaseTransaction( idb_database_id_, object_stores, mode, &transaction_id, &ec)); diff --git a/content/renderer/renderer_webidbindex_impl.cc b/content/renderer/renderer_webidbindex_impl.cc index 4fb5866..1ec237b 100644 --- a/content/renderer/renderer_webidbindex_impl.cc +++ b/content/renderer/renderer_webidbindex_impl.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -25,34 +25,34 @@ RendererWebIDBIndexImpl::~RendererWebIDBIndexImpl() { // object since inside WebKit, they hold a reference to the object wich owns // this object. But, if that ever changed, then we'd need to invalidate // any such pointers. - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_IndexDestroyed( + ChildThread::current()->Send(new IndexedDBHostMsg_IndexDestroyed( idb_index_id_)); } WebString RendererWebIDBIndexImpl::name() const { string16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_IndexName(idb_index_id_, &result)); return result; } WebString RendererWebIDBIndexImpl::storeName() const { string16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_IndexStoreName(idb_index_id_, &result)); return result; } WebString RendererWebIDBIndexImpl::keyPath() const { NullableString16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_IndexKeyPath(idb_index_id_, &result)); return result; } bool RendererWebIDBIndexImpl::unique() const { bool result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_IndexUnique(idb_index_id_, &result)); return result; } diff --git a/content/renderer/renderer_webidbobjectstore_impl.cc b/content/renderer/renderer_webidbobjectstore_impl.cc index 70ebc0a..65db64e 100644 --- a/content/renderer/renderer_webidbobjectstore_impl.cc +++ b/content/renderer/renderer_webidbobjectstore_impl.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -38,27 +38,27 @@ RendererWebIDBObjectStoreImpl::~RendererWebIDBObjectStoreImpl() { // object since inside WebKit, they hold a reference to the object wich owns // this object. But, if that ever changed, then we'd need to invalidate // any such pointers. - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreDestroyed(idb_object_store_id_)); } WebString RendererWebIDBObjectStoreImpl::name() const { string16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreName(idb_object_store_id_, &result)); return result; } WebString RendererWebIDBObjectStoreImpl::keyPath() const { NullableString16 result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreKeyPath(idb_object_store_id_, &result)); return result; } WebDOMStringList RendererWebIDBObjectStoreImpl::indexNames() const { std::vector<string16> result; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreIndexNames( idb_object_store_id_, &result)); WebDOMStringList web_result; @@ -129,7 +129,7 @@ WebIDBIndex* RendererWebIDBObjectStoreImpl::createIndex( params.idb_object_store_id = idb_object_store_id_; int32 index_id; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreCreateIndex(params, &index_id, &ec)); if (!index_id) return NULL; @@ -140,7 +140,7 @@ WebIDBIndex* RendererWebIDBObjectStoreImpl::index( const WebString& name, WebExceptionCode& ec) { int32 idb_index_id; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreIndex(idb_object_store_id_, name, &idb_index_id, &ec)); if (!idb_index_id) @@ -152,7 +152,7 @@ void RendererWebIDBObjectStoreImpl::deleteIndex( const WebString& name, const WebIDBTransaction& transaction, WebExceptionCode& ec) { - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_ObjectStoreDeleteIndex( idb_object_store_id_, name, IndexedDBDispatcher::TransactionId(transaction), &ec)); diff --git a/content/renderer/renderer_webidbtransaction_impl.cc b/content/renderer/renderer_webidbtransaction_impl.cc index 78a7de8..d783576 100644 --- a/content/renderer/renderer_webidbtransaction_impl.cc +++ b/content/renderer/renderer_webidbtransaction_impl.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -26,14 +26,14 @@ RendererWebIDBTransactionImpl::~RendererWebIDBTransactionImpl() { // object since inside WebKit, they hold a reference to the object wich owns // this object. But, if that ever changed, then we'd need to invalidate // any such pointers. - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_TransactionDestroyed( + ChildThread::current()->Send(new IndexedDBHostMsg_TransactionDestroyed( idb_transaction_id_)); } int RendererWebIDBTransactionImpl::mode() const { int mode; - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_TransactionMode( + ChildThread::current()->Send(new IndexedDBHostMsg_TransactionMode( idb_transaction_id_, &mode)); return mode; } @@ -43,7 +43,7 @@ WebIDBObjectStore* RendererWebIDBTransactionImpl::objectStore( WebKit::WebExceptionCode& ec) { int object_store_id; - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_TransactionObjectStore( idb_transaction_id_, name, &object_store_id, &ec)); if (!object_store_id) @@ -53,13 +53,13 @@ WebIDBObjectStore* RendererWebIDBTransactionImpl::objectStore( void RendererWebIDBTransactionImpl::abort() { - RenderThreadImpl::current()->Send(new IndexedDBHostMsg_TransactionAbort( + ChildThread::current()->Send(new IndexedDBHostMsg_TransactionAbort( idb_transaction_id_)); } void RendererWebIDBTransactionImpl::didCompleteTaskEvents() { - RenderThreadImpl::current()->Send( + ChildThread::current()->Send( new IndexedDBHostMsg_TransactionDidCompleteTaskEvents( idb_transaction_id_)); } |