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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « content/common/indexed_db/proxy_webidbobjectstore_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/indexed_db/proxy_webidbobjectstore_impl.h" 5 #include "content/common/indexed_db/proxy_webidbobjectstore_impl.h"
6 6
7 #include <vector>
8
7 #include "content/common/indexed_db/indexed_db_messages.h" 9 #include "content/common/indexed_db/indexed_db_messages.h"
8 #include "content/public/common/serialized_script_value.h" 10 #include "content/public/common/serialized_script_value.h"
9 #include "content/common/indexed_db/indexed_db_dispatcher.h" 11 #include "content/common/indexed_db/indexed_db_dispatcher.h"
10 #include "content/common/indexed_db/proxy_webidbindex_impl.h" 12 #include "content/common/indexed_db/proxy_webidbindex_impl.h"
11 #include "content/common/indexed_db/proxy_webidbtransaction_impl.h" 13 #include "content/common/indexed_db/proxy_webidbtransaction_impl.h"
12 #include "content/common/child_thread.h" 14 #include "content/common/child_thread.h"
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h" 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h"
14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKey.h" 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKey.h"
15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyPath.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyPath.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 IndexedDBKeyRange(key_range), callbacks, 62 IndexedDBKeyRange(key_range), callbacks,
61 idb_object_store_id_, transaction, &ec); 63 idb_object_store_id_, transaction, &ec);
62 } 64 }
63 65
64 void RendererWebIDBObjectStoreImpl::putWithIndexKeys( 66 void RendererWebIDBObjectStoreImpl::putWithIndexKeys(
65 const WebSerializedScriptValue& value, 67 const WebSerializedScriptValue& value,
66 const WebIDBKey& key, 68 const WebIDBKey& key,
67 PutMode put_mode, 69 PutMode put_mode,
68 WebIDBCallbacks* callbacks, 70 WebIDBCallbacks* callbacks,
69 const WebIDBTransaction& transaction, 71 const WebIDBTransaction& transaction,
70 const WebVector<WebString>& indexNames, 72 const WebVector<WebString>& index_names,
71 const WebVector<WebVector<WebIDBKey> >& indexKeys, 73 const WebVector<WebVector<WebIDBKey> >& index_keys,
72 WebExceptionCode& ec) { 74 WebExceptionCode& ec) {
73 IndexedDBDispatcher* dispatcher = 75 IndexedDBDispatcher* dispatcher =
74 IndexedDBDispatcher::ThreadSpecificInstance(); 76 IndexedDBDispatcher::ThreadSpecificInstance();
75 dispatcher->RequestIDBObjectStorePut( 77 dispatcher->RequestIDBObjectStorePut(
76 SerializedScriptValue(value), IndexedDBKey(key), 78 SerializedScriptValue(value), IndexedDBKey(key),
77 put_mode, callbacks, idb_object_store_id_, transaction, 79 put_mode, callbacks, idb_object_store_id_, transaction,
78 indexNames, indexKeys, &ec); 80 index_names, index_keys, &ec);
79 } 81 }
80 82
83 void RendererWebIDBObjectStoreImpl::setIndexKeys(
84 const WebKit::WebIDBKey& primaryKey,
85 const WebKit::WebVector<WebKit::WebString>& index_names,
86 const WebKit::WebVector<WebIndexKeys>& index_keys,
87 const WebKit::WebIDBTransaction& transaction) {
88 std::vector<string16> index_names_list(index_names.size());
89 for (size_t i = 0; i < index_names.size(); ++i) {
90 index_names_list[i] = index_names[i];
91 }
92
93 std::vector<std::vector<content::IndexedDBKey> >
94 index_keys_list(index_keys.size());
95 for (size_t i = 0; i < index_keys.size(); ++i) {
96 index_keys_list[i].resize(index_keys[i].size());
97 for (size_t j = 0; j < index_keys[i].size(); ++j) {
98 index_keys_list[i][j] = content::IndexedDBKey(index_keys[i][j]);
99 }
100 }
101 IndexedDBDispatcher::Send(new IndexedDBHostMsg_ObjectStoreSetIndexKeys(
102 idb_object_store_id_,
103 IndexedDBKey(primaryKey),
104 index_names_list,
105 index_keys_list,
106 IndexedDBDispatcher::TransactionId(transaction)));
107 }
108
109 void RendererWebIDBObjectStoreImpl::setIndexesReady(
110 const WebKit::WebVector<WebKit::WebString>& index_names,
111 const WebKit::WebIDBTransaction& transaction) {
112
113 std::vector<string16> index_name_list(index_names.size());
114 for (size_t i = 0; i < index_names.size(); ++i) {
115 index_name_list[i] = index_names[i];
116 }
117
118 IndexedDBDispatcher::Send(new IndexedDBHostMsg_ObjectStoreSetIndexesReady(
119 idb_object_store_id_,
120 index_name_list, IndexedDBDispatcher::TransactionId(transaction)));
121 }
122
123
81 void RendererWebIDBObjectStoreImpl::deleteFunction( 124 void RendererWebIDBObjectStoreImpl::deleteFunction(
82 const WebIDBKeyRange& key_range, 125 const WebIDBKeyRange& key_range,
83 WebIDBCallbacks* callbacks, 126 WebIDBCallbacks* callbacks,
84 const WebIDBTransaction& transaction, 127 const WebIDBTransaction& transaction,
85 WebExceptionCode& ec) { 128 WebExceptionCode& ec) {
86 IndexedDBDispatcher* dispatcher = 129 IndexedDBDispatcher* dispatcher =
87 IndexedDBDispatcher::ThreadSpecificInstance(); 130 IndexedDBDispatcher::ThreadSpecificInstance();
88 dispatcher->RequestIDBObjectStoreDelete( 131 dispatcher->RequestIDBObjectStoreDelete(
89 IndexedDBKeyRange(key_range), callbacks, idb_object_store_id_, 132 IndexedDBKeyRange(key_range), callbacks, idb_object_store_id_,
90 transaction, &ec); 133 transaction, &ec);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 const WebIDBTransaction& transaction, 183 const WebIDBTransaction& transaction,
141 WebExceptionCode& ec) { 184 WebExceptionCode& ec) {
142 IndexedDBDispatcher::Send( 185 IndexedDBDispatcher::Send(
143 new IndexedDBHostMsg_ObjectStoreDeleteIndex( 186 new IndexedDBHostMsg_ObjectStoreDeleteIndex(
144 idb_object_store_id_, name, 187 idb_object_store_id_, name,
145 IndexedDBDispatcher::TransactionId(transaction), &ec)); 188 IndexedDBDispatcher::TransactionId(transaction), &ec));
146 } 189 }
147 190
148 void RendererWebIDBObjectStoreImpl::openCursor( 191 void RendererWebIDBObjectStoreImpl::openCursor(
149 const WebIDBKeyRange& idb_key_range, 192 const WebIDBKeyRange& idb_key_range,
193 WebKit::WebIDBCursor::Direction direction, WebIDBCallbacks* callbacks,
194 WebKit::WebIDBTransaction::TaskType task_type,
195 const WebIDBTransaction& transaction,
196 WebExceptionCode& ec) {
197 IndexedDBDispatcher* dispatcher =
198 IndexedDBDispatcher::ThreadSpecificInstance();
199 dispatcher->RequestIDBObjectStoreOpenCursor(
200 idb_key_range, direction, callbacks, idb_object_store_id_,
201 task_type, transaction, &ec);
202 }
203
204 void RendererWebIDBObjectStoreImpl::openCursor(
205 const WebIDBKeyRange& idb_key_range,
150 unsigned short direction, WebIDBCallbacks* callbacks, 206 unsigned short direction, WebIDBCallbacks* callbacks,
151 const WebIDBTransaction& transaction, 207 const WebIDBTransaction& transaction,
152 WebExceptionCode& ec) { 208 WebExceptionCode& ec) {
153 IndexedDBDispatcher* dispatcher = 209 IndexedDBDispatcher* dispatcher =
154 IndexedDBDispatcher::ThreadSpecificInstance(); 210 IndexedDBDispatcher::ThreadSpecificInstance();
155 dispatcher->RequestIDBObjectStoreOpenCursor( 211 dispatcher->RequestIDBObjectStoreOpenCursor(
156 idb_key_range, direction, callbacks, idb_object_store_id_, 212 idb_key_range, static_cast<WebKit::WebIDBCursor::Direction>(direction),
157 transaction, &ec); 213 callbacks, idb_object_store_id_,
214 WebKit::WebIDBTransaction::NormalTask, transaction, &ec);
158 } 215 }
159 216
160 void RendererWebIDBObjectStoreImpl::count( 217 void RendererWebIDBObjectStoreImpl::count(
161 const WebIDBKeyRange& idb_key_range, 218 const WebIDBKeyRange& idb_key_range,
162 WebIDBCallbacks* callbacks, 219 WebIDBCallbacks* callbacks,
163 const WebIDBTransaction& transaction, 220 const WebIDBTransaction& transaction,
164 WebExceptionCode& ec) { 221 WebExceptionCode& ec) {
165 IndexedDBDispatcher* dispatcher = 222 IndexedDBDispatcher* dispatcher =
166 IndexedDBDispatcher::ThreadSpecificInstance(); 223 IndexedDBDispatcher::ThreadSpecificInstance();
167 dispatcher->RequestIDBObjectStoreCount( 224 dispatcher->RequestIDBObjectStoreCount(
168 idb_key_range, callbacks, idb_object_store_id_, 225 idb_key_range, callbacks, idb_object_store_id_,
169 transaction, &ec); 226 transaction, &ec);
170 } 227 }
OLDNEW
« 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