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

Unified Diff: content/common/indexed_db/proxy_webidbobjectstore_impl.cc

Issue 10830228: Chromium glue for Preemptive cursors and passing keys from renderer to browser (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Moved dispatching to static methods, async messages Created 8 years, 4 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
« no previous file with comments | « content/common/indexed_db/proxy_webidbobjectstore_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/indexed_db/proxy_webidbobjectstore_impl.cc
diff --git a/content/common/indexed_db/proxy_webidbobjectstore_impl.cc b/content/common/indexed_db/proxy_webidbobjectstore_impl.cc
index 47da0df6f7e94373aff6440d1f0632d3728d2298..46416d3fddede8a4e4283fe444e7dc1b9ccb19ba 100644
--- a/content/common/indexed_db/proxy_webidbobjectstore_impl.cc
+++ b/content/common/indexed_db/proxy_webidbobjectstore_impl.cc
@@ -4,6 +4,8 @@
#include "content/common/indexed_db/proxy_webidbobjectstore_impl.h"
+#include <vector>
+
#include "content/common/indexed_db/indexed_db_messages.h"
#include "content/public/common/serialized_script_value.h"
#include "content/common/indexed_db/indexed_db_dispatcher.h"
@@ -67,17 +69,58 @@ void RendererWebIDBObjectStoreImpl::putWithIndexKeys(
PutMode put_mode,
WebIDBCallbacks* callbacks,
const WebIDBTransaction& transaction,
- const WebVector<WebString>& indexNames,
- const WebVector<WebVector<WebIDBKey> >& indexKeys,
+ const WebVector<WebString>& index_names,
+ const WebVector<WebVector<WebIDBKey> >& index_keys,
WebExceptionCode& ec) {
IndexedDBDispatcher* dispatcher =
IndexedDBDispatcher::ThreadSpecificInstance();
dispatcher->RequestIDBObjectStorePut(
SerializedScriptValue(value), IndexedDBKey(key),
put_mode, callbacks, idb_object_store_id_, transaction,
- indexNames, indexKeys, &ec);
+ index_names, index_keys, &ec);
+}
+
+void RendererWebIDBObjectStoreImpl::setIndexKeys(
+ const WebKit::WebIDBKey& primaryKey,
+ const WebKit::WebVector<WebKit::WebString>& index_names,
+ const WebKit::WebVector<WebIndexKeys>& index_keys,
+ const WebKit::WebIDBTransaction& transaction) {
+ std::vector<string16> index_names_list(index_names.size());
+ for (size_t i = 0; i < index_names.size(); ++i) {
+ index_names_list[i] = index_names[i];
+ }
+
+ std::vector<std::vector<content::IndexedDBKey> >
+ index_keys_list(index_keys.size());
+ for (size_t i = 0; i < index_keys.size(); ++i) {
+ index_keys_list[i].resize(index_keys[i].size());
+ for (size_t j = 0; j < index_keys[i].size(); ++j) {
+ index_keys_list[i][j] = content::IndexedDBKey(index_keys[i][j]);
+ }
+ }
+ IndexedDBDispatcher::Send(new IndexedDBHostMsg_ObjectStoreSetIndexKeys(
+ idb_object_store_id_,
+ IndexedDBKey(primaryKey),
+ index_names_list,
+ index_keys_list,
+ IndexedDBDispatcher::TransactionId(transaction)));
}
+void RendererWebIDBObjectStoreImpl::setIndexesReady(
+ const WebKit::WebVector<WebKit::WebString>& index_names,
+ const WebKit::WebIDBTransaction& transaction) {
+
+ std::vector<string16> index_name_list(index_names.size());
+ for (size_t i = 0; i < index_names.size(); ++i) {
+ index_name_list[i] = index_names[i];
+ }
+
+ IndexedDBDispatcher::Send(new IndexedDBHostMsg_ObjectStoreSetIndexesReady(
+ idb_object_store_id_,
+ index_name_list, IndexedDBDispatcher::TransactionId(transaction)));
+}
+
+
void RendererWebIDBObjectStoreImpl::deleteFunction(
const WebIDBKeyRange& key_range,
WebIDBCallbacks* callbacks,
@@ -147,14 +190,28 @@ void RendererWebIDBObjectStoreImpl::deleteIndex(
void RendererWebIDBObjectStoreImpl::openCursor(
const WebIDBKeyRange& idb_key_range,
- unsigned short direction, WebIDBCallbacks* callbacks,
+ WebKit::WebIDBCursor::Direction direction, WebIDBCallbacks* callbacks,
+ WebKit::WebIDBTransaction::TaskType task_type,
const WebIDBTransaction& transaction,
WebExceptionCode& ec) {
IndexedDBDispatcher* dispatcher =
IndexedDBDispatcher::ThreadSpecificInstance();
dispatcher->RequestIDBObjectStoreOpenCursor(
idb_key_range, direction, callbacks, idb_object_store_id_,
- transaction, &ec);
+ task_type, 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, static_cast<WebKit::WebIDBCursor::Direction>(direction),
+ callbacks, idb_object_store_id_,
+ WebKit::WebIDBTransaction::NormalTask, transaction, &ec);
}
void RendererWebIDBObjectStoreImpl::count(
« no previous file with comments | « content/common/indexed_db/proxy_webidbobjectstore_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698