| Index: content/child/indexed_db/proxy_webidbdatabase_impl.cc
|
| ===================================================================
|
| --- content/child/indexed_db/proxy_webidbdatabase_impl.cc (revision 208777)
|
| +++ content/child/indexed_db/proxy_webidbdatabase_impl.cc (working copy)
|
| @@ -6,7 +6,7 @@
|
|
|
| #include <vector>
|
|
|
| -#include "content/child/child_thread.h"
|
| +#include "content/child/thread_safe_sender.h"
|
| #include "content/child/indexed_db/indexed_db_dispatcher.h"
|
| #include "content/common/indexed_db/indexed_db_messages.h"
|
| #include "third_party/WebKit/public/platform/WebIDBKeyPath.h"
|
| @@ -26,9 +26,12 @@
|
| namespace content {
|
|
|
| RendererWebIDBDatabaseImpl::RendererWebIDBDatabaseImpl(
|
| - int32 ipc_database_id, int32 ipc_database_callbacks_id)
|
| + int32 ipc_database_id,
|
| + int32 ipc_database_callbacks_id,
|
| + ThreadSafeSender* thread_safe_sender)
|
| : ipc_database_id_(ipc_database_id),
|
| - ipc_database_callbacks_id_(ipc_database_callbacks_id) {
|
| + ipc_database_callbacks_id_(ipc_database_callbacks_id),
|
| + thread_safe_sender_(thread_safe_sender) {
|
| }
|
|
|
| RendererWebIDBDatabaseImpl::~RendererWebIDBDatabaseImpl() {
|
| @@ -36,10 +39,10 @@
|
| // 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.
|
| - IndexedDBDispatcher::Send(new IndexedDBHostMsg_DatabaseDestroyed(
|
| + thread_safe_sender_->Send(new IndexedDBHostMsg_DatabaseDestroyed(
|
| ipc_database_id_));
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->DatabaseDestroyed(ipc_database_id_);
|
| }
|
|
|
| @@ -57,14 +60,14 @@
|
| params.key_path = IndexedDBKeyPath(key_path);
|
| params.auto_increment = auto_increment;
|
|
|
| - IndexedDBDispatcher::Send(
|
| + thread_safe_sender_->Send(
|
| new IndexedDBHostMsg_DatabaseCreateObjectStore(params));
|
| }
|
|
|
| void RendererWebIDBDatabaseImpl::deleteObjectStore(
|
| long long transaction_id,
|
| long long object_store_id) {
|
| - IndexedDBDispatcher::Send(
|
| + thread_safe_sender_->Send(
|
| new IndexedDBHostMsg_DatabaseDeleteObjectStore(
|
| ipc_database_id_,
|
| transaction_id,
|
| @@ -78,7 +81,7 @@
|
| unsigned short mode)
|
| {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseCreateTransaction(ipc_database_id_,
|
| transaction_id,
|
| callbacks,
|
| @@ -88,7 +91,7 @@
|
|
|
| void RendererWebIDBDatabaseImpl::close() {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseClose(ipc_database_id_,
|
| ipc_database_callbacks_id_);
|
| }
|
| @@ -101,7 +104,7 @@
|
| bool key_only,
|
| WebIDBCallbacks* callbacks) {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseGet(
|
| ipc_database_id_, transaction_id, object_store_id, index_id,
|
| IndexedDBKeyRange(key_range), key_only, callbacks);
|
| @@ -117,7 +120,7 @@
|
| const WebVector<long long>& web_index_ids,
|
| const WebVector<WebIndexKeys>& web_index_keys) {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabasePut(
|
| ipc_database_id_, transaction_id, object_store_id,
|
| value, IndexedDBKey(key), put_mode, callbacks,
|
| @@ -147,7 +150,7 @@
|
| params.index_keys[i][j] = content::IndexedDBKey(index_keys[i][j]);
|
| }
|
| }
|
| - IndexedDBDispatcher::Send(new IndexedDBHostMsg_DatabaseSetIndexKeys(
|
| + thread_safe_sender_->Send(new IndexedDBHostMsg_DatabaseSetIndexKeys(
|
| params));
|
| }
|
|
|
| @@ -157,7 +160,7 @@
|
| const WebVector<long long>& web_index_ids) {
|
| std::vector<int64> index_ids(web_index_ids.data(),
|
| web_index_ids.data() + web_index_ids.size());
|
| - IndexedDBDispatcher::Send(new IndexedDBHostMsg_DatabaseSetIndexesReady(
|
| + thread_safe_sender_->Send(new IndexedDBHostMsg_DatabaseSetIndexesReady(
|
| ipc_database_id_, transaction_id, object_store_id, index_ids));
|
| }
|
|
|
| @@ -171,7 +174,7 @@
|
| TaskType task_type,
|
| WebIDBCallbacks* callbacks) {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseOpenCursor(
|
| ipc_database_id_,
|
| transaction_id, object_store_id, index_id,
|
| @@ -185,7 +188,7 @@
|
| const WebKit::WebIDBKeyRange& key_range,
|
| WebIDBCallbacks* callbacks) {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseCount(
|
| ipc_database_id_,
|
| transaction_id, object_store_id, index_id,
|
| @@ -198,7 +201,7 @@
|
| const WebKit::WebIDBKeyRange& key_range,
|
| WebIDBCallbacks* callbacks) {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseDeleteRange(
|
| ipc_database_id_,
|
| transaction_id, object_store_id,
|
| @@ -210,7 +213,7 @@
|
| long long object_store_id,
|
| WebIDBCallbacks* callbacks) {
|
| IndexedDBDispatcher* dispatcher =
|
| - IndexedDBDispatcher::ThreadSpecificInstance();
|
| + IndexedDBDispatcher::ThreadSpecificInstance(thread_safe_sender_);
|
| dispatcher->RequestIDBDatabaseClear(
|
| ipc_database_id_,
|
| transaction_id, object_store_id, callbacks);
|
| @@ -235,7 +238,7 @@
|
| params.unique = unique;
|
| params.multi_entry = multi_entry;
|
|
|
| - IndexedDBDispatcher::Send(
|
| + thread_safe_sender_->Send(
|
| new IndexedDBHostMsg_DatabaseCreateIndex(params));
|
| }
|
|
|
| @@ -244,7 +247,7 @@
|
| long long object_store_id,
|
| long long index_id)
|
| {
|
| - IndexedDBDispatcher::Send(
|
| + thread_safe_sender_->Send(
|
| new IndexedDBHostMsg_DatabaseDeleteIndex(
|
| ipc_database_id_,
|
| transaction_id,
|
| @@ -252,12 +255,12 @@
|
| }
|
|
|
| void RendererWebIDBDatabaseImpl::abort(long long transaction_id) {
|
| - IndexedDBDispatcher::Send(new IndexedDBHostMsg_DatabaseAbort(
|
| + thread_safe_sender_->Send(new IndexedDBHostMsg_DatabaseAbort(
|
| ipc_database_id_, transaction_id));
|
| }
|
|
|
| void RendererWebIDBDatabaseImpl::commit(long long transaction_id) {
|
| - IndexedDBDispatcher::Send(new IndexedDBHostMsg_DatabaseCommit(
|
| + thread_safe_sender_->Send(new IndexedDBHostMsg_DatabaseCommit(
|
| ipc_database_id_, transaction_id));
|
| }
|
|
|
|
|