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

Unified Diff: content/renderer/indexed_db/renderer_webidbcursor_impl.cc

Issue 9368053: Move indexed db files from content/renderer to content/common. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unneccesary include Created 8 years, 10 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
Index: content/renderer/indexed_db/renderer_webidbcursor_impl.cc
diff --git a/content/renderer/indexed_db/renderer_webidbcursor_impl.cc b/content/renderer/indexed_db/renderer_webidbcursor_impl.cc
deleted file mode 100644
index 52eaf575d4874216526082fe669964ef3a572627..0000000000000000000000000000000000000000
--- a/content/renderer/indexed_db/renderer_webidbcursor_impl.cc
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/indexed_db/renderer_webidbcursor_impl.h"
-
-#include "content/common/indexed_db/indexed_db_messages.h"
-#include "content/renderer/indexed_db/indexed_db_dispatcher.h"
-#include "content/renderer/render_thread_impl.h"
-
-using WebKit::WebExceptionCode;
-using WebKit::WebIDBCallbacks;
-using WebKit::WebIDBKey;
-using WebKit::WebSerializedScriptValue;
-
-RendererWebIDBCursorImpl::RendererWebIDBCursorImpl(int32 idb_cursor_id)
- : idb_cursor_id_(idb_cursor_id),
- continue_count_(0),
- used_prefetches_(0),
- pending_onsuccess_callbacks_(0),
- prefetch_amount_(kMinPrefetchAmount) {
-}
-
-RendererWebIDBCursorImpl::~RendererWebIDBCursorImpl() {
- // It's not possible for there to be pending callbacks that address this
- // object since inside WebKit, they hold a reference to the object wich owns
- // this object. But, if that ever changed, then we'd need to invalidate
- // any such pointers.
- ChildThread::current()->Send(new IndexedDBHostMsg_CursorDestroyed(
- idb_cursor_id_));
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->CursorDestroyed(idb_cursor_id_);
-}
-
-unsigned short RendererWebIDBCursorImpl::direction() const {
- int direction;
- ChildThread::current()->Send(
- new IndexedDBHostMsg_CursorDirection(idb_cursor_id_, &direction));
- return direction;
-}
-
-WebIDBKey RendererWebIDBCursorImpl::key() const {
- return key_;
-}
-
-WebIDBKey RendererWebIDBCursorImpl::primaryKey() const {
- return primary_key_;
-}
-
-WebSerializedScriptValue RendererWebIDBCursorImpl::value() const {
- return value_;
-}
-
-void RendererWebIDBCursorImpl::update(const WebSerializedScriptValue& value,
- WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBCursorUpdate(
- content::SerializedScriptValue(value), callbacks, idb_cursor_id_, &ec);
-}
-
-void RendererWebIDBCursorImpl::continueFunction(const WebIDBKey& key,
- WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
-
- if (key.type() == WebIDBKey::InvalidType) {
- // No key, so this would qualify for a prefetch.
- ++continue_count_;
-
- if (!prefetch_keys_.empty()) {
- // We have a prefetch cache, so serve the result from that.
- CachedContinue(callbacks);
- return;
- }
-
- if (continue_count_ > kPrefetchContinueThreshold) {
- // Request pre-fetch.
- dispatcher->RequestIDBCursorPrefetch(prefetch_amount_, callbacks,
- idb_cursor_id_, &ec);
-
- // Increase prefetch_amount_ exponentially.
- prefetch_amount_ *= 2;
- if (prefetch_amount_ > kMaxPrefetchAmount)
- prefetch_amount_ = kMaxPrefetchAmount;
-
- return;
- }
- } else {
- // Key argument supplied. We couldn't prefetch this.
- ResetPrefetchCache();
- }
-
- dispatcher->RequestIDBCursorContinue(IndexedDBKey(key), callbacks,
- idb_cursor_id_, &ec);
-}
-
-void RendererWebIDBCursorImpl::deleteFunction(WebIDBCallbacks* callbacks,
- WebExceptionCode& ec) {
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBCursorDelete(callbacks, idb_cursor_id_, &ec);
-}
-
-void RendererWebIDBCursorImpl::postSuccessHandlerCallback()
-{
- pending_onsuccess_callbacks_--;
-
- // If the onsuccess callback called continue() on the cursor again,
- // and that continue was served by the prefetch cache, then
- // pending_onsuccess_callbacks_ would be incremented.
- // If not, it means the callback did something else, or nothing at all,
- // in which case we need to reset the cache.
-
- if (pending_onsuccess_callbacks_ == 0)
- ResetPrefetchCache();
-}
-
-void RendererWebIDBCursorImpl::SetKeyAndValue(
- const IndexedDBKey& key,
- const IndexedDBKey& primary_key,
- const content::SerializedScriptValue& value) {
- key_ = key;
- primary_key_ = primary_key;
- value_ = value;
-}
-
-void RendererWebIDBCursorImpl::SetPrefetchData(
- const std::vector<IndexedDBKey>& keys,
- const std::vector<IndexedDBKey>& primary_keys,
- const std::vector<content::SerializedScriptValue>& values) {
- prefetch_keys_.assign(keys.begin(), keys.end());
- prefetch_primary_keys_.assign(primary_keys.begin(), primary_keys.end());
- prefetch_values_.assign(values.begin(), values.end());
-
- used_prefetches_ = 0;
- pending_onsuccess_callbacks_ = 0;
-}
-
-void RendererWebIDBCursorImpl::CachedContinue(
- WebKit::WebIDBCallbacks* callbacks) {
- DCHECK(prefetch_keys_.size() > 0);
- DCHECK(prefetch_primary_keys_.size() == prefetch_keys_.size());
- DCHECK(prefetch_values_.size() == prefetch_keys_.size());
-
- key_ = prefetch_keys_.front();
- primary_key_ = prefetch_primary_keys_.front();
- value_ = prefetch_values_.front();
-
- prefetch_keys_.pop_front();
- prefetch_primary_keys_.pop_front();
- prefetch_values_.pop_front();
- used_prefetches_++;
-
- pending_onsuccess_callbacks_++;
- callbacks->onSuccessWithContinuation();
-}
-
-void RendererWebIDBCursorImpl::ResetPrefetchCache() {
- continue_count_ = 0;
- prefetch_amount_ = kMinPrefetchAmount;
-
- if (!prefetch_keys_.size()) {
- // No prefetch cache, so no need to reset the cursor in the back-end.
- return;
- }
-
- IndexedDBDispatcher* dispatcher =
- IndexedDBDispatcher::ThreadSpecificInstance();
- dispatcher->RequestIDBCursorPrefetchReset(used_prefetches_,
- prefetch_keys_.size(),
- idb_cursor_id_);
- prefetch_keys_.clear();
- prefetch_primary_keys_.clear();
- prefetch_values_.clear();
-
- pending_onsuccess_callbacks_ = 0;
-}
« no previous file with comments | « content/renderer/indexed_db/renderer_webidbcursor_impl.h ('k') | content/renderer/indexed_db/renderer_webidbdatabase_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698