| OLD | NEW |
| 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/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "content/browser/browser_thread.h" | 9 #include "content/browser/browser_thread.h" |
| 10 #include "content/browser/in_process_webkit/indexed_db_callbacks.h" | 10 #include "content/browser/in_process_webkit/indexed_db_callbacks.h" |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 version, | 424 version, |
| 425 new IndexedDBCallbacks<WebIDBTransaction>(parent_, response_id, | 425 new IndexedDBCallbacks<WebIDBTransaction>(parent_, response_id, |
| 426 database_url_map_[idb_database_id]), | 426 database_url_map_[idb_database_id]), |
| 427 *ec); | 427 *ec); |
| 428 } | 428 } |
| 429 | 429 |
| 430 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnTransaction( | 430 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnTransaction( |
| 431 int32 idb_database_id, | 431 int32 idb_database_id, |
| 432 const std::vector<string16>& names, | 432 const std::vector<string16>& names, |
| 433 int32 mode, | 433 int32 mode, |
| 434 int32 timeout, | |
| 435 int32* idb_transaction_id, | 434 int32* idb_transaction_id, |
| 436 WebKit::WebExceptionCode* ec) { | 435 WebKit::WebExceptionCode* ec) { |
| 437 WebIDBDatabase* database = parent_->GetOrTerminateProcess( | 436 WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| 438 &map_, idb_database_id); | 437 &map_, idb_database_id); |
| 439 if (!database) | 438 if (!database) |
| 440 return; | 439 return; |
| 441 | 440 |
| 442 WebDOMStringList object_stores; | 441 WebDOMStringList object_stores; |
| 443 for (std::vector<string16>::const_iterator it = names.begin(); | 442 for (std::vector<string16>::const_iterator it = names.begin(); |
| 444 it != names.end(); ++it) { | 443 it != names.end(); ++it) { |
| 445 object_stores.append(*it); | 444 object_stores.append(*it); |
| 446 } | 445 } |
| 447 | 446 |
| 448 *ec = 0; | 447 *ec = 0; |
| 449 WebIDBTransaction* transaction = database->transaction( | 448 WebIDBTransaction* transaction = database->transaction( |
| 450 object_stores, mode, timeout, *ec); | 449 object_stores, mode, *ec); |
| 451 DCHECK(!transaction != !*ec); | 450 DCHECK(!transaction != !*ec); |
| 452 *idb_transaction_id = | 451 *idb_transaction_id = |
| 453 *ec ? 0 : parent_->Add(transaction, database_url_map_[idb_database_id]); | 452 *ec ? 0 : parent_->Add(transaction, database_url_map_[idb_database_id]); |
| 454 } | 453 } |
| 455 | 454 |
| 456 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnOpen( | 455 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnOpen( |
| 457 int32 idb_database_id, int32 response_id) { | 456 int32 idb_database_id, int32 response_id) { |
| 458 WebIDBDatabase* database = parent_->GetOrTerminateProcess( | 457 WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| 459 &map_, idb_database_id); | 458 &map_, idb_database_id); |
| 460 database->open(new IndexedDBDatabaseCallbacks(parent_, response_id)); | 459 database->open(new IndexedDBDatabaseCallbacks(parent_, response_id)); |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 int32 object_id, IndexedDBKey* primary_key) { | 909 int32 object_id, IndexedDBKey* primary_key) { |
| 911 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, object_id); | 910 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, object_id); |
| 912 if (!idb_cursor) | 911 if (!idb_cursor) |
| 913 return; | 912 return; |
| 914 | 913 |
| 915 *primary_key = IndexedDBKey(idb_cursor->primaryKey()); | 914 *primary_key = IndexedDBKey(idb_cursor->primaryKey()); |
| 916 } | 915 } |
| 917 | 916 |
| 918 void IndexedDBDispatcherHost::CursorDispatcherHost::OnValue( | 917 void IndexedDBDispatcherHost::CursorDispatcherHost::OnValue( |
| 919 int32 object_id, | 918 int32 object_id, |
| 920 SerializedScriptValue* script_value, | 919 SerializedScriptValue* script_value) { |
| 921 IndexedDBKey* key) { | |
| 922 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, object_id); | 920 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, object_id); |
| 923 if (!idb_cursor) | 921 if (!idb_cursor) |
| 924 return; | 922 return; |
| 925 | 923 |
| 926 WebSerializedScriptValue temp_script_value; | 924 *script_value = SerializedScriptValue(idb_cursor->value()); |
| 927 WebIDBKey temp_key; | |
| 928 idb_cursor->value(temp_script_value, temp_key); | |
| 929 | |
| 930 *script_value = SerializedScriptValue(temp_script_value); | |
| 931 *key = IndexedDBKey(temp_key); | |
| 932 } | 925 } |
| 933 | 926 |
| 934 void IndexedDBDispatcherHost::CursorDispatcherHost::OnUpdate( | 927 void IndexedDBDispatcherHost::CursorDispatcherHost::OnUpdate( |
| 935 int32 cursor_id, | 928 int32 cursor_id, |
| 936 int32 response_id, | 929 int32 response_id, |
| 937 const SerializedScriptValue& value, | 930 const SerializedScriptValue& value, |
| 938 WebKit::WebExceptionCode* ec) { | 931 WebKit::WebExceptionCode* ec) { |
| 939 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 932 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 940 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 933 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 941 if (!idb_cursor) | 934 if (!idb_cursor) |
| (...skipping 22 matching lines...) Expand all Loading... |
| 964 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDelete( | 957 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDelete( |
| 965 int32 cursor_id, | 958 int32 cursor_id, |
| 966 int32 response_id, | 959 int32 response_id, |
| 967 WebKit::WebExceptionCode* ec) { | 960 WebKit::WebExceptionCode* ec) { |
| 968 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 961 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 969 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 962 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 970 if (!idb_cursor) | 963 if (!idb_cursor) |
| 971 return; | 964 return; |
| 972 | 965 |
| 973 *ec = 0; | 966 *ec = 0; |
| 974 // TODO(jorlow): This should be delete. | 967 idb_cursor->deleteFunction( |
| 975 idb_cursor->remove( | |
| 976 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id), *e
c); | 968 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id), *e
c); |
| 977 } | 969 } |
| 978 | 970 |
| 979 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( | 971 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( |
| 980 int32 object_id) { | 972 int32 object_id) { |
| 981 parent_->DestroyObject(&map_, object_id); | 973 parent_->DestroyObject(&map_, object_id); |
| 982 } | 974 } |
| 983 | 975 |
| 984 ////////////////////////////////////////////////////////////////////// | 976 ////////////////////////////////////////////////////////////////////// |
| 985 // IndexedDBDispatcherHost::TransactionDispatcherHost | 977 // IndexedDBDispatcherHost::TransactionDispatcherHost |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1072 } | 1064 } |
| 1073 idb_transaction->didCompleteTaskEvents(); | 1065 idb_transaction->didCompleteTaskEvents(); |
| 1074 } | 1066 } |
| 1075 | 1067 |
| 1076 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed( | 1068 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed( |
| 1077 int32 object_id) { | 1069 int32 object_id) { |
| 1078 transaction_size_map_.erase(object_id); | 1070 transaction_size_map_.erase(object_id); |
| 1079 transaction_url_map_.erase(object_id); | 1071 transaction_url_map_.erase(object_id); |
| 1080 parent_->DestroyObject(&map_, object_id); | 1072 parent_->DestroyObject(&map_, object_id); |
| 1081 } | 1073 } |
| OLD | NEW |