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

Unified Diff: content/child/indexed_db/proxy_webidbcursor_impl.cc

Issue 18023022: Blob support for IDB [Chromium] (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Handle the rest of Josh's feedback. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/child/indexed_db/proxy_webidbcursor_impl.cc
diff --git a/content/child/indexed_db/proxy_webidbcursor_impl.cc b/content/child/indexed_db/proxy_webidbcursor_impl.cc
index db2a348dbc6550e4042ed97e8328070805d4b069..1771337b65f3c104bcf06715666ca77c92102fb8 100644
--- a/content/child/indexed_db/proxy_webidbcursor_impl.cc
+++ b/content/child/indexed_db/proxy_webidbcursor_impl.cc
@@ -118,10 +118,12 @@ void RendererWebIDBCursorImpl::postSuccessHandlerCallback() {
void RendererWebIDBCursorImpl::SetPrefetchData(
const std::vector<IndexedDBKey>& keys,
const std::vector<IndexedDBKey>& primary_keys,
- const std::vector<WebData>& values) {
+ const std::vector<WebData>& values,
+ const std::vector<blink::WebVector<blink::WebBlobInfo> >& blob_info) {
prefetch_keys_.assign(keys.begin(), keys.end());
prefetch_primary_keys_.assign(primary_keys.begin(), primary_keys.end());
prefetch_values_.assign(values.begin(), values.end());
+ prefetch_blob_info_.assign(blob_info.begin(), blob_info.end());
used_prefetches_ = 0;
pending_onsuccess_callbacks_ = 0;
@@ -129,23 +131,28 @@ void RendererWebIDBCursorImpl::SetPrefetchData(
void RendererWebIDBCursorImpl::CachedContinue(WebIDBCallbacks* callbacks) {
DCHECK_GT(prefetch_keys_.size(), 0ul);
- DCHECK(prefetch_primary_keys_.size() == prefetch_keys_.size());
- DCHECK(prefetch_values_.size() == prefetch_keys_.size());
+ DCHECK_EQ(prefetch_primary_keys_.size(), prefetch_keys_.size());
+ DCHECK_EQ(prefetch_values_.size(), prefetch_keys_.size());
+ DCHECK_EQ(prefetch_blob_info_.size(), prefetch_keys_.size());
IndexedDBKey key = prefetch_keys_.front();
IndexedDBKey primary_key = prefetch_primary_keys_.front();
// this could be a real problem.. we need 2 CachedContinues
WebData value = prefetch_values_.front();
+ blink::WebVector<blink::WebBlobInfo> blob_info = prefetch_blob_info_.front();
prefetch_keys_.pop_front();
prefetch_primary_keys_.pop_front();
prefetch_values_.pop_front();
+ prefetch_blob_info_.pop_front();
used_prefetches_++;
pending_onsuccess_callbacks_++;
callbacks->onSuccess(WebIDBKeyBuilder::Build(key),
- WebIDBKeyBuilder::Build(primary_key), value);
+ WebIDBKeyBuilder::Build(primary_key),
+ value,
+ blob_info);
}
void RendererWebIDBCursorImpl::ResetPrefetchCache() {
@@ -164,6 +171,7 @@ void RendererWebIDBCursorImpl::ResetPrefetchCache() {
prefetch_keys_.clear();
prefetch_primary_keys_.clear();
prefetch_values_.clear();
+ prefetch_blob_info_.clear();
pending_onsuccess_callbacks_ = 0;
}

Powered by Google App Engine
This is Rietveld 408576698