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

Unified Diff: content/renderer/indexed_db/indexed_db_dispatcher.cc

Issue 9368053: Move indexed db files from content/renderer to content/common. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unneccesary include Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/indexed_db/indexed_db_dispatcher.cc
diff --git a/content/renderer/indexed_db/indexed_db_dispatcher.cc b/content/renderer/indexed_db/indexed_db_dispatcher.cc
deleted file mode 100644
index 2770fbbeb81254065242e8f67961014a22623b47..0000000000000000000000000000000000000000
--- a/content/renderer/indexed_db/indexed_db_dispatcher.cc
+++ /dev/null
@@ -1,688 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-
-#include "base/lazy_instance.h"
-#include "base/threading/thread_local.h"
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/renderer_webidbcursor_impl.h"
-#include "content/renderer/indexed_db/renderer_webidbdatabase_impl.h"
-#include "content/renderer/indexed_db/renderer_webidbindex_impl.h"
-#include "content/renderer/indexed_db/renderer_webidbobjectstore_impl.h"
-#include "content/renderer/indexed_db/renderer_webidbtransaction_impl.h"
-#include "content/renderer/render_thread_impl.h"
-#include "content/renderer/render_view_impl.h"
-#include "ipc/ipc_channel.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseError.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h"
-
-using base::ThreadLocalPointer;
-using WebKit::WebDOMStringList;
-using WebKit::WebExceptionCode;
-using WebKit::WebFrame;
-using WebKit::WebIDBCallbacks;
-using WebKit::WebIDBKeyRange;
-using WebKit::WebIDBDatabase;
-using WebKit::WebIDBDatabaseCallbacks;
-using WebKit::WebIDBDatabaseError;
-using WebKit::WebIDBTransaction;
-using WebKit::WebIDBTransactionCallbacks;
-using webkit_glue::WorkerTaskRunner;
-
-static base::LazyInstance<ThreadLocalPointer<IndexedDBDispatcher> >::Leaky
- g_idb_dispatcher_tls = LAZY_INSTANCE_INITIALIZER;
-
-namespace {
-
-int32 CurrentWorkerId() {
- return WorkerTaskRunner::Instance()->CurrentWorkerId();
-}
-
-} // unnamed namespace
-
-IndexedDBDispatcher::IndexedDBDispatcher() {
- g_idb_dispatcher_tls.Pointer()->Set(this);
-}
-
-IndexedDBDispatcher::~IndexedDBDispatcher() {
- g_idb_dispatcher_tls.Pointer()->Set(NULL);
-}
-
-IndexedDBDispatcher* IndexedDBDispatcher::ThreadSpecificInstance() {
- if (g_idb_dispatcher_tls.Pointer()->Get())
- return g_idb_dispatcher_tls.Pointer()->Get();
-
- IndexedDBDispatcher* dispatcher = new IndexedDBDispatcher;
- if (WorkerTaskRunner::Instance()->CurrentWorkerId())
- webkit_glue::WorkerTaskRunner::Instance()->AddStopObserver(dispatcher);
- return dispatcher;
-}
-
-void IndexedDBDispatcher::OnWorkerRunLoopStopped() {
- delete this;
-}
-
-void IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(IndexedDBDispatcher, msg)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBCursor,
- OnSuccessOpenCursor)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessCursorContinue,
- OnSuccessCursorContinue)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessCursorPrefetch,
- OnSuccessCursorPrefetch)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBDatabase,
- OnSuccessIDBDatabase)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIndexedDBKey,
- OnSuccessIndexedDBKey)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBTransaction,
- OnSuccessIDBTransaction)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessStringList,
- OnSuccessStringList)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessSerializedScriptValue,
- OnSuccessSerializedScriptValue)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksError, OnError)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksBlocked, OnBlocked)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_TransactionCallbacksAbort, OnAbort)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_TransactionCallbacksComplete, OnComplete)
- IPC_MESSAGE_HANDLER(IndexedDBMsg_DatabaseCallbacksVersionChange,
- OnVersionChange)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- // If a message gets here, IndexedDBMessageFilter already determined that it
- // is an IndexedDB message.
- DCHECK(handled);
-}
-
-void IndexedDBDispatcher::Send(IPC::Message* msg) {
- ChildThread::current()->Send(msg);
-}
-
-void IndexedDBDispatcher::RequestIDBCursorUpdate(
- const content::SerializedScriptValue& value,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(
- new IndexedDBHostMsg_CursorUpdate(idb_cursor_id, CurrentWorkerId(),
- response_id, value, ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBCursorContinue(
- const IndexedDBKey& key,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebExceptionCode* ec) {
- // Reset all cursor prefetch caches except for this cursor.
- ResetCursorPrefetchCaches(idb_cursor_id);
-
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(
- new IndexedDBHostMsg_CursorContinue(idb_cursor_id, CurrentWorkerId(),
- response_id, key, ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBCursorPrefetch(
- int n,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebExceptionCode* ec) {
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_CursorPrefetch(idb_cursor_id, CurrentWorkerId(),
- response_id, n, ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBCursorPrefetchReset(
- int used_prefetches, int unused_prefetches, int32 idb_cursor_id) {
- Send(new IndexedDBHostMsg_CursorPrefetchReset(idb_cursor_id,
- used_prefetches,
- unused_prefetches));
-}
-
-void IndexedDBDispatcher::RequestIDBCursorDelete(
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_CursorDelete(idb_cursor_id, CurrentWorkerId(),
- response_id, ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBFactoryOpen(
- const string16& name,
- WebIDBCallbacks* callbacks_ptr,
- const string16& origin,
- WebFrame* web_frame) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- if (!web_frame)
- 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.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.origin = origin;
- params.name = name;
- Send(new IndexedDBHostMsg_FactoryOpen(params));
-}
-
-void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames(
- WebIDBCallbacks* callbacks_ptr,
- const string16& origin,
- WebFrame* web_frame) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- if (!web_frame)
- return; // We must be shutting down.
- RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view());
- if (!render_view)
- return; // We must be shutting down.
-
- IndexedDBHostMsg_FactoryGetDatabaseNames_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.origin = origin;
- Send(new IndexedDBHostMsg_FactoryGetDatabaseNames(params));
-}
-
-void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase(
- const string16& name,
- WebIDBCallbacks* callbacks_ptr,
- const string16& origin,
- WebFrame* web_frame) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- if (!web_frame)
- return; // We must be shutting down.
- RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view());
- if (!render_view)
- return; // We must be shutting down.
-
- IndexedDBHostMsg_FactoryDeleteDatabase_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.origin = origin;
- params.name = name;
- Send(new IndexedDBHostMsg_FactoryDeleteDatabase(params));
-}
-
-void IndexedDBDispatcher::RequestIDBDatabaseClose(int32 idb_database_id) {
- ResetCursorPrefetchCaches();
- Send(new IndexedDBHostMsg_DatabaseClose(idb_database_id));
- pending_database_callbacks_.Remove(idb_database_id);
-}
-
-void IndexedDBDispatcher::RequestIDBDatabaseOpen(
- WebIDBDatabaseCallbacks* callbacks_ptr,
- int32 idb_database_id) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBDatabaseCallbacks> callbacks(callbacks_ptr);
-
- DCHECK(!pending_database_callbacks_.Lookup(idb_database_id));
- pending_database_callbacks_.AddWithID(callbacks.release(), idb_database_id);
- Send(new IndexedDBHostMsg_DatabaseOpen(idb_database_id, CurrentWorkerId(),
- idb_database_id));
-}
-
-void IndexedDBDispatcher::RequestIDBDatabaseSetVersion(
- const string16& version,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_database_id,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_DatabaseSetVersion(idb_database_id,
- CurrentWorkerId(),
- response_id, version, ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBIndexOpenObjectCursor(
- const WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_index_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- IndexedDBHostMsg_IndexOpenCursor_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.lower_key.Set(idb_key_range.lower());
- params.upper_key.Set(idb_key_range.upper());
- params.lower_open = idb_key_range.lowerOpen();
- params.upper_open = idb_key_range.upperOpen();
- params.direction = direction;
- params.idb_index_id = idb_index_id;
- params.transaction_id = TransactionId(transaction);
- Send(new IndexedDBHostMsg_IndexOpenObjectCursor(params, ec));
- if (*ec)
- pending_callbacks_.Remove(params.response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBIndexOpenKeyCursor(
- const WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_index_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- IndexedDBHostMsg_IndexOpenCursor_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- // TODO(jorlow): We really should just create a Chromium abstraction for
- // KeyRange rather than doing it ad-hoc like this.
- params.lower_key.Set(idb_key_range.lower());
- params.upper_key.Set(idb_key_range.upper());
- params.lower_open = idb_key_range.lowerOpen();
- params.upper_open = idb_key_range.upperOpen();
- params.direction = direction;
- params.idb_index_id = idb_index_id;
- params.transaction_id = TransactionId(transaction);
- Send(new IndexedDBHostMsg_IndexOpenKeyCursor(params, ec));
- if (*ec)
- pending_callbacks_.Remove(params.response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBIndexCount(
- const WebIDBKeyRange& idb_key_range,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_index_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- IndexedDBHostMsg_IndexCount_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.lower_key.Set(idb_key_range.lower());
- params.upper_key.Set(idb_key_range.upper());
- params.lower_open = idb_key_range.lowerOpen();
- params.upper_open = idb_key_range.upperOpen();
- params.idb_index_id = idb_index_id;
- params.transaction_id = TransactionId(transaction);
- Send(new IndexedDBHostMsg_IndexCount(params, ec));
- if (*ec)
- pending_callbacks_.Remove(params.response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBIndexGetObject(
- const IndexedDBKey& key,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_index_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_IndexGetObject(idb_index_id, CurrentWorkerId(),
- response_id, key,
- TransactionId(transaction), ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBIndexGetKey(
- const IndexedDBKey& key,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_index_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_IndexGetKey(
- idb_index_id, CurrentWorkerId(), response_id, key,
- TransactionId(transaction), ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBObjectStoreGet(
- const IndexedDBKey& key,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_object_store_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_ObjectStoreGet(
- idb_object_store_id, CurrentWorkerId(), response_id,
- key, TransactionId(transaction), ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBObjectStorePut(
- const content::SerializedScriptValue& value,
- const IndexedDBKey& key,
- WebKit::WebIDBObjectStore::PutMode put_mode,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_object_store_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- IndexedDBHostMsg_ObjectStorePut_Params params;
- params.thread_id = CurrentWorkerId();
- params.idb_object_store_id = idb_object_store_id;
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.serialized_value = value;
- params.key = key;
- params.put_mode = put_mode;
- params.transaction_id = TransactionId(transaction);
- Send(new IndexedDBHostMsg_ObjectStorePut(params, ec));
- if (*ec)
- pending_callbacks_.Remove(params.response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBObjectStoreDelete(
- const IndexedDBKey& key,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_object_store_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_ObjectStoreDelete(
- idb_object_store_id, CurrentWorkerId(), response_id, key,
- TransactionId(transaction), ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBObjectStoreClear(
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_object_store_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
-
- int32 response_id = pending_callbacks_.Add(callbacks.release());
- Send(new IndexedDBHostMsg_ObjectStoreClear(
- idb_object_store_id, CurrentWorkerId(), response_id,
- TransactionId(transaction), ec));
- if (*ec)
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBObjectStoreOpenCursor(
- const WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_object_store_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- IndexedDBHostMsg_ObjectStoreOpenCursor_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.lower_key.Set(idb_key_range.lower());
- params.upper_key.Set(idb_key_range.upper());
- params.lower_open = idb_key_range.lowerOpen();
- params.upper_open = idb_key_range.upperOpen();
- params.direction = direction;
- params.idb_object_store_id = idb_object_store_id;
- params.transaction_id = TransactionId(transaction);
- Send(new IndexedDBHostMsg_ObjectStoreOpenCursor(params, ec));
- if (*ec)
- pending_callbacks_.Remove(params.response_id);
-}
-
-void IndexedDBDispatcher::RequestIDBObjectStoreCount(
- const WebIDBKeyRange& idb_key_range,
- WebIDBCallbacks* callbacks_ptr,
- int32 idb_object_store_id,
- const WebIDBTransaction& transaction,
- WebExceptionCode* ec) {
- ResetCursorPrefetchCaches();
- scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
- IndexedDBHostMsg_ObjectStoreCount_Params params;
- params.thread_id = CurrentWorkerId();
- params.response_id = pending_callbacks_.Add(callbacks.release());
- params.lower_key.Set(idb_key_range.lower());
- params.upper_key.Set(idb_key_range.upper());
- params.lower_open = idb_key_range.lowerOpen();
- params.upper_open = idb_key_range.upperOpen();
- params.idb_object_store_id = idb_object_store_id;
- params.transaction_id = TransactionId(transaction);
- Send(new IndexedDBHostMsg_ObjectStoreCount(params, ec));
- if (*ec)
- pending_callbacks_.Remove(params.response_id);
-}
-
-void IndexedDBDispatcher::RegisterWebIDBTransactionCallbacks(
- WebIDBTransactionCallbacks* callbacks,
- int32 id) {
- pending_transaction_callbacks_.AddWithID(callbacks, id);
-}
-
-void IndexedDBDispatcher::CursorDestroyed(int32 cursor_id) {
- cursors_.erase(cursor_id);
-}
-
-int32 IndexedDBDispatcher::TransactionId(
- const WebIDBTransaction& transaction) {
- const RendererWebIDBTransactionImpl* impl =
- static_cast<const RendererWebIDBTransactionImpl*>(&transaction);
- return impl->id();
-}
-
-void IndexedDBDispatcher::OnSuccessIDBDatabase(int32 thread_id,
- int32 response_id,
- int32 object_id) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- callbacks->onSuccess(new RendererWebIDBDatabaseImpl(object_id));
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessIndexedDBKey(int32 thread_id,
- int32 response_id,
- const IndexedDBKey& key) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- callbacks->onSuccess(key);
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessIDBTransaction(int32 thread_id,
- int32 response_id,
- int32 object_id) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- callbacks->onSuccess(new RendererWebIDBTransactionImpl(object_id));
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessStringList(
- int32 thread_id, int32 response_id, const std::vector<string16>& value) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- WebDOMStringList string_list;
- for (std::vector<string16>::const_iterator it = value.begin();
- it != value.end(); ++it)
- string_list.append(*it);
- callbacks->onSuccess(string_list);
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessSerializedScriptValue(
- int32 thread_id, int32 response_id,
- const content::SerializedScriptValue& value) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- callbacks->onSuccess(value);
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessOpenCursor(
- const IndexedDBMsg_CallbacksSuccessIDBCursor_Params& p) {
- DCHECK_EQ(p.thread_id, CurrentWorkerId());
- int32 response_id = p.response_id;
- int32 object_id = p.cursor_id;
- const IndexedDBKey& key = p.key;
- const IndexedDBKey& primary_key = p.primary_key;
- const content::SerializedScriptValue& value = p.serialized_value;
-
- WebIDBCallbacks* callbacks =
- pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
-
- RendererWebIDBCursorImpl* cursor = new RendererWebIDBCursorImpl(object_id);
- cursors_[object_id] = cursor;
- cursor->SetKeyAndValue(key, primary_key, value);
- callbacks->onSuccess(cursor);
-
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessCursorContinue(
- const IndexedDBMsg_CallbacksSuccessCursorContinue_Params& p) {
- DCHECK_EQ(p.thread_id, CurrentWorkerId());
- int32 response_id = p.response_id;
- int32 cursor_id = p.cursor_id;
- const IndexedDBKey& key = p.key;
- const IndexedDBKey& primary_key = p.primary_key;
- const content::SerializedScriptValue& value = p.serialized_value;
-
- RendererWebIDBCursorImpl* cursor = cursors_[cursor_id];
- DCHECK(cursor);
- cursor->SetKeyAndValue(key, primary_key, value);
-
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- callbacks->onSuccessWithContinuation();
-
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnSuccessCursorPrefetch(
- const IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params& p) {
- DCHECK_EQ(p.thread_id, CurrentWorkerId());
- int32 response_id = p.response_id;
- int32 cursor_id = p.cursor_id;
- const std::vector<IndexedDBKey>& keys = p.keys;
- const std::vector<IndexedDBKey>& primary_keys = p.primary_keys;
- const std::vector<content::SerializedScriptValue>& values = p.values;
- RendererWebIDBCursorImpl* cursor = cursors_[cursor_id];
- DCHECK(cursor);
- cursor->SetPrefetchData(keys, primary_keys, values);
-
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- DCHECK(callbacks);
- cursor->CachedContinue(callbacks);
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnBlocked(int32 thread_id, int32 response_id) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- DCHECK(callbacks);
- callbacks->onBlocked();
-}
-
-void IndexedDBDispatcher::OnError(int32 thread_id, int32 response_id, int code,
- const string16& message) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
- if (!callbacks)
- return;
- callbacks->onError(WebIDBDatabaseError(code, message));
- pending_callbacks_.Remove(response_id);
-}
-
-void IndexedDBDispatcher::OnAbort(int32 thread_id, int32 transaction_id) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBTransactionCallbacks* callbacks =
- pending_transaction_callbacks_.Lookup(transaction_id);
- if (!callbacks)
- return;
- callbacks->onAbort();
- pending_transaction_callbacks_.Remove(transaction_id);
-}
-
-void IndexedDBDispatcher::OnComplete(int32 thread_id, int32 transaction_id) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBTransactionCallbacks* callbacks =
- pending_transaction_callbacks_.Lookup(transaction_id);
- if (!callbacks)
- return;
- callbacks->onComplete();
- pending_transaction_callbacks_.Remove(transaction_id);
-}
-
-void IndexedDBDispatcher::OnVersionChange(int32 thread_id,
- int32 database_id,
- const string16& newVersion) {
- DCHECK_EQ(thread_id, CurrentWorkerId());
- WebIDBDatabaseCallbacks* callbacks =
- pending_database_callbacks_.Lookup(database_id);
- // callbacks would be NULL if a versionchange event is received after close
- // has been called.
- if (!callbacks)
- return;
- callbacks->onVersionChange(newVersion);
-}
-
-void IndexedDBDispatcher::ResetCursorPrefetchCaches(int32 exception_cursor_id) {
- typedef std::map<int32, RendererWebIDBCursorImpl*>::iterator Iterator;
- for (Iterator i = cursors_.begin(); i != cursors_.end(); ++i) {
- if (i->first == exception_cursor_id)
- continue;
- i->second->ResetPrefetchCache();
- }
-}
« no previous file with comments | « content/renderer/indexed_db/indexed_db_dispatcher.h ('k') | content/renderer/indexed_db/indexed_db_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698