summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authordgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-12 18:10:03 +0000
committerdgrogan@chromium.org <dgrogan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-12 18:10:03 +0000
commit988aacf1156e012bfd7f9804ca3ebec66ebdf8d7 (patch)
tree8db90a0d21a012b9a433f7a5e82d0349a7f17e42 /content/renderer
parent433d20a17f62cf7da3c496d159a6f40051f2bfba (diff)
downloadchromium_src-988aacf1156e012bfd7f9804ca3ebec66ebdf8d7.zip
chromium_src-988aacf1156e012bfd7f9804ca3ebec66ebdf8d7.tar.gz
chromium_src-988aacf1156e012bfd7f9804ca3ebec66ebdf8d7.tar.bz2
Move indexed db files from content/renderer to content/common.
http://codereview.chromium.org/9375024/ enables indexed db in shared workers. BUG=112855 TEST= Review URL: http://codereview.chromium.org/9368053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121669 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/indexed_db/OWNERS4
-rw-r--r--content/renderer/indexed_db/indexed_db_dispatcher.cc688
-rw-r--r--content/renderer/indexed_db/indexed_db_dispatcher.h250
-rw-r--r--content/renderer/indexed_db/indexed_db_message_filter.cc37
-rw-r--r--content/renderer/indexed_db/indexed_db_message_filter.h28
-rw-r--r--content/renderer/indexed_db/renderer_webidbcursor_impl.cc181
-rw-r--r--content/renderer/indexed_db/renderer_webidbcursor_impl.h75
-rw-r--r--content/renderer/indexed_db/renderer_webidbdatabase_impl.cc136
-rw-r--r--content/renderer/indexed_db/renderer_webidbdatabase_impl.h52
-rw-r--r--content/renderer/indexed_db/renderer_webidbfactory_impl.cc62
-rw-r--r--content/renderer/indexed_db/renderer_webidbfactory_impl.h45
-rw-r--r--content/renderer/indexed_db/renderer_webidbindex_impl.cc122
-rw-r--r--content/renderer/indexed_db/renderer_webidbindex_impl.h52
-rw-r--r--content/renderer/indexed_db/renderer_webidbobjectstore_impl.cc185
-rw-r--r--content/renderer/indexed_db/renderer_webidbobjectstore_impl.h78
-rw-r--r--content/renderer/indexed_db/renderer_webidbtransaction_impl.cc74
-rw-r--r--content/renderer/indexed_db/renderer_webidbtransaction_impl.h36
-rw-r--r--content/renderer/render_thread_impl.cc17
-rw-r--r--content/renderer/render_thread_impl.h3
-rw-r--r--content/renderer/renderer_webkitplatformsupport_impl.cc2
20 files changed, 18 insertions, 2109 deletions
diff --git a/content/renderer/indexed_db/OWNERS b/content/renderer/indexed_db/OWNERS
deleted file mode 100644
index 65287b4..0000000
--- a/content/renderer/indexed_db/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-dgrogan@chromium.org
-hans@chromium.org
-michaeln@chromium.org
-jsbell@chromium.org
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 2770fbb..0000000
--- 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();
- }
-}
diff --git a/content/renderer/indexed_db/indexed_db_dispatcher.h b/content/renderer/indexed_db/indexed_db_dispatcher.h
deleted file mode 100644
index 29d520a..0000000
--- a/content/renderer/indexed_db/indexed_db_dispatcher.h
+++ /dev/null
@@ -1,250 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_INDEXED_DB_DISPATCHER_H_
-#define CONTENT_RENDERER_INDEXED_DB_INDEXED_DB_DISPATCHER_H_
-#pragma once
-
-#include <map>
-#include <vector>
-
-#include "base/id_map.h"
-#include "base/nullable_string16.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebExceptionCode.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabase.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBObjectStore.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBTransactionCallbacks.h"
-#include "webkit/glue/worker_task_runner.h"
-
-class IndexedDBKey;
-struct IndexedDBMsg_CallbacksSuccessCursorContinue_Params;
-struct IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params;
-struct IndexedDBMsg_CallbacksSuccessIDBCursor_Params;
-class RendererWebIDBCursorImpl;
-
-namespace IPC {
-class Message;
-}
-
-namespace WebKit {
-class WebFrame;
-class WebIDBKeyRange;
-class WebIDBTransaction;
-}
-
-namespace content {
-class SerializedScriptValue;
-}
-
-// Handle the indexed db related communication for this context thread - the
-// main thread and each worker thread have their own copies.
-class IndexedDBDispatcher : public webkit_glue::WorkerTaskRunner::Observer {
- public:
- virtual ~IndexedDBDispatcher();
- static IndexedDBDispatcher* ThreadSpecificInstance();
-
- // webkit_glue::WorkerTaskRunner::Observer implementation.
- virtual void OnWorkerRunLoopStopped() OVERRIDE;
-
- void OnMessageReceived(const IPC::Message& msg);
- void Send(IPC::Message* msg);
-
- void RequestIDBFactoryGetDatabaseNames(
- WebKit::WebIDBCallbacks* callbacks,
- const string16& origin,
- WebKit::WebFrame* web_frame);
-
- void RequestIDBFactoryOpen(
- const string16& name,
- WebKit::WebIDBCallbacks* callbacks,
- const string16& origin,
- WebKit::WebFrame* web_frame);
-
- void RequestIDBFactoryDeleteDatabase(
- const string16& name,
- WebKit::WebIDBCallbacks* callbacks,
- const string16& origin,
- WebKit::WebFrame* web_frame);
-
- void RequestIDBCursorUpdate(
- const content::SerializedScriptValue& value,
- WebKit::WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBCursorContinue(
- const IndexedDBKey& key,
- WebKit::WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBCursorPrefetch(
- int n,
- WebKit::WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBCursorPrefetchReset(int used_prefetches, int unused_prefetches,
- int32 idb_cursor_id);
-
- void RequestIDBCursorDelete(
- WebKit::WebIDBCallbacks* callbacks_ptr,
- int32 idb_cursor_id,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBDatabaseClose(
- int32 idb_database_id);
-
- void RequestIDBDatabaseOpen(
- WebKit::WebIDBDatabaseCallbacks* callbacks_ptr,
- int32 idb_database_id);
-
- void RequestIDBDatabaseSetVersion(
- const string16& version,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_database_id,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBIndexOpenObjectCursor(
- const WebKit::WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_index_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBIndexOpenKeyCursor(
- const WebKit::WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_index_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBIndexCount(
- const WebKit::WebIDBKeyRange& idb_key_range,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_index_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBIndexGetObject(const IndexedDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_index_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBIndexGetKey(const IndexedDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_index_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBObjectStoreGet(const IndexedDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_object_store_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBObjectStorePut(const content::SerializedScriptValue& value,
- const IndexedDBKey& key,
- WebKit::WebIDBObjectStore::PutMode putMode,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_object_store_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBObjectStoreDelete(
- const IndexedDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_object_store_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBObjectStoreClear(
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_object_store_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBObjectStoreOpenCursor(
- const WebKit::WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_object_store_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RequestIDBObjectStoreCount(
- const WebKit::WebIDBKeyRange& idb_key_range,
- WebKit::WebIDBCallbacks* callbacks,
- int32 idb_object_store_id,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode* ec);
-
- void RegisterWebIDBTransactionCallbacks(
- WebKit::WebIDBTransactionCallbacks* callbacks,
- int32 id);
-
- void CursorDestroyed(int32 cursor_id);
-
- static int32 TransactionId(const WebKit::WebIDBTransaction& transaction);
-
- private:
- IndexedDBDispatcher();
- // IDBCallback message handlers.
- void OnSuccessNull(int32 response_id);
- void OnSuccessIDBDatabase(int32 thread_id,
- int32 response_id,
- int32 object_id);
- void OnSuccessIndexedDBKey(int32 thread_id,
- int32 response_id,
- const IndexedDBKey& key);
- void OnSuccessIDBTransaction(int32 thread_id,
- int32 response_id,
- int32 object_id);
- void OnSuccessOpenCursor(
- const IndexedDBMsg_CallbacksSuccessIDBCursor_Params& p);
- void OnSuccessCursorContinue(
- const IndexedDBMsg_CallbacksSuccessCursorContinue_Params& p);
- void OnSuccessCursorPrefetch(
- const IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params& p);
- void OnSuccessStringList(int32 thread_id,
- int32 response_id,
- const std::vector<string16>& value);
- void OnSuccessSerializedScriptValue(
- int32 thread_id,
- int32 response_id,
- const content::SerializedScriptValue& value);
- void OnError(int32 thread_id,
- int32 response_id,
- int code,
- const string16& message);
- void OnBlocked(int32 thread_id, int32 response_id);
- void OnAbort(int32 thread_id, int32 transaction_id);
- void OnComplete(int32 thread_id, int32 transaction_id);
- void OnVersionChange(int32 thread_id,
- int32 database_id,
- const string16& newVersion);
-
- // Reset cursor prefetch caches for all cursors except exception_cursor_id.
- void ResetCursorPrefetchCaches(int32 exception_cursor_id = -1);
-
- // Careful! WebIDBCallbacks wraps non-threadsafe data types. It must be
- // destroyed and used on the same thread it was created on.
- IDMap<WebKit::WebIDBCallbacks, IDMapOwnPointer> pending_callbacks_;
- IDMap<WebKit::WebIDBTransactionCallbacks, IDMapOwnPointer>
- pending_transaction_callbacks_;
- IDMap<WebKit::WebIDBDatabaseCallbacks, IDMapOwnPointer>
- pending_database_callbacks_;
-
- // Map from cursor id to RendererWebIDBCursorImpl.
- std::map<int32, RendererWebIDBCursorImpl*> cursors_;
-
- DISALLOW_COPY_AND_ASSIGN(IndexedDBDispatcher);
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_INDEXED_DB_DISPATCHER_H_
diff --git a/content/renderer/indexed_db/indexed_db_message_filter.cc b/content/renderer/indexed_db/indexed_db_message_filter.cc
deleted file mode 100644
index 3e6b04b..0000000
--- a/content/renderer/indexed_db/indexed_db_message_filter.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// 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.
-
-#include "content/renderer/indexed_db/indexed_db_message_filter.h"
-
-#include "base/bind.h"
-#include "base/location.h"
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "webkit/glue/worker_task_runner.h"
-
-using webkit_glue::WorkerTaskRunner;
-
-IndexedDBMessageFilter::IndexedDBMessageFilter() :
- main_thread_loop_proxy_(base::MessageLoopProxy::current()) {
-}
-
-IndexedDBMessageFilter::~IndexedDBMessageFilter() {
-}
-
-bool IndexedDBMessageFilter::OnMessageReceived(const IPC::Message& msg) {
- if (IPC_MESSAGE_CLASS(msg) != IndexedDBMsgStart)
- return false;
- int thread_id = IPC::MessageIterator(msg).NextInt();
- base::Closure closure = base::Bind(
- &IndexedDBMessageFilter::DispatchMessage, this, msg);
- if (thread_id)
- WorkerTaskRunner::Instance()->PostTask(thread_id, closure);
- else
- main_thread_loop_proxy_->PostTask(FROM_HERE, closure);
- return true;
-}
-
-void IndexedDBMessageFilter::DispatchMessage(const IPC::Message& msg) {
- IndexedDBDispatcher::ThreadSpecificInstance()->OnMessageReceived(msg);
-}
diff --git a/content/renderer/indexed_db/indexed_db_message_filter.h b/content/renderer/indexed_db/indexed_db_message_filter.h
deleted file mode 100644
index e7d37f9..0000000
--- a/content/renderer/indexed_db/indexed_db_message_filter.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
-#define CONTENT_RENDERER_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
-#pragma once
-
-#include "ipc/ipc_channel_proxy.h"
-
-class IndexedDBDispatcher;
-
-class IndexedDBMessageFilter : public IPC::ChannelProxy::MessageFilter {
- public:
- IndexedDBMessageFilter();
- virtual ~IndexedDBMessageFilter();
-
- // IPC::Channel::Listener implementation.
- virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
-
- private:
- void DispatchMessage(const IPC::Message& msg);
- scoped_refptr<base::MessageLoopProxy> main_thread_loop_proxy_;
-
- DISALLOW_COPY_AND_ASSIGN(IndexedDBMessageFilter);
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_INDEXED_DB_DISPATCHER_H_
diff --git a/content/renderer/indexed_db/renderer_webidbcursor_impl.cc b/content/renderer/indexed_db/renderer_webidbcursor_impl.cc
deleted file mode 100644
index 52eaf57..0000000
--- a/content/renderer/indexed_db/renderer_webidbcursor_impl.cc
+++ /dev/null
@@ -1,181 +0,0 @@
-// 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.
-
-#include "content/renderer/indexed_db/renderer_webidbcursor_impl.h"
-
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/render_thread_impl.h"
-
-using WebKit::WebExceptionCode;
-using WebKit::WebIDBCallbacks;
-using WebKit::WebIDBKey;
-using WebKit::WebSerializedScriptValue;
-
-RendererWebIDBCursorImpl::RendererWebIDBCursorImpl(int32 idb_cursor_id)
- : idb_cursor_id_(idb_cursor_id),
- continue_count_(0),
- used_prefetches_(0),
- pending_onsuccess_callbacks_(0),
- prefetch_amount_(kMinPrefetchAmount) {
-}
-
-RendererWebIDBCursorImpl::~RendererWebIDBCursorImpl() {
- // It's not possible for there to be pending callbacks that address this
- // 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.
- ChildThread::current()->Send(new IndexedDBHostMsg_CursorDestroyed(
- idb_cursor_id_));
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->CursorDestroyed(idb_cursor_id_);
-}
-
-unsigned short RendererWebIDBCursorImpl::direction() const {
- int direction;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_CursorDirection(idb_cursor_id_, &direction));
- return direction;
-}
-
-WebIDBKey RendererWebIDBCursorImpl::key() const {
- return key_;
-}
-
-WebIDBKey RendererWebIDBCursorImpl::primaryKey() const {
- return primary_key_;
-}
-
-WebSerializedScriptValue RendererWebIDBCursorImpl::value() const {
- return value_;
-}
-
-void RendererWebIDBCursorImpl::update(const WebSerializedScriptValue& value,
- WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBCursorUpdate(
- content::SerializedScriptValue(value), callbacks, idb_cursor_id_, &ec);
-}
-
-void RendererWebIDBCursorImpl::continueFunction(const WebIDBKey& key,
- WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
-
- if (key.type() == WebIDBKey::InvalidType) {
- // No key, so this would qualify for a prefetch.
- ++continue_count_;
-
- if (!prefetch_keys_.empty()) {
- // We have a prefetch cache, so serve the result from that.
- CachedContinue(callbacks);
- return;
- }
-
- if (continue_count_ > kPrefetchContinueThreshold) {
- // Request pre-fetch.
- dispatcher->RequestIDBCursorPrefetch(prefetch_amount_, callbacks,
- idb_cursor_id_, &ec);
-
- // Increase prefetch_amount_ exponentially.
- prefetch_amount_ *= 2;
- if (prefetch_amount_ > kMaxPrefetchAmount)
- prefetch_amount_ = kMaxPrefetchAmount;
-
- return;
- }
- } else {
- // Key argument supplied. We couldn't prefetch this.
- ResetPrefetchCache();
- }
-
- dispatcher->RequestIDBCursorContinue(IndexedDBKey(key), callbacks,
- idb_cursor_id_, &ec);
-}
-
-void RendererWebIDBCursorImpl::deleteFunction(WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBCursorDelete(callbacks, idb_cursor_id_, &ec);
-}
-
-void RendererWebIDBCursorImpl::postSuccessHandlerCallback()
-{
- pending_onsuccess_callbacks_--;
-
- // If the onsuccess callback called continue() on the cursor again,
- // and that continue was served by the prefetch cache, then
- // pending_onsuccess_callbacks_ would be incremented.
- // If not, it means the callback did something else, or nothing at all,
- // in which case we need to reset the cache.
-
- if (pending_onsuccess_callbacks_ == 0)
- ResetPrefetchCache();
-}
-
-void RendererWebIDBCursorImpl::SetKeyAndValue(
- const IndexedDBKey& key,
- const IndexedDBKey& primary_key,
- const content::SerializedScriptValue& value) {
- key_ = key;
- primary_key_ = primary_key;
- value_ = value;
-}
-
-void RendererWebIDBCursorImpl::SetPrefetchData(
- const std::vector<IndexedDBKey>& keys,
- const std::vector<IndexedDBKey>& primary_keys,
- const std::vector<content::SerializedScriptValue>& values) {
- prefetch_keys_.assign(keys.begin(), keys.end());
- prefetch_primary_keys_.assign(primary_keys.begin(), primary_keys.end());
- prefetch_values_.assign(values.begin(), values.end());
-
- used_prefetches_ = 0;
- pending_onsuccess_callbacks_ = 0;
-}
-
-void RendererWebIDBCursorImpl::CachedContinue(
- WebKit::WebIDBCallbacks* callbacks) {
- DCHECK(prefetch_keys_.size() > 0);
- DCHECK(prefetch_primary_keys_.size() == prefetch_keys_.size());
- DCHECK(prefetch_values_.size() == prefetch_keys_.size());
-
- key_ = prefetch_keys_.front();
- primary_key_ = prefetch_primary_keys_.front();
- value_ = prefetch_values_.front();
-
- prefetch_keys_.pop_front();
- prefetch_primary_keys_.pop_front();
- prefetch_values_.pop_front();
- used_prefetches_++;
-
- pending_onsuccess_callbacks_++;
- callbacks->onSuccessWithContinuation();
-}
-
-void RendererWebIDBCursorImpl::ResetPrefetchCache() {
- continue_count_ = 0;
- prefetch_amount_ = kMinPrefetchAmount;
-
- if (!prefetch_keys_.size()) {
- // No prefetch cache, so no need to reset the cursor in the back-end.
- return;
- }
-
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBCursorPrefetchReset(used_prefetches_,
- prefetch_keys_.size(),
- idb_cursor_id_);
- prefetch_keys_.clear();
- prefetch_primary_keys_.clear();
- prefetch_values_.clear();
-
- pending_onsuccess_callbacks_ = 0;
-}
diff --git a/content/renderer/indexed_db/renderer_webidbcursor_impl.h b/content/renderer/indexed_db/renderer_webidbcursor_impl.h
deleted file mode 100644
index aa386bb..0000000
--- a/content/renderer/indexed_db/renderer_webidbcursor_impl.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBCURSOR_IMPL_H_
-#define CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBCURSOR_IMPL_H_
-
-#include <deque>
-
-#include "base/basictypes.h"
-#include "content/common/indexed_db/indexed_db_key.h"
-#include "content/public/common/serialized_script_value.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCursor.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKey.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSerializedScriptValue.h"
-
-class RendererWebIDBCursorImpl : public WebKit::WebIDBCursor {
- public:
- RendererWebIDBCursorImpl(int32 idb_cursor_id);
- virtual ~RendererWebIDBCursorImpl();
-
- virtual unsigned short direction() const;
- virtual WebKit::WebIDBKey key() const;
- virtual WebKit::WebIDBKey primaryKey() const;
- virtual WebKit::WebSerializedScriptValue value() const;
- virtual void update(const WebKit::WebSerializedScriptValue& value,
- WebKit::WebIDBCallbacks* callback,
- WebKit::WebExceptionCode& ec);
- virtual void continueFunction(const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callback,
- WebKit::WebExceptionCode& ec);
- virtual void deleteFunction(WebKit::WebIDBCallbacks* callback,
- WebKit::WebExceptionCode& ec);
- virtual void postSuccessHandlerCallback();
-
- void SetKeyAndValue(const IndexedDBKey& key, const IndexedDBKey& primary_key,
- const content::SerializedScriptValue& value);
- void SetPrefetchData(
- const std::vector<IndexedDBKey>& keys,
- const std::vector<IndexedDBKey>& primary_keys,
- const std::vector<content::SerializedScriptValue>& values);
-
- void CachedContinue(WebKit::WebIDBCallbacks* callbacks);
- void ResetPrefetchCache();
-
- private:
- int32 idb_cursor_id_;
- IndexedDBKey key_;
- IndexedDBKey primary_key_;
- content::SerializedScriptValue value_;
-
- // Prefetch cache.
- std::deque<IndexedDBKey> prefetch_keys_;
- std::deque<IndexedDBKey> prefetch_primary_keys_;
- std::deque<content::SerializedScriptValue> prefetch_values_;
-
- // Number of continue calls that would qualify for a pre-fetch.
- int continue_count_;
-
- // Number of items used from the last prefetch.
- int used_prefetches_;
-
- // Number of onsuccess handlers we are waiting for.
- int pending_onsuccess_callbacks_;
-
- // Number of items to request in next prefetch.
- int prefetch_amount_;
-
- enum { kPrefetchContinueThreshold = 2 };
- enum { kMinPrefetchAmount = 5 };
- enum { kMaxPrefetchAmount = 100 };
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBCURSOR_IMPL_H_
diff --git a/content/renderer/indexed_db/renderer_webidbdatabase_impl.cc b/content/renderer/indexed_db/renderer_webidbdatabase_impl.cc
deleted file mode 100644
index 6a07cc0..0000000
--- a/content/renderer/indexed_db/renderer_webidbdatabase_impl.cc
+++ /dev/null
@@ -1,136 +0,0 @@
-// 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.
-
-#include "content/renderer/indexed_db/renderer_webidbdatabase_impl.h"
-
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.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 "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h"
-#include "webkit/glue/worker_task_runner.h"
-
-using WebKit::WebDOMStringList;
-using WebKit::WebExceptionCode;
-using WebKit::WebFrame;
-using WebKit::WebIDBCallbacks;
-using WebKit::WebIDBDatabaseCallbacks;
-using WebKit::WebIDBTransaction;
-using WebKit::WebString;
-using WebKit::WebVector;
-using webkit_glue::WorkerTaskRunner;
-
-RendererWebIDBDatabaseImpl::RendererWebIDBDatabaseImpl(int32 idb_database_id)
- : idb_database_id_(idb_database_id) {
-}
-
-RendererWebIDBDatabaseImpl::~RendererWebIDBDatabaseImpl() {
- // It's not possible for there to be pending callbacks that address this
- // 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.
- ChildThread::current()->Send(new IndexedDBHostMsg_DatabaseDestroyed(
- idb_database_id_));
-}
-
-WebString RendererWebIDBDatabaseImpl::name() const {
- string16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_DatabaseName(idb_database_id_, &result));
- return result;
-}
-
-WebString RendererWebIDBDatabaseImpl::version() const {
- string16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_DatabaseVersion(idb_database_id_, &result));
- return result;
-}
-
-WebDOMStringList RendererWebIDBDatabaseImpl::objectStoreNames() const {
- std::vector<string16> result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_DatabaseObjectStoreNames(idb_database_id_, &result));
- WebDOMStringList webResult;
- for (std::vector<string16>::const_iterator it = result.begin();
- it != result.end(); ++it) {
- webResult.append(*it);
- }
- return webResult;
-}
-
-WebKit::WebIDBObjectStore* RendererWebIDBDatabaseImpl::createObjectStore(
- const WebKit::WebString& name,
- const WebKit::WebString& key_path,
- bool auto_increment,
- const WebKit::WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBHostMsg_DatabaseCreateObjectStore_Params params;
- params.name = name;
- params.key_path = key_path;
- params.auto_increment = auto_increment;
- params.transaction_id = IndexedDBDispatcher::TransactionId(transaction);
- params.idb_database_id = idb_database_id_;
-
- int object_store;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_DatabaseCreateObjectStore(
- params, &object_store, &ec));
- if (!object_store)
- return NULL;
- return new RendererWebIDBObjectStoreImpl(object_store);
-}
-
-void RendererWebIDBDatabaseImpl::deleteObjectStore(
- const WebString& name,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- ChildThread::current()->Send(
- new IndexedDBHostMsg_DatabaseDeleteObjectStore(
- idb_database_id_, name,
- IndexedDBDispatcher::TransactionId(transaction), &ec));
-}
-
-void RendererWebIDBDatabaseImpl::setVersion(
- const WebString& version,
- WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBDatabaseSetVersion(
- version, callbacks, idb_database_id_, &ec);
-}
-
-WebKit::WebIDBTransaction* RendererWebIDBDatabaseImpl::transaction(
- const WebDOMStringList& names,
- unsigned short mode,
- WebExceptionCode& ec) {
- std::vector<string16> object_stores;
- object_stores.reserve(names.length());
- for (unsigned int i = 0; i < names.length(); ++i)
- object_stores.push_back(names.item(i));
-
- int transaction_id;
- ChildThread::current()->Send(new IndexedDBHostMsg_DatabaseTransaction(
- WorkerTaskRunner::Instance()->CurrentWorkerId(),
- idb_database_id_, object_stores, mode, &transaction_id, &ec));
- if (!transaction_id)
- return NULL;
- return new RendererWebIDBTransactionImpl(transaction_id);
-}
-
-void RendererWebIDBDatabaseImpl::close() {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBDatabaseClose(idb_database_id_);
-}
-
-void RendererWebIDBDatabaseImpl::open(WebIDBDatabaseCallbacks* callbacks) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- DCHECK(dispatcher);
- dispatcher->RequestIDBDatabaseOpen(callbacks, idb_database_id_);
-}
diff --git a/content/renderer/indexed_db/renderer_webidbdatabase_impl.h b/content/renderer/indexed_db/renderer_webidbdatabase_impl.h
deleted file mode 100644
index 1f9b080..0000000
--- a/content/renderer/indexed_db/renderer_webidbdatabase_impl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBDATABASE_IMPL_H_
-#define CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBDATABASE_IMPL_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabase.h"
-
-namespace WebKit {
-class WebIDBCallbacks;
-class WebIDBDatabaseCallbacks;
-class WebString;
-class WebIDBTransaction;
-}
-
-class RendererWebIDBDatabaseImpl : public WebKit::WebIDBDatabase {
- public:
- explicit RendererWebIDBDatabaseImpl(int32 idb_database_id);
- virtual ~RendererWebIDBDatabaseImpl();
-
- // WebKit::WebIDBDatabase
- virtual WebKit::WebString name() const;
- virtual WebKit::WebString version() const;
- virtual WebKit::WebDOMStringList objectStoreNames() const;
- virtual WebKit::WebIDBObjectStore* createObjectStore(
- const WebKit::WebString& name,
- const WebKit::WebString& key_path,
- bool auto_increment,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void deleteObjectStore(
- const WebKit::WebString& name,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void setVersion(
- const WebKit::WebString& version, WebKit::WebIDBCallbacks* callbacks,
- WebKit::WebExceptionCode& ec);
- virtual WebKit::WebIDBTransaction* transaction(
- const WebKit::WebDOMStringList& names,
- unsigned short mode,
- WebKit::WebExceptionCode& ec);
- virtual void close();
- virtual void open(WebKit::WebIDBDatabaseCallbacks*);
-
- private:
- int32 idb_database_id_;
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBDATABASE_IMPL_H_
diff --git a/content/renderer/indexed_db/renderer_webidbfactory_impl.cc b/content/renderer/indexed_db/renderer_webidbfactory_impl.cc
deleted file mode 100644
index 166d92c..0000000
--- a/content/renderer/indexed_db/renderer_webidbfactory_impl.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// 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.
-
-#include "content/renderer/indexed_db/renderer_webidbfactory_impl.h"
-
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/render_thread_impl.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
-
-using WebKit::WebDOMStringList;
-using WebKit::WebFrame;
-using WebKit::WebIDBCallbacks;
-using WebKit::WebIDBDatabase;
-using WebKit::WebSecurityOrigin;
-using WebKit::WebString;
-
-RendererWebIDBFactoryImpl::RendererWebIDBFactoryImpl() {
-}
-
-RendererWebIDBFactoryImpl::~RendererWebIDBFactoryImpl() {
-}
-
-void RendererWebIDBFactoryImpl::getDatabaseNames(
- WebIDBCallbacks* callbacks,
- const WebSecurityOrigin& origin,
- WebFrame* web_frame,
- const WebString& data_dir_unused) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBFactoryGetDatabaseNames(
- callbacks, origin.databaseIdentifier(), web_frame);
-}
-
-void RendererWebIDBFactoryImpl::open(
- const WebString& name,
- WebIDBCallbacks* callbacks,
- const WebSecurityOrigin& origin,
- WebFrame* web_frame,
- const WebString& data_dir) {
- // Don't send the data_dir. We know what we want on the Browser side of
- // things.
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBFactoryOpen(
- name, callbacks, origin.databaseIdentifier(), web_frame);
-}
-
-void RendererWebIDBFactoryImpl::deleteDatabase(
- const WebString& name,
- WebIDBCallbacks* callbacks,
- const WebSecurityOrigin& origin,
- WebFrame* web_frame,
- const WebString& data_dir) {
- // Don't send the data_dir. We know what we want on the Browser side of
- // things.
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBFactoryDeleteDatabase(
- name, callbacks, origin.databaseIdentifier(), web_frame);
-}
diff --git a/content/renderer/indexed_db/renderer_webidbfactory_impl.h b/content/renderer/indexed_db/renderer_webidbfactory_impl.h
deleted file mode 100644
index 87fcdfe7..0000000
--- a/content/renderer/indexed_db/renderer_webidbfactory_impl.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBFACTORY_IMPL_H_
-#define CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBFACTORY_IMPL_H_
-#pragma once
-
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBFactory.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h"
-
-namespace WebKit {
-class WebFrame;
-class WebSecurityOrigin;
-class WebString;
-}
-
-class RendererWebIDBFactoryImpl : public WebKit::WebIDBFactory {
- public:
- RendererWebIDBFactoryImpl();
- virtual ~RendererWebIDBFactoryImpl();
-
- // See WebIDBFactory.h for documentation on these functions.
- virtual void getDatabaseNames(
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebSecurityOrigin& origin,
- WebKit::WebFrame* web_frame,
- const WebKit::WebString& data_dir);
-
- virtual void open(
- const WebKit::WebString& name,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebSecurityOrigin& origin,
- WebKit::WebFrame* web_frame,
- const WebKit::WebString& data_dir);
- virtual void deleteDatabase(
- const WebKit::WebString& name,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebSecurityOrigin& origin,
- WebKit::WebFrame* web_frame,
- const WebKit::WebString& data_dir);
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBFACTORY_IMPL_H_
diff --git a/content/renderer/indexed_db/renderer_webidbindex_impl.cc b/content/renderer/indexed_db/renderer_webidbindex_impl.cc
deleted file mode 100644
index c7446e4..0000000
--- a/content/renderer/indexed_db/renderer_webidbindex_impl.cc
+++ /dev/null
@@ -1,122 +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/renderer_webidbindex_impl.h"
-
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/indexed_db/renderer_webidbtransaction_impl.h"
-#include "content/renderer/render_thread_impl.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h"
-
-using WebKit::WebExceptionCode;
-using WebKit::WebDOMStringList;
-using WebKit::WebString;
-using WebKit::WebVector;
-
-RendererWebIDBIndexImpl::RendererWebIDBIndexImpl(int32 idb_index_id)
- : idb_index_id_(idb_index_id) {
-}
-
-RendererWebIDBIndexImpl::~RendererWebIDBIndexImpl() {
- // It's not possible for there to be pending callbacks that address this
- // 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.
- ChildThread::current()->Send(new IndexedDBHostMsg_IndexDestroyed(
- idb_index_id_));
-}
-
-WebString RendererWebIDBIndexImpl::name() const {
- string16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_IndexName(idb_index_id_, &result));
- return result;
-}
-
-WebString RendererWebIDBIndexImpl::storeName() const {
- string16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_IndexStoreName(idb_index_id_, &result));
- return result;
-}
-
-WebString RendererWebIDBIndexImpl::keyPath() const {
- NullableString16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_IndexKeyPath(idb_index_id_, &result));
- return result;
-}
-
-bool RendererWebIDBIndexImpl::unique() const {
- bool result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_IndexUnique(idb_index_id_, &result));
- return result;
-}
-
-bool RendererWebIDBIndexImpl::multiEntry() const {
- bool result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_IndexMultiEntry(idb_index_id_, &result));
- return result;
-}
-
-void RendererWebIDBIndexImpl::openObjectCursor(
- const WebKit::WebIDBKeyRange& range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBIndexOpenObjectCursor(
- range, direction, callbacks, idb_index_id_, transaction, &ec);
-}
-
-void RendererWebIDBIndexImpl::openKeyCursor(
- const WebKit::WebIDBKeyRange& range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBIndexOpenKeyCursor(
- range, direction, callbacks, idb_index_id_, transaction, &ec);
-}
-
-void RendererWebIDBIndexImpl::count(
- const WebKit::WebIDBKeyRange& range,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBIndexCount(
- range, callbacks, idb_index_id_, transaction, &ec);
-}
-
-void RendererWebIDBIndexImpl::getObject(
- const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBIndexGetObject(
- IndexedDBKey(key), callbacks, idb_index_id_, transaction, &ec);
-}
-
-void RendererWebIDBIndexImpl::getKey(
- const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBIndexGetKey(
- IndexedDBKey(key), callbacks, idb_index_id_, transaction, &ec);
-}
diff --git a/content/renderer/indexed_db/renderer_webidbindex_impl.h b/content/renderer/indexed_db/renderer_webidbindex_impl.h
deleted file mode 100644
index 29e2c8f..0000000
--- a/content/renderer/indexed_db/renderer_webidbindex_impl.h
+++ /dev/null
@@ -1,52 +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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBINDEX_IMPL_H_
-#define CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBINDEX_IMPL_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBIndex.h"
-
-class RendererWebIDBIndexImpl : public WebKit::WebIDBIndex {
- public:
- explicit RendererWebIDBIndexImpl(int32 idb_index_id);
- virtual ~RendererWebIDBIndexImpl();
-
- // WebKit::WebIDBIndex
- virtual WebKit::WebString name() const;
- virtual WebKit::WebString storeName() const;
- virtual WebKit::WebString keyPath() const;
- virtual bool unique() const;
- virtual bool multiEntry() const;
-
- virtual void openObjectCursor(const WebKit::WebIDBKeyRange& range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void openKeyCursor(const WebKit::WebIDBKeyRange& range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void count(const WebKit::WebIDBKeyRange& range,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void getObject(const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void getKey(const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
-
- private:
- int32 idb_index_id_;
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBINDEX_IMPL_H_
diff --git a/content/renderer/indexed_db/renderer_webidbobjectstore_impl.cc b/content/renderer/indexed_db/renderer_webidbobjectstore_impl.cc
deleted file mode 100644
index 9e1a002..0000000
--- a/content/renderer/indexed_db/renderer_webidbobjectstore_impl.cc
+++ /dev/null
@@ -1,185 +0,0 @@
-// 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.
-
-#include "content/renderer/indexed_db/renderer_webidbobjectstore_impl.h"
-
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/public/common/serialized_script_value.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/indexed_db/renderer_webidbindex_impl.h"
-#include "content/renderer/indexed_db/renderer_webidbtransaction_impl.h"
-#include "content/renderer/render_thread_impl.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKey.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBTransaction.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSerializedScriptValue.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
-
-using WebKit::WebDOMStringList;
-using WebKit::WebExceptionCode;
-using WebKit::WebFrame;
-using WebKit::WebIDBCallbacks;
-using WebKit::WebIDBKeyRange;
-using WebKit::WebIDBIndex;
-using WebKit::WebIDBKey;
-using WebKit::WebIDBTransaction;
-using WebKit::WebSerializedScriptValue;
-using WebKit::WebString;
-
-RendererWebIDBObjectStoreImpl::RendererWebIDBObjectStoreImpl(
- int32 idb_object_store_id)
- : idb_object_store_id_(idb_object_store_id) {
-}
-
-RendererWebIDBObjectStoreImpl::~RendererWebIDBObjectStoreImpl() {
- // It's not possible for there to be pending callbacks that address this
- // 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.
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreDestroyed(idb_object_store_id_));
-}
-
-WebString RendererWebIDBObjectStoreImpl::name() const {
- string16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreName(idb_object_store_id_, &result));
- return result;
-}
-
-WebString RendererWebIDBObjectStoreImpl::keyPath() const {
- NullableString16 result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreKeyPath(idb_object_store_id_, &result));
- return result;
-}
-
-WebDOMStringList RendererWebIDBObjectStoreImpl::indexNames() const {
- std::vector<string16> result;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreIndexNames(
- idb_object_store_id_, &result));
- WebDOMStringList web_result;
- for (std::vector<string16>::const_iterator it = result.begin();
- it != result.end(); ++it) {
- web_result.append(*it);
- }
- return web_result;
-}
-
-void RendererWebIDBObjectStoreImpl::get(
- const WebIDBKey& key,
- WebIDBCallbacks* callbacks,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBObjectStoreGet(
- IndexedDBKey(key), callbacks, idb_object_store_id_, transaction, &ec);
-}
-
-void RendererWebIDBObjectStoreImpl::put(
- const WebSerializedScriptValue& value,
- const WebIDBKey& key,
- PutMode put_mode,
- WebIDBCallbacks* callbacks,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBObjectStorePut(
- content::SerializedScriptValue(value), IndexedDBKey(key), put_mode,
- callbacks, idb_object_store_id_, transaction, &ec);
-}
-
-void RendererWebIDBObjectStoreImpl::deleteFunction(
- const WebIDBKey& key,
- WebIDBCallbacks* callbacks,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBObjectStoreDelete(
- IndexedDBKey(key), callbacks, idb_object_store_id_, transaction, &ec);
-}
-
-void RendererWebIDBObjectStoreImpl::clear(
- WebIDBCallbacks* callbacks,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBObjectStoreClear(
- callbacks, idb_object_store_id_, transaction, &ec);
-}
-
-WebIDBIndex* RendererWebIDBObjectStoreImpl::createIndex(
- const WebString& name,
- const WebString& key_path,
- bool unique,
- bool multi_entry,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBHostMsg_ObjectStoreCreateIndex_Params params;
- params.name = name;
- params.key_path = key_path;
- params.unique = unique;
- params.multi_entry = multi_entry;
- params.transaction_id = IndexedDBDispatcher::TransactionId(transaction);
- params.idb_object_store_id = idb_object_store_id_;
-
- int32 index_id;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreCreateIndex(params, &index_id, &ec));
- if (!index_id)
- return NULL;
- return new RendererWebIDBIndexImpl(index_id);
-}
-
-WebIDBIndex* RendererWebIDBObjectStoreImpl::index(
- const WebString& name,
- WebExceptionCode& ec) {
- int32 idb_index_id;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreIndex(idb_object_store_id_, name,
- &idb_index_id, &ec));
- if (!idb_index_id)
- return NULL;
- return new RendererWebIDBIndexImpl(idb_index_id);
-}
-
-void RendererWebIDBObjectStoreImpl::deleteIndex(
- const WebString& name,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- ChildThread::current()->Send(
- new IndexedDBHostMsg_ObjectStoreDeleteIndex(
- idb_object_store_id_, name,
- IndexedDBDispatcher::TransactionId(transaction), &ec));
-}
-
-void RendererWebIDBObjectStoreImpl::openCursor(
- const WebIDBKeyRange& idb_key_range,
- unsigned short direction, WebIDBCallbacks* callbacks,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBObjectStoreOpenCursor(
- idb_key_range, direction, callbacks, idb_object_store_id_,
- transaction, &ec);
-}
-
-void RendererWebIDBObjectStoreImpl::count(
- const WebIDBKeyRange& idb_key_range,
- WebIDBCallbacks* callbacks,
- const WebIDBTransaction& transaction,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBObjectStoreCount(
- idb_key_range, callbacks, idb_object_store_id_,
- transaction, &ec);
-}
diff --git a/content/renderer/indexed_db/renderer_webidbobjectstore_impl.h b/content/renderer/indexed_db/renderer_webidbobjectstore_impl.h
deleted file mode 100644
index 18c4589..0000000
--- a/content/renderer/indexed_db/renderer_webidbobjectstore_impl.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBOBJECTSTORE_IMPL_H_
-#define CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBOBJECTSTORE_IMPL_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBObjectStore.h"
-
-namespace WebKit {
-class WebIDBCallbacks;
-class WebIDBIndex;
-class WebIDBKey;
-class WebIDBKeyRange;
-class WebString;
-}
-
-class RendererWebIDBObjectStoreImpl : public WebKit::WebIDBObjectStore {
- public:
- explicit RendererWebIDBObjectStoreImpl(int32 idb_object_store_id);
- virtual ~RendererWebIDBObjectStoreImpl();
-
- // WebKit::WebIDBObjectStore
- virtual WebKit::WebString name() const;
- virtual WebKit::WebString keyPath() const;
- virtual WebKit::WebDOMStringList indexNames() const;
-
- virtual void get(const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void put(const WebKit::WebSerializedScriptValue& value,
- const WebKit::WebIDBKey& key,
- PutMode put_mode,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void deleteFunction(const WebKit::WebIDBKey& key,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- virtual void clear(WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
-
- virtual WebKit::WebIDBIndex* createIndex(
- const WebKit::WebString& name,
- const WebKit::WebString& key_path,
- bool unique,
- bool multi_entry,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
- // Transfers ownership of the WebIDBIndex to the caller.
- virtual WebKit::WebIDBIndex* index(const WebKit::WebString& name,
- WebKit::WebExceptionCode& ec);
- virtual void deleteIndex(const WebKit::WebString& name,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
-
- virtual void openCursor(const WebKit::WebIDBKeyRange& idb_key_range,
- unsigned short direction,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
-
- virtual void count(const WebKit::WebIDBKeyRange& idb_key_range,
- WebKit::WebIDBCallbacks* callbacks,
- const WebKit::WebIDBTransaction& transaction,
- WebKit::WebExceptionCode& ec);
-
- private:
- int32 idb_object_store_id_;
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBOBJECTSTORE_IMPL_H_
diff --git a/content/renderer/indexed_db/renderer_webidbtransaction_impl.cc b/content/renderer/indexed_db/renderer_webidbtransaction_impl.cc
deleted file mode 100644
index f3db376..0000000
--- a/content/renderer/indexed_db/renderer_webidbtransaction_impl.cc
+++ /dev/null
@@ -1,74 +0,0 @@
-// 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.
-
-#include "content/renderer/indexed_db/renderer_webidbtransaction_impl.h"
-
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/indexed_db/renderer_webidbobjectstore_impl.h"
-#include "content/renderer/render_thread_impl.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBObjectStore.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBTransactionCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
-
-using WebKit::WebIDBObjectStore;
-using WebKit::WebIDBTransactionCallbacks;
-using WebKit::WebString;
-
-RendererWebIDBTransactionImpl::RendererWebIDBTransactionImpl(
- int32 idb_transaction_id)
- : idb_transaction_id_(idb_transaction_id) {
-}
-
-RendererWebIDBTransactionImpl::~RendererWebIDBTransactionImpl() {
- // It's not possible for there to be pending callbacks that address this
- // 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.
- ChildThread::current()->Send(new IndexedDBHostMsg_TransactionDestroyed(
- idb_transaction_id_));
-}
-
-int RendererWebIDBTransactionImpl::mode() const
-{
- int mode;
- ChildThread::current()->Send(new IndexedDBHostMsg_TransactionMode(
- idb_transaction_id_, &mode));
- return mode;
-}
-
-WebIDBObjectStore* RendererWebIDBTransactionImpl::objectStore(
- const WebString& name,
- WebKit::WebExceptionCode& ec)
-{
- int object_store_id;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_TransactionObjectStore(
- idb_transaction_id_, name, &object_store_id, &ec));
- if (!object_store_id)
- return NULL;
- return new RendererWebIDBObjectStoreImpl(object_store_id);
-}
-
-void RendererWebIDBTransactionImpl::abort()
-{
- ChildThread::current()->Send(new IndexedDBHostMsg_TransactionAbort(
- idb_transaction_id_));
-}
-
-void RendererWebIDBTransactionImpl::didCompleteTaskEvents()
-{
- ChildThread::current()->Send(
- new IndexedDBHostMsg_TransactionDidCompleteTaskEvents(
- idb_transaction_id_));
-}
-
-void RendererWebIDBTransactionImpl::setCallbacks(
- WebIDBTransactionCallbacks* callbacks)
-{
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RegisterWebIDBTransactionCallbacks(callbacks,
- idb_transaction_id_);
-}
diff --git a/content/renderer/indexed_db/renderer_webidbtransaction_impl.h b/content/renderer/indexed_db/renderer_webidbtransaction_impl.h
deleted file mode 100644
index 164cdad..0000000
--- a/content/renderer/indexed_db/renderer_webidbtransaction_impl.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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.
-
-#ifndef CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBTRANSACTION_IMPL_H_
-#define CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBTRANSACTION_IMPL_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBTransaction.h"
-
-namespace WebKit {
-class WebIDBObjectStore;
-class WebIDBTransactionCallbacks;
-class WebString;
-}
-
-class RendererWebIDBTransactionImpl : public WebKit::WebIDBTransaction {
- public:
- explicit RendererWebIDBTransactionImpl(int32 idb_transaction_id);
- virtual ~RendererWebIDBTransactionImpl();
-
- virtual int mode() const;
- virtual WebKit::WebIDBObjectStore* objectStore(const WebKit::WebString& name,
- WebKit::WebExceptionCode&);
- virtual void abort();
- virtual void didCompleteTaskEvents();
- virtual void setCallbacks(WebKit::WebIDBTransactionCallbacks*);
-
- int id() const { return idb_transaction_id_; }
-
- private:
- int32 idb_transaction_id_;
-};
-
-#endif // CONTENT_RENDERER_INDEXED_DB_RENDERER_WEBIDBTRANSACTION_IMPL_H_
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 27996e8..bb50ee5 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -28,6 +28,9 @@
#include "content/common/dom_storage_messages.h"
#include "content/common/gpu/client/gpu_channel_host.h"
#include "content/common/gpu/gpu_messages.h"
+#include "content/common/indexed_db/indexed_db_dispatcher.h"
+#include "content/common/indexed_db/indexed_db_message_filter.h"
+#include "content/common/indexed_db/proxy_webidbfactory_impl.h"
#include "content/common/npobject_util.h"
#include "content/common/plugin_messages.h"
#include "content/common/resource_dispatcher.h"
@@ -41,9 +44,6 @@
#include "content/public/renderer/render_view_visitor.h"
#include "content/renderer/devtools_agent_filter.h"
#include "content/renderer/gpu/compositor_thread.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/indexed_db/indexed_db_message_filter.h"
-#include "content/renderer/indexed_db/renderer_webidbfactory_impl.h"
#include "content/renderer/media/audio_input_message_filter.h"
#include "content/renderer/media/audio_message_filter.h"
#include "content/renderer/media/video_capture_impl_manager.h"
@@ -683,6 +683,17 @@ void RenderThreadImpl::ReleaseCachedFonts() {
#endif // OS_WIN
+bool RenderThreadImpl::IsWebFrameValid(WebKit::WebFrame* web_frame) {
+ if (!web_frame)
+ return false; // We must be shutting down.
+
+ RenderViewImpl* render_view = RenderViewImpl::FromWebView(web_frame->view());
+ if (!render_view)
+ return false; // We must be shutting down.
+
+ return true;
+}
+
bool RenderThreadImpl::IsMainThread() {
return !!current();
}
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 505f585..04c096d 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -121,6 +121,9 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
virtual void ReleaseCachedFonts() OVERRIDE;
#endif
+ // content::ChildThread:
+ virtual bool IsWebFrameValid(WebKit::WebFrame* frame) OVERRIDE;
+
// GpuChannelHostFactory implementation:
virtual bool IsMainThread() OVERRIDE;
virtual bool IsIOThread() OVERRIDE;
diff --git a/content/renderer/renderer_webkitplatformsupport_impl.cc b/content/renderer/renderer_webkitplatformsupport_impl.cc
index 063e5cf..2c1654a 100644
--- a/content/renderer/renderer_webkitplatformsupport_impl.cc
+++ b/content/renderer/renderer_webkitplatformsupport_impl.cc
@@ -14,6 +14,7 @@
#include "content/common/file_system/webfilesystem_impl.h"
#include "content/common/file_utilities_messages.h"
#include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h"
+#include "content/common/indexed_db/proxy_webidbfactory_impl.h"
#include "content/common/mime_registry_messages.h"
#include "content/common/npobject_util.h"
#include "content/common/view_messages.h"
@@ -22,7 +23,6 @@
#include "content/public/common/content_switches.h"
#include "content/public/renderer/content_renderer_client.h"
#include "content/renderer/gamepad_shared_memory_reader.h"
-#include "content/renderer/indexed_db/renderer_webidbfactory_impl.h"
#include "content/renderer/media/audio_device.h"
#include "content/renderer/media/audio_hardware.h"
#include "content/renderer/media/renderer_webaudiodevice_impl.h"