| 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;
|
| }
|
|
|