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

Side by Side Diff: content/browser/in_process_webkit/indexed_db_dispatcher_host.cc

Issue 8662017: IndexedDB: Cursor pre-fetching. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tighten the browser test a little Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/in_process_webkit/indexed_db_dispatcher_host.h" 5 #include "content/browser/in_process_webkit/indexed_db_dispatcher_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "content/browser/in_process_webkit/indexed_db_callbacks.h" 10 #include "content/browser/in_process_webkit/indexed_db_callbacks.h"
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 } 875 }
876 876
877 bool IndexedDBDispatcherHost::CursorDispatcherHost::OnMessageReceived( 877 bool IndexedDBDispatcherHost::CursorDispatcherHost::OnMessageReceived(
878 const IPC::Message& message, bool* msg_is_ok) { 878 const IPC::Message& message, bool* msg_is_ok) {
879 bool handled = true; 879 bool handled = true;
880 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::CursorDispatcherHost, 880 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::CursorDispatcherHost,
881 message, *msg_is_ok) 881 message, *msg_is_ok)
882 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDirection, OnDirection) 882 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDirection, OnDirection)
883 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorUpdate, OnUpdate) 883 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorUpdate, OnUpdate)
884 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorContinue, OnContinue) 884 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorContinue, OnContinue)
885 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorPrefetch, OnPrefetch)
886 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorPrefetchReset, OnPrefetchReset)
885 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDelete, OnDelete) 887 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDelete, OnDelete)
886 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDestroyed, OnDestroyed) 888 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_CursorDestroyed, OnDestroyed)
887 IPC_MESSAGE_UNHANDLED(handled = false) 889 IPC_MESSAGE_UNHANDLED(handled = false)
888 IPC_END_MESSAGE_MAP() 890 IPC_END_MESSAGE_MAP()
889 return handled; 891 return handled;
890 } 892 }
891 893
892 894
893 void IndexedDBDispatcherHost::CursorDispatcherHost::Send( 895 void IndexedDBDispatcherHost::CursorDispatcherHost::Send(
894 IPC::Message* message) { 896 IPC::Message* message) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); 958 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id);
957 if (!idb_cursor) 959 if (!idb_cursor)
958 return; 960 return;
959 961
960 *ec = 0; 962 *ec = 0;
961 idb_cursor->continueFunction( 963 idb_cursor->continueFunction(
962 key, new IndexedDBCallbacks<WebIDBCursor>(parent_, response_id, 964 key, new IndexedDBCallbacks<WebIDBCursor>(parent_, response_id,
963 cursor_id), *ec); 965 cursor_id), *ec);
964 } 966 }
965 967
968 void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetch(
969 int32 cursor_id,
970 int32 response_id,
971 int n,
972 WebKit::WebExceptionCode* ec) {
973 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT));
974 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id);
975 if (!idb_cursor)
976 return;
977
978 *ec = 0;
979 idb_cursor->prefetchContinue(
980 n, new IndexedDBCallbacks<WebIDBCursor>(parent_, response_id,
981 cursor_id), *ec);
982 }
983
984 void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetchReset(
985 int32 cursor_id, int used_prefetches, int unused_prefetches) {
986 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT));
987 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id);
988 if (!idb_cursor)
989 return;
990
991 idb_cursor->prefetchReset(used_prefetches, unused_prefetches);
992 }
993
966 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDelete( 994 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDelete(
967 int32 cursor_id, 995 int32 cursor_id,
968 int32 response_id, 996 int32 response_id,
969 WebKit::WebExceptionCode* ec) { 997 WebKit::WebExceptionCode* ec) {
970 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); 998 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT));
971 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); 999 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id);
972 if (!idb_cursor) 1000 if (!idb_cursor)
973 return; 1001 return;
974 1002
975 *ec = 0; 1003 *ec = 0;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 } 1101 }
1074 idb_transaction->didCompleteTaskEvents(); 1102 idb_transaction->didCompleteTaskEvents();
1075 } 1103 }
1076 1104
1077 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed( 1105 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed(
1078 int32 object_id) { 1106 int32 object_id) {
1079 transaction_size_map_.erase(object_id); 1107 transaction_size_map_.erase(object_id);
1080 transaction_url_map_.erase(object_id); 1108 transaction_url_map_.erase(object_id);
1081 parent_->DestroyObject(&map_, object_id); 1109 parent_->DestroyObject(&map_, object_id);
1082 } 1110 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698