Index: content/browser/indexed_db/indexed_db_dispatcher_host.cc |
diff --git a/content/browser/indexed_db/indexed_db_dispatcher_host.cc b/content/browser/indexed_db/indexed_db_dispatcher_host.cc |
index 01df072d4e0cee119667a609182b9d26a59f5df4..e2aa4dfd62c701f1f7bc7efcfb4d8fa137eea683 100644 |
--- a/content/browser/indexed_db/indexed_db_dispatcher_host.cc |
+++ b/content/browser/indexed_db/indexed_db_dispatcher_host.cc |
@@ -18,7 +18,6 @@ |
#include "content/browser/indexed_db/indexed_db_callbacks.h" |
#include "content/browser/indexed_db/indexed_db_connection.h" |
#include "content/browser/indexed_db/indexed_db_context_impl.h" |
-#include "content/browser/indexed_db/indexed_db_cursor.h" |
#include "content/browser/indexed_db/indexed_db_database_callbacks.h" |
#include "content/browser/indexed_db/indexed_db_observation.h" |
#include "content/browser/indexed_db/indexed_db_observer_changes.h" |
@@ -63,7 +62,6 @@ IndexedDBDispatcherHost::IndexedDBDispatcherHost( |
request_context_getter_(request_context_getter), |
indexed_db_context_(indexed_db_context), |
blob_storage_context_(blob_storage_context), |
- cursor_dispatcher_host_(base::MakeUnique<CursorDispatcherHost>(this)), |
ipc_process_id_(ipc_process_id) { |
DCHECK(indexed_db_context_.get()); |
} |
@@ -101,47 +99,10 @@ void IndexedDBDispatcherHost::ResetDispatcherHosts() { |
// Prevent any pending connections from being processed. |
is_open_ = false; |
- |
- cursor_dispatcher_host_.reset(); |
-} |
- |
-base::TaskRunner* IndexedDBDispatcherHost::OverrideTaskRunnerForMessage( |
- const IPC::Message& message) { |
- if (IPC_MESSAGE_CLASS(message) != IndexedDBMsgStart) |
- return NULL; |
- |
- switch (message.type()) { |
- case IndexedDBHostMsg_AckReceivedBlobs::ID: |
- return NULL; |
- default: |
- return indexed_db_context_->TaskRunner(); |
- } |
} |
bool IndexedDBDispatcherHost::OnMessageReceived(const IPC::Message& message) { |
- if (IPC_MESSAGE_CLASS(message) != IndexedDBMsgStart) |
- return false; |
- |
- DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread() || |
- message.type() == IndexedDBHostMsg_AckReceivedBlobs::ID); |
- |
- bool handled = cursor_dispatcher_host_->OnMessageReceived(message); |
- |
- if (!handled) { |
- handled = true; |
- IPC_BEGIN_MESSAGE_MAP(IndexedDBDispatcherHost, message) |
- IPC_MESSAGE_HANDLER(IndexedDBHostMsg_AckReceivedBlobs, OnAckReceivedBlobs) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- } |
- return handled; |
-} |
- |
-int32_t IndexedDBDispatcherHost::Add(IndexedDBCursor* cursor) { |
- if (!cursor_dispatcher_host_) { |
- return 0; |
- } |
- return cursor_dispatcher_host_->map_.Add(cursor); |
+ return false; |
} |
bool IndexedDBDispatcherHost::RegisterTransactionId(int64_t host_transaction_id, |
@@ -246,12 +207,6 @@ bool IndexedDBDispatcherHost::IsOpen() const { |
return is_open_; |
} |
-IndexedDBCursor* IndexedDBDispatcherHost::GetCursorFromId( |
- int32_t ipc_cursor_id) { |
- DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); |
- return cursor_dispatcher_host_->map_.Lookup(ipc_cursor_id); |
-} |
- |
IndexedDBMsg_ObserverChanges IndexedDBDispatcherHost::ConvertObserverChanges( |
std::unique_ptr<IndexedDBObserverChanges> changes) { |
IndexedDBMsg_ObserverChanges idb_changes; |
@@ -385,13 +340,6 @@ void IndexedDBDispatcherHost::DeleteDatabaseOnIDBThread( |
name, request_context_getter_, callbacks, origin, indexed_db_path); |
} |
-void IndexedDBDispatcherHost::OnAckReceivedBlobs( |
- const std::vector<std::string>& uuids) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- for (const auto& uuid : uuids) |
- DropBlobData(uuid); |
-} |
- |
void IndexedDBDispatcherHost::FinishTransaction(int64_t host_transaction_id, |
bool committed) { |
DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); |
@@ -403,137 +351,4 @@ void IndexedDBDispatcherHost::FinishTransaction(int64_t host_transaction_id, |
transaction_size_map_.erase(host_transaction_id); |
} |
-////////////////////////////////////////////////////////////////////// |
-// Helper templates. |
-// |
- |
-template <typename ObjectType> |
-ObjectType* IndexedDBDispatcherHost::GetOrTerminateProcess( |
- RefIDMap<ObjectType>* map, |
- int32_t ipc_return_object_id) { |
- DCHECK(indexed_db_context_->TaskRunner()->RunsTasksOnCurrentThread()); |
- ObjectType* return_object = map->Lookup(ipc_return_object_id); |
- if (!return_object) { |
- NOTREACHED() << "Uh oh, couldn't find object with id " |
- << ipc_return_object_id; |
- bad_message::ReceivedBadMessage(this, bad_message::IDBDH_GET_OR_TERMINATE); |
- } |
- return return_object; |
-} |
- |
-template <typename MapType> |
-void IndexedDBDispatcherHost::DestroyObject(MapType* map, |
- int32_t ipc_object_id) { |
- GetOrTerminateProcess(map, ipc_object_id); |
- map->Remove(ipc_object_id); |
-} |
- |
-////////////////////////////////////////////////////////////////////// |
-// IndexedDBDispatcherHost::CursorDispatcherHost |
-// |
- |
-IndexedDBDispatcherHost::CursorDispatcherHost::CursorDispatcherHost( |
- IndexedDBDispatcherHost* parent) |
- : parent_(parent) { |
-} |
- |
-IndexedDBDispatcherHost::CursorDispatcherHost::~CursorDispatcherHost() {} |
- |
-bool IndexedDBDispatcherHost::CursorDispatcherHost::OnMessageReceived( |
- const IPC::Message& message) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP( |
- IndexedDBDispatcherHost::CursorDispatcherHost, message) |
- IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorAdvance, OnAdvance) |
- IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorContinue, OnContinue) |
- IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorPrefetch, OnPrefetch) |
- IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorPrefetchReset, OnPrefetchReset) |
- IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDestroyed, OnDestroyed) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- |
- DCHECK(!handled || |
- parent_->context()->TaskRunner()->RunsTasksOnCurrentThread()); |
- |
- return handled; |
-} |
- |
-void IndexedDBDispatcherHost::CursorDispatcherHost::OnAdvance( |
- int32_t ipc_cursor_id, |
- int32_t ipc_thread_id, |
- int32_t ipc_callbacks_id, |
- uint32_t count) { |
- DCHECK(parent_->context()->TaskRunner()->RunsTasksOnCurrentThread()); |
- IndexedDBCursor* idb_cursor = |
- parent_->GetOrTerminateProcess(&map_, ipc_cursor_id); |
- if (!idb_cursor) |
- return; |
- |
- idb_cursor->Advance( |
- count, |
- new IndexedDBCallbacks( |
- parent_, ipc_thread_id, ipc_callbacks_id, ipc_cursor_id)); |
-} |
- |
-void IndexedDBDispatcherHost::CursorDispatcherHost::OnContinue( |
- int32_t ipc_cursor_id, |
- int32_t ipc_thread_id, |
- int32_t ipc_callbacks_id, |
- const IndexedDBKey& key, |
- const IndexedDBKey& primary_key) { |
- DCHECK(parent_->context()->TaskRunner()->RunsTasksOnCurrentThread()); |
- IndexedDBCursor* idb_cursor = |
- parent_->GetOrTerminateProcess(&map_, ipc_cursor_id); |
- if (!idb_cursor) |
- return; |
- |
- idb_cursor->Continue(key.IsValid() ? base::MakeUnique<IndexedDBKey>(key) |
- : std::unique_ptr<IndexedDBKey>(), |
- primary_key.IsValid() |
- ? base::MakeUnique<IndexedDBKey>(primary_key) |
- : std::unique_ptr<IndexedDBKey>(), |
- new IndexedDBCallbacks(parent_, ipc_thread_id, |
- ipc_callbacks_id, ipc_cursor_id)); |
-} |
- |
-void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetch( |
- int32_t ipc_cursor_id, |
- int32_t ipc_thread_id, |
- int32_t ipc_callbacks_id, |
- int n) { |
- DCHECK(parent_->context()->TaskRunner()->RunsTasksOnCurrentThread()); |
- IndexedDBCursor* idb_cursor = |
- parent_->GetOrTerminateProcess(&map_, ipc_cursor_id); |
- if (!idb_cursor) |
- return; |
- |
- idb_cursor->PrefetchContinue( |
- n, |
- new IndexedDBCallbacks( |
- parent_, ipc_thread_id, ipc_callbacks_id, ipc_cursor_id)); |
-} |
- |
-void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetchReset( |
- int32_t ipc_cursor_id, |
- int used_prefetches, |
- int unused_prefetches) { |
- DCHECK(parent_->context()->TaskRunner()->RunsTasksOnCurrentThread()); |
- IndexedDBCursor* idb_cursor = |
- parent_->GetOrTerminateProcess(&map_, ipc_cursor_id); |
- if (!idb_cursor) |
- return; |
- |
- leveldb::Status s = |
- idb_cursor->PrefetchReset(used_prefetches, unused_prefetches); |
- // TODO(cmumford): Handle this error (crbug.com/363397) |
- if (!s.ok()) |
- DLOG(ERROR) << "Unable to reset prefetch"; |
-} |
- |
-void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( |
- int32_t ipc_object_id) { |
- DCHECK(parent_->context()->TaskRunner()->RunsTasksOnCurrentThread()); |
- parent_->DestroyObject(&map_, ipc_object_id); |
-} |
- |
} // namespace content |