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

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

Issue 8779003: Chromium side of IDBIndex.count() and IDBObjectStore.count() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 bool handled = true; 507 bool handled = true;
508 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::IndexDispatcherHost, 508 IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost::IndexDispatcherHost,
509 message, *msg_is_ok) 509 message, *msg_is_ok)
510 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexName, OnName) 510 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexName, OnName)
511 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexStoreName, OnStoreName) 511 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexStoreName, OnStoreName)
512 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexKeyPath, OnKeyPath) 512 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexKeyPath, OnKeyPath)
513 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexUnique, OnUnique) 513 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexUnique, OnUnique)
514 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexOpenObjectCursor, 514 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexOpenObjectCursor,
515 OnOpenObjectCursor) 515 OnOpenObjectCursor)
516 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexOpenKeyCursor, OnOpenKeyCursor) 516 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexOpenKeyCursor, OnOpenKeyCursor)
517 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexCount, OnCount)
517 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetObject, OnGetObject) 518 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetObject, OnGetObject)
518 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetKey, OnGetKey) 519 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexGetKey, OnGetKey)
519 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexDestroyed, OnDestroyed) 520 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_IndexDestroyed, OnDestroyed)
520 IPC_MESSAGE_UNHANDLED(handled = false) 521 IPC_MESSAGE_UNHANDLED(handled = false)
521 IPC_END_MESSAGE_MAP() 522 IPC_END_MESSAGE_MAP()
522 return handled; 523 return handled;
523 } 524 }
524 525
525 void IndexedDBDispatcherHost::IndexDispatcherHost::Send( 526 void IndexedDBDispatcherHost::IndexDispatcherHost::Send(
526 IPC::Message* message) { 527 IPC::Message* message) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 583
583 *ec = 0; 584 *ec = 0;
584 scoped_ptr<WebIDBCallbacks> callbacks( 585 scoped_ptr<WebIDBCallbacks> callbacks(
585 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1)); 586 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1));
586 idb_index->openKeyCursor( 587 idb_index->openKeyCursor(
587 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, 588 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open,
588 params.upper_open), 589 params.upper_open),
589 params.direction, callbacks.release(), *idb_transaction, *ec); 590 params.direction, callbacks.release(), *idb_transaction, *ec);
590 } 591 }
591 592
593 void IndexedDBDispatcherHost::IndexDispatcherHost::OnCount(
594 const IndexedDBHostMsg_IndexCount_Params& params,
595 WebKit::WebExceptionCode* ec) {
596 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT));
597 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess(
598 &map_, params.idb_index_id);
599 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess(
600 &parent_->transaction_dispatcher_host_->map_, params.transaction_id);
601 if (!idb_transaction || !idb_index)
602 return;
603
604 *ec = 0;
605 scoped_ptr<WebIDBCallbacks> callbacks(
606 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_,
607 params.response_id));
608 idb_index->count(
609 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open,
610 params.upper_open),
611 callbacks.release(), *idb_transaction, *ec);
612 }
613
592 void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetObject( 614 void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetObject(
593 int idb_index_id, 615 int idb_index_id,
594 int32 response_id, 616 int32 response_id,
595 const IndexedDBKey& key, 617 const IndexedDBKey& key,
596 int32 transaction_id, 618 int32 transaction_id,
597 WebKit::WebExceptionCode* ec) { 619 WebKit::WebExceptionCode* ec) {
598 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); 620 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT));
599 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( 621 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess(
600 &map_, idb_index_id); 622 &map_, idb_index_id);
601 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( 623 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess(
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreKeyPath, OnKeyPath) 679 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreKeyPath, OnKeyPath)
658 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreIndexNames, OnIndexNames) 680 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreIndexNames, OnIndexNames)
659 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreGet, OnGet) 681 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreGet, OnGet)
660 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStorePut, OnPut) 682 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStorePut, OnPut)
661 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDelete, OnDelete) 683 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDelete, OnDelete)
662 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreClear, OnClear) 684 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreClear, OnClear)
663 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreCreateIndex, OnCreateIndex) 685 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreCreateIndex, OnCreateIndex)
664 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreIndex, OnIndex) 686 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreIndex, OnIndex)
665 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDeleteIndex, OnDeleteIndex) 687 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDeleteIndex, OnDeleteIndex)
666 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreOpenCursor, OnOpenCursor) 688 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreOpenCursor, OnOpenCursor)
689 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreCount, OnCount)
667 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDestroyed, OnDestroyed) 690 IPC_MESSAGE_HANDLER(IndexedDBHostMsg_ObjectStoreDestroyed, OnDestroyed)
668 IPC_MESSAGE_UNHANDLED(handled = false) 691 IPC_MESSAGE_UNHANDLED(handled = false)
669 IPC_END_MESSAGE_MAP() 692 IPC_END_MESSAGE_MAP()
670 return handled; 693 return handled;
671 } 694 }
672 695
673 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::Send( 696 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::Send(
674 IPC::Message* message) { 697 IPC::Message* message) {
675 parent_->Send(message); 698 parent_->Send(message);
676 } 699 }
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 877
855 *ec = 0; 878 *ec = 0;
856 scoped_ptr<WebIDBCallbacks> callbacks( 879 scoped_ptr<WebIDBCallbacks> callbacks(
857 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1)); 880 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1));
858 idb_object_store->openCursor( 881 idb_object_store->openCursor(
859 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, 882 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open,
860 params.upper_open), 883 params.upper_open),
861 params.direction, callbacks.release(), *idb_transaction, *ec); 884 params.direction, callbacks.release(), *idb_transaction, *ec);
862 } 885 }
863 886
887 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnCount(
888 const IndexedDBHostMsg_ObjectStoreCount_Params& params,
889 WebKit::WebExceptionCode* ec) {
890 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT));
891 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess(
892 &parent_->object_store_dispatcher_host_->map_,
893 params.idb_object_store_id);
894 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess(
895 &parent_->transaction_dispatcher_host_->map_, params.transaction_id);
896 if (!idb_transaction || !idb_object_store)
897 return;
898
899 *ec = 0;
900 scoped_ptr<WebIDBCallbacks> callbacks(
901 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_,
902 params.response_id));
903 idb_object_store->count(
904 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open,
905 params.upper_open),
906 callbacks.release(), *idb_transaction, *ec);
907 }
908
864 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDestroyed( 909 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDestroyed(
865 int32 object_id) { 910 int32 object_id) {
866 parent_->DestroyObject(&map_, object_id); 911 parent_->DestroyObject(&map_, object_id);
867 } 912 }
868 913
869 ////////////////////////////////////////////////////////////////////// 914 //////////////////////////////////////////////////////////////////////
870 // IndexedDBDispatcherHost::CursorDispatcherHost 915 // IndexedDBDispatcherHost::CursorDispatcherHost
871 // 916 //
872 917
873 IndexedDBDispatcherHost::CursorDispatcherHost::CursorDispatcherHost( 918 IndexedDBDispatcherHost::CursorDispatcherHost::CursorDispatcherHost(
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 } 1151 }
1107 idb_transaction->didCompleteTaskEvents(); 1152 idb_transaction->didCompleteTaskEvents();
1108 } 1153 }
1109 1154
1110 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed( 1155 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed(
1111 int32 object_id) { 1156 int32 object_id) {
1112 transaction_size_map_.erase(object_id); 1157 transaction_size_map_.erase(object_id);
1113 transaction_url_map_.erase(object_id); 1158 transaction_url_map_.erase(object_id);
1114 parent_->DestroyObject(&map_, object_id); 1159 parent_->DestroyObject(&map_, object_id);
1115 } 1160 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698