| Index: content/child/indexed_db/webidbcursor_impl.cc
|
| diff --git a/content/child/indexed_db/webidbcursor_impl.cc b/content/child/indexed_db/webidbcursor_impl.cc
|
| index ad039d8481a7a3c255dee33a1756822fa0e98f5a..c3d97ba3eca6e5254caa3f6c36ca37ae65fdef15 100644
|
| --- a/content/child/indexed_db/webidbcursor_impl.cc
|
| +++ b/content/child/indexed_db/webidbcursor_impl.cc
|
| @@ -122,10 +122,12 @@ void WebIDBCursorImpl::postSuccessHandlerCallback() {
|
| void WebIDBCursorImpl::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;
|
| @@ -136,11 +138,13 @@ void WebIDBCursorImpl::CachedAdvance(unsigned long count,
|
| DCHECK_GE(prefetch_keys_.size(), count);
|
| 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());
|
|
|
| while (count > 1) {
|
| prefetch_keys_.pop_front();
|
| prefetch_primary_keys_.pop_front();
|
| prefetch_values_.pop_front();
|
| + prefetch_blob_info_.pop_front();
|
| ++used_prefetches_;
|
| --count;
|
| }
|
| @@ -152,14 +156,17 @@ void WebIDBCursorImpl::CachedContinue(WebIDBCallbacks* callbacks) {
|
| DCHECK_GT(prefetch_keys_.size(), 0ul);
|
| 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();
|
| 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_;
|
| @@ -174,7 +181,8 @@ void WebIDBCursorImpl::CachedContinue(WebIDBCallbacks* callbacks) {
|
|
|
| callbacks->onSuccess(WebIDBKeyBuilder::Build(key),
|
| WebIDBKeyBuilder::Build(primary_key),
|
| - value);
|
| + value,
|
| + blob_info);
|
| }
|
|
|
| void WebIDBCursorImpl::ResetPrefetchCache() {
|
| @@ -193,6 +201,7 @@ void WebIDBCursorImpl::ResetPrefetchCache() {
|
| prefetch_keys_.clear();
|
| prefetch_primary_keys_.clear();
|
| prefetch_values_.clear();
|
| + prefetch_blob_info_.clear();
|
|
|
| pending_onsuccess_callbacks_ = 0;
|
| }
|
|
|