| 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/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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 | 142 |
| 143 int32 IndexedDBDispatcherHost::Add(WebIDBCursor* idb_cursor) { | 143 int32 IndexedDBDispatcherHost::Add(WebIDBCursor* idb_cursor) { |
| 144 if (!cursor_dispatcher_host_.get()) { | 144 if (!cursor_dispatcher_host_.get()) { |
| 145 delete idb_cursor; | 145 delete idb_cursor; |
| 146 return 0; | 146 return 0; |
| 147 } | 147 } |
| 148 return cursor_dispatcher_host_->map_.Add(idb_cursor); | 148 return cursor_dispatcher_host_->map_.Add(idb_cursor); |
| 149 } | 149 } |
| 150 | 150 |
| 151 int32 IndexedDBDispatcherHost::Add(WebIDBDatabase* idb_database, | 151 int32 IndexedDBDispatcherHost::Add(WebIDBDatabase* idb_database, |
| 152 int32 thread_id, |
| 152 const GURL& origin_url) { | 153 const GURL& origin_url) { |
| 153 if (!database_dispatcher_host_.get()) { | 154 if (!database_dispatcher_host_.get()) { |
| 154 delete idb_database; | 155 delete idb_database; |
| 155 return 0; | 156 return 0; |
| 156 } | 157 } |
| 157 int32 idb_database_id = database_dispatcher_host_->map_.Add(idb_database); | 158 int32 idb_database_id = database_dispatcher_host_->map_.Add(idb_database); |
| 158 Context()->ConnectionOpened(origin_url); | 159 Context()->ConnectionOpened(origin_url); |
| 159 database_dispatcher_host_->database_url_map_[idb_database_id] = origin_url; | 160 database_dispatcher_host_->database_url_map_[idb_database_id] = origin_url; |
| 160 return idb_database_id; | 161 return idb_database_id; |
| 161 } | 162 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 174 if (!object_store_dispatcher_host_.get()) { | 175 if (!object_store_dispatcher_host_.get()) { |
| 175 delete idb_object_store; | 176 delete idb_object_store; |
| 176 return 0; | 177 return 0; |
| 177 } | 178 } |
| 178 if (!idb_object_store) | 179 if (!idb_object_store) |
| 179 return 0; | 180 return 0; |
| 180 return object_store_dispatcher_host_->map_.Add(idb_object_store); | 181 return object_store_dispatcher_host_->map_.Add(idb_object_store); |
| 181 } | 182 } |
| 182 | 183 |
| 183 int32 IndexedDBDispatcherHost::Add(WebIDBTransaction* idb_transaction, | 184 int32 IndexedDBDispatcherHost::Add(WebIDBTransaction* idb_transaction, |
| 185 int32 thread_id, |
| 184 const GURL& url) { | 186 const GURL& url) { |
| 185 if (!transaction_dispatcher_host_.get()) { | 187 if (!transaction_dispatcher_host_.get()) { |
| 186 delete idb_transaction; | 188 delete idb_transaction; |
| 187 return 0; | 189 return 0; |
| 188 } | 190 } |
| 189 int32 id = transaction_dispatcher_host_->map_.Add(idb_transaction); | 191 int32 id = transaction_dispatcher_host_->map_.Add(idb_transaction); |
| 190 idb_transaction->setCallbacks(new IndexedDBTransactionCallbacks(this, id)); | 192 idb_transaction->setCallbacks( |
| 193 new IndexedDBTransactionCallbacks(this, thread_id, id)); |
| 191 transaction_dispatcher_host_->transaction_url_map_[id] = url; | 194 transaction_dispatcher_host_->transaction_url_map_[id] = url; |
| 192 return id; | 195 return id; |
| 193 } | 196 } |
| 194 | 197 |
| 195 WebIDBCursor* IndexedDBDispatcherHost::GetCursorFromId(int32 cursor_id) { | 198 WebIDBCursor* IndexedDBDispatcherHost::GetCursorFromId(int32 cursor_id) { |
| 196 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 199 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 197 return cursor_dispatcher_host_->map_.Lookup(cursor_id); | 200 return cursor_dispatcher_host_->map_.Lookup(cursor_id); |
| 198 } | 201 } |
| 199 | 202 |
| 200 void IndexedDBDispatcherHost::OnIDBFactoryGetDatabaseNames( | 203 void IndexedDBDispatcherHost::OnIDBFactoryGetDatabaseNames( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 211 // to add some toString method to WebSecurityOrigin that doesn't | 214 // to add some toString method to WebSecurityOrigin that doesn't |
| 212 // return null for them. Look at | 215 // return null for them. Look at |
| 213 // DatabaseUtil::GetOriginFromIdentifier. | 216 // DatabaseUtil::GetOriginFromIdentifier. |
| 214 WebSecurityOrigin origin( | 217 WebSecurityOrigin origin( |
| 215 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin)); | 218 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin)); |
| 216 GURL origin_url(origin.toString()); | 219 GURL origin_url(origin.toString()); |
| 217 | 220 |
| 218 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 221 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 219 | 222 |
| 220 Context()->GetIDBFactory()->getDatabaseNames( | 223 Context()->GetIDBFactory()->getDatabaseNames( |
| 221 new IndexedDBCallbacks<WebDOMStringList>(this, params.response_id), | 224 new IndexedDBCallbacks<WebDOMStringList>(this, params.thread_id, |
| 222 origin, NULL, webkit_glue::FilePathToWebString(indexed_db_path)); | 225 params.response_id), origin, NULL, |
| 226 webkit_glue::FilePathToWebString(indexed_db_path)); |
| 223 } | 227 } |
| 224 | 228 |
| 225 void IndexedDBDispatcherHost::OnIDBFactoryOpen( | 229 void IndexedDBDispatcherHost::OnIDBFactoryOpen( |
| 226 const IndexedDBHostMsg_FactoryOpen_Params& params) { | 230 const IndexedDBHostMsg_FactoryOpen_Params& params) { |
| 227 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 231 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 228 FilePath base_path = webkit_context_->data_path(); | 232 FilePath base_path = webkit_context_->data_path(); |
| 229 FilePath indexed_db_path; | 233 FilePath indexed_db_path; |
| 230 if (!base_path.empty()) { | 234 if (!base_path.empty()) { |
| 231 indexed_db_path = base_path.Append( | 235 indexed_db_path = base_path.Append( |
| 232 IndexedDBContext::kIndexedDBDirectory); | 236 IndexedDBContext::kIndexedDBDirectory); |
| 233 } | 237 } |
| 234 | 238 |
| 235 // TODO(jorlow): This doesn't support file:/// urls properly. We probably need | 239 // TODO(jorlow): This doesn't support file:/// urls properly. We probably need |
| 236 // to add some toString method to WebSecurityOrigin that doesn't | 240 // to add some toString method to WebSecurityOrigin that doesn't |
| 237 // return null for them. Look at | 241 // return null for them. Look at |
| 238 // DatabaseUtil::GetOriginFromIdentifier. | 242 // DatabaseUtil::GetOriginFromIdentifier. |
| 239 WebSecurityOrigin origin( | 243 WebSecurityOrigin origin( |
| 240 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin)); | 244 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin)); |
| 241 GURL origin_url(origin.toString()); | 245 GURL origin_url(origin.toString()); |
| 242 | 246 |
| 243 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 247 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 244 | 248 |
| 245 // TODO(dgrogan): Don't let a non-existing database be opened (and therefore | 249 // TODO(dgrogan): Don't let a non-existing database be opened (and therefore |
| 246 // created) if this origin is already over quota. | 250 // created) if this origin is already over quota. |
| 247 Context()->GetIDBFactory()->open( | 251 Context()->GetIDBFactory()->open( |
| 248 params.name, | 252 params.name, |
| 249 new IndexedDBCallbacks<WebIDBDatabase>(this, params.response_id, | 253 new IndexedDBCallbacks<WebIDBDatabase>(this, params.thread_id, |
| 250 origin_url), | 254 params.response_id, origin_url), |
| 251 origin, NULL, webkit_glue::FilePathToWebString(indexed_db_path)); | 255 origin, NULL, webkit_glue::FilePathToWebString(indexed_db_path)); |
| 252 } | 256 } |
| 253 | 257 |
| 254 void IndexedDBDispatcherHost::OnIDBFactoryDeleteDatabase( | 258 void IndexedDBDispatcherHost::OnIDBFactoryDeleteDatabase( |
| 255 const IndexedDBHostMsg_FactoryDeleteDatabase_Params& params) { | 259 const IndexedDBHostMsg_FactoryDeleteDatabase_Params& params) { |
| 256 FilePath base_path = webkit_context_->data_path(); | 260 FilePath base_path = webkit_context_->data_path(); |
| 257 FilePath indexed_db_path; | 261 FilePath indexed_db_path; |
| 258 if (!base_path.empty()) { | 262 if (!base_path.empty()) { |
| 259 indexed_db_path = base_path.Append( | 263 indexed_db_path = base_path.Append( |
| 260 IndexedDBContext::kIndexedDBDirectory); | 264 IndexedDBContext::kIndexedDBDirectory); |
| 261 } | 265 } |
| 262 | 266 |
| 263 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 267 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 264 Context()->GetIDBFactory()->deleteDatabase( | 268 Context()->GetIDBFactory()->deleteDatabase( |
| 265 params.name, | 269 params.name, |
| 266 new IndexedDBCallbacks<WebSerializedScriptValue>(this, | 270 new IndexedDBCallbacks<WebSerializedScriptValue>(this, |
| 271 params.thread_id, |
| 267 params.response_id), | 272 params.response_id), |
| 268 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin), NULL, | 273 WebSecurityOrigin::createFromDatabaseIdentifier(params.origin), NULL, |
| 269 webkit_glue::FilePathToWebString(indexed_db_path)); | 274 webkit_glue::FilePathToWebString(indexed_db_path)); |
| 270 } | 275 } |
| 271 | 276 |
| 272 void IndexedDBDispatcherHost::TransactionComplete(int32 transaction_id) { | 277 void IndexedDBDispatcherHost::TransactionComplete(int32 transaction_id) { |
| 273 Context()->TransactionComplete( | 278 Context()->TransactionComplete( |
| 274 transaction_dispatcher_host_->transaction_url_map_[transaction_id]); | 279 transaction_dispatcher_host_->transaction_url_map_[transaction_id]); |
| 275 } | 280 } |
| 276 | 281 |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 &parent_->transaction_dispatcher_host_->map_, transaction_id); | 417 &parent_->transaction_dispatcher_host_->map_, transaction_id); |
| 413 if (!idb_database || !idb_transaction) | 418 if (!idb_database || !idb_transaction) |
| 414 return; | 419 return; |
| 415 | 420 |
| 416 *ec = 0; | 421 *ec = 0; |
| 417 idb_database->deleteObjectStore(name, *idb_transaction, *ec); | 422 idb_database->deleteObjectStore(name, *idb_transaction, *ec); |
| 418 } | 423 } |
| 419 | 424 |
| 420 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnSetVersion( | 425 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnSetVersion( |
| 421 int32 idb_database_id, | 426 int32 idb_database_id, |
| 427 int32 thread_id, |
| 422 int32 response_id, | 428 int32 response_id, |
| 423 const string16& version, | 429 const string16& version, |
| 424 WebKit::WebExceptionCode* ec) { | 430 WebKit::WebExceptionCode* ec) { |
| 425 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 431 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 426 WebIDBDatabase* idb_database = parent_->GetOrTerminateProcess( | 432 WebIDBDatabase* idb_database = parent_->GetOrTerminateProcess( |
| 427 &map_, idb_database_id); | 433 &map_, idb_database_id); |
| 428 if (!idb_database) | 434 if (!idb_database) |
| 429 return; | 435 return; |
| 430 | 436 |
| 431 *ec = 0; | 437 *ec = 0; |
| 432 idb_database->setVersion( | 438 idb_database->setVersion( |
| 433 version, | 439 version, |
| 434 new IndexedDBCallbacks<WebIDBTransaction>(parent_, response_id, | 440 new IndexedDBCallbacks<WebIDBTransaction>(parent_, thread_id, response_id, |
| 435 database_url_map_[idb_database_id]), | 441 database_url_map_[idb_database_id]), |
| 436 *ec); | 442 *ec); |
| 437 } | 443 } |
| 438 | 444 |
| 439 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnTransaction( | 445 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnTransaction( |
| 446 int32 thread_id, |
| 440 int32 idb_database_id, | 447 int32 idb_database_id, |
| 441 const std::vector<string16>& names, | 448 const std::vector<string16>& names, |
| 442 int32 mode, | 449 int32 mode, |
| 443 int32* idb_transaction_id, | 450 int32* idb_transaction_id, |
| 444 WebKit::WebExceptionCode* ec) { | 451 WebKit::WebExceptionCode* ec) { |
| 445 WebIDBDatabase* database = parent_->GetOrTerminateProcess( | 452 WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| 446 &map_, idb_database_id); | 453 &map_, idb_database_id); |
| 447 if (!database) | 454 if (!database) |
| 448 return; | 455 return; |
| 449 | 456 |
| 450 WebDOMStringList object_stores; | 457 WebDOMStringList object_stores; |
| 451 for (std::vector<string16>::const_iterator it = names.begin(); | 458 for (std::vector<string16>::const_iterator it = names.begin(); |
| 452 it != names.end(); ++it) { | 459 it != names.end(); ++it) { |
| 453 object_stores.append(*it); | 460 object_stores.append(*it); |
| 454 } | 461 } |
| 455 | 462 |
| 456 *ec = 0; | 463 *ec = 0; |
| 457 WebIDBTransaction* transaction = database->transaction( | 464 WebIDBTransaction* transaction = database->transaction( |
| 458 object_stores, mode, *ec); | 465 object_stores, mode, *ec); |
| 459 DCHECK(!transaction != !*ec); | 466 DCHECK(!transaction != !*ec); |
| 460 *idb_transaction_id = | 467 *idb_transaction_id = |
| 461 *ec ? 0 : parent_->Add(transaction, database_url_map_[idb_database_id]); | 468 *ec ? 0 : parent_->Add(transaction, thread_id, |
| 469 database_url_map_[idb_database_id]); |
| 462 } | 470 } |
| 463 | 471 |
| 464 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnOpen( | 472 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnOpen( |
| 465 int32 idb_database_id, int32 response_id) { | 473 int32 idb_database_id, int32 thread_id, int32 response_id) { |
| 466 WebIDBDatabase* database = parent_->GetOrTerminateProcess( | 474 WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| 467 &map_, idb_database_id); | 475 &map_, idb_database_id); |
| 468 if (!database) | 476 if (!database) |
| 469 return; | 477 return; |
| 470 database->open(new IndexedDBDatabaseCallbacks(parent_, response_id)); | 478 database->open(new IndexedDBDatabaseCallbacks(parent_, thread_id, |
| 479 response_id)); |
| 471 } | 480 } |
| 472 | 481 |
| 473 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnClose( | 482 void IndexedDBDispatcherHost::DatabaseDispatcherHost::OnClose( |
| 474 int32 idb_database_id) { | 483 int32 idb_database_id) { |
| 475 WebIDBDatabase* database = parent_->GetOrTerminateProcess( | 484 WebIDBDatabase* database = parent_->GetOrTerminateProcess( |
| 476 &map_, idb_database_id); | 485 &map_, idb_database_id); |
| 477 if (!database) | 486 if (!database) |
| 478 return; | 487 return; |
| 479 database->close(); | 488 database->close(); |
| 480 } | 489 } |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 562 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 554 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( | 563 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( |
| 555 &map_, params.idb_index_id); | 564 &map_, params.idb_index_id); |
| 556 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 565 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 557 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); | 566 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); |
| 558 if (!idb_transaction || !idb_index) | 567 if (!idb_transaction || !idb_index) |
| 559 return; | 568 return; |
| 560 | 569 |
| 561 *ec = 0; | 570 *ec = 0; |
| 562 scoped_ptr<WebIDBCallbacks> callbacks( | 571 scoped_ptr<WebIDBCallbacks> callbacks( |
| 563 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1)); | 572 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.thread_id, |
| 573 params.response_id, -1)); |
| 564 idb_index->openObjectCursor( | 574 idb_index->openObjectCursor( |
| 565 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, | 575 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, |
| 566 params.upper_open), | 576 params.upper_open), |
| 567 params.direction, callbacks.release(), *idb_transaction, *ec); | 577 params.direction, callbacks.release(), *idb_transaction, *ec); |
| 568 } | 578 } |
| 569 | 579 |
| 570 void IndexedDBDispatcherHost::IndexDispatcherHost::OnOpenKeyCursor( | 580 void IndexedDBDispatcherHost::IndexDispatcherHost::OnOpenKeyCursor( |
| 571 const IndexedDBHostMsg_IndexOpenCursor_Params& params, | 581 const IndexedDBHostMsg_IndexOpenCursor_Params& params, |
| 572 WebKit::WebExceptionCode* ec) { | 582 WebKit::WebExceptionCode* ec) { |
| 573 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 583 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 574 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( | 584 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( |
| 575 &map_, params.idb_index_id); | 585 &map_, params.idb_index_id); |
| 576 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 586 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 577 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); | 587 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); |
| 578 if (!idb_transaction || !idb_index) | 588 if (!idb_transaction || !idb_index) |
| 579 return; | 589 return; |
| 580 | 590 |
| 581 *ec = 0; | 591 *ec = 0; |
| 582 scoped_ptr<WebIDBCallbacks> callbacks( | 592 scoped_ptr<WebIDBCallbacks> callbacks( |
| 583 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1)); | 593 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.thread_id, |
| 594 params.response_id, -1)); |
| 584 idb_index->openKeyCursor( | 595 idb_index->openKeyCursor( |
| 585 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, | 596 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, |
| 586 params.upper_open), | 597 params.upper_open), |
| 587 params.direction, callbacks.release(), *idb_transaction, *ec); | 598 params.direction, callbacks.release(), *idb_transaction, *ec); |
| 588 } | 599 } |
| 589 | 600 |
| 590 void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetObject( | 601 void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetObject( |
| 591 int idb_index_id, | 602 int idb_index_id, |
| 603 int32 thread_id, |
| 592 int32 response_id, | 604 int32 response_id, |
| 593 const IndexedDBKey& key, | 605 const IndexedDBKey& key, |
| 594 int32 transaction_id, | 606 int32 transaction_id, |
| 595 WebKit::WebExceptionCode* ec) { | 607 WebKit::WebExceptionCode* ec) { |
| 596 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 608 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 597 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( | 609 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( |
| 598 &map_, idb_index_id); | 610 &map_, idb_index_id); |
| 599 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 611 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 600 &parent_->transaction_dispatcher_host_->map_, transaction_id); | 612 &parent_->transaction_dispatcher_host_->map_, transaction_id); |
| 601 if (!idb_transaction || !idb_index) | 613 if (!idb_transaction || !idb_index) |
| 602 return; | 614 return; |
| 603 | 615 |
| 604 *ec = 0; | 616 *ec = 0; |
| 605 scoped_ptr<WebIDBCallbacks> callbacks( | 617 scoped_ptr<WebIDBCallbacks> callbacks( |
| 606 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id)); | 618 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
| 619 response_id)); |
| 607 idb_index->getObject(key, callbacks.release(), *idb_transaction, *ec); | 620 idb_index->getObject(key, callbacks.release(), *idb_transaction, *ec); |
| 608 } | 621 } |
| 609 | 622 |
| 610 void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetKey( | 623 void IndexedDBDispatcherHost::IndexDispatcherHost::OnGetKey( |
| 611 int idb_index_id, | 624 int idb_index_id, |
| 625 int32 thread_id, |
| 612 int32 response_id, | 626 int32 response_id, |
| 613 const IndexedDBKey& key, | 627 const IndexedDBKey& key, |
| 614 int32 transaction_id, | 628 int32 transaction_id, |
| 615 WebKit::WebExceptionCode* ec) { | 629 WebKit::WebExceptionCode* ec) { |
| 616 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 630 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 617 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( | 631 WebIDBIndex* idb_index = parent_->GetOrTerminateProcess( |
| 618 &map_, idb_index_id); | 632 &map_, idb_index_id); |
| 619 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 633 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 620 &parent_->transaction_dispatcher_host_->map_, transaction_id); | 634 &parent_->transaction_dispatcher_host_->map_, transaction_id); |
| 621 if (!idb_transaction || !idb_index) | 635 if (!idb_transaction || !idb_index) |
| 622 return; | 636 return; |
| 623 | 637 |
| 624 *ec = 0; | 638 *ec = 0; |
| 625 scoped_ptr<WebIDBCallbacks> callbacks( | 639 scoped_ptr<WebIDBCallbacks> callbacks( |
| 626 new IndexedDBCallbacks<WebIDBKey>(parent_, response_id)); | 640 new IndexedDBCallbacks<WebIDBKey>(parent_, thread_id, response_id)); |
| 627 idb_index->getKey(key, callbacks.release(), *idb_transaction, *ec); | 641 idb_index->getKey(key, callbacks.release(), *idb_transaction, *ec); |
| 628 } | 642 } |
| 629 | 643 |
| 630 void IndexedDBDispatcherHost::IndexDispatcherHost::OnDestroyed( | 644 void IndexedDBDispatcherHost::IndexDispatcherHost::OnDestroyed( |
| 631 int32 object_id) { | 645 int32 object_id) { |
| 632 parent_->DestroyObject(&map_, object_id); | 646 parent_->DestroyObject(&map_, object_id); |
| 633 } | 647 } |
| 634 | 648 |
| 635 ////////////////////////////////////////////////////////////////////// | 649 ////////////////////////////////////////////////////////////////////// |
| 636 // IndexedDBDispatcherHost::ObjectStoreDispatcherHost | 650 // IndexedDBDispatcherHost::ObjectStoreDispatcherHost |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 return; | 707 return; |
| 694 | 708 |
| 695 WebDOMStringList web_index_names = idb_object_store->indexNames(); | 709 WebDOMStringList web_index_names = idb_object_store->indexNames(); |
| 696 index_names->reserve(web_index_names.length()); | 710 index_names->reserve(web_index_names.length()); |
| 697 for (unsigned i = 0; i < web_index_names.length(); ++i) | 711 for (unsigned i = 0; i < web_index_names.length(); ++i) |
| 698 index_names->push_back(web_index_names.item(i)); | 712 index_names->push_back(web_index_names.item(i)); |
| 699 } | 713 } |
| 700 | 714 |
| 701 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnGet( | 715 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnGet( |
| 702 int idb_object_store_id, | 716 int idb_object_store_id, |
| 717 int32 thread_id, |
| 703 int32 response_id, | 718 int32 response_id, |
| 704 const IndexedDBKey& key, | 719 const IndexedDBKey& key, |
| 705 int32 transaction_id, | 720 int32 transaction_id, |
| 706 WebKit::WebExceptionCode* ec) { | 721 WebKit::WebExceptionCode* ec) { |
| 707 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 722 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 708 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( | 723 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
| 709 &map_, idb_object_store_id); | 724 &map_, idb_object_store_id); |
| 710 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 725 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 711 &parent_->transaction_dispatcher_host_->map_, transaction_id); | 726 &parent_->transaction_dispatcher_host_->map_, transaction_id); |
| 712 if (!idb_transaction || !idb_object_store) | 727 if (!idb_transaction || !idb_object_store) |
| 713 return; | 728 return; |
| 714 | 729 |
| 715 *ec = 0; | 730 *ec = 0; |
| 716 scoped_ptr<WebIDBCallbacks> callbacks( | 731 scoped_ptr<WebIDBCallbacks> callbacks( |
| 717 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id)); | 732 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
| 733 response_id)); |
| 718 idb_object_store->get(key, callbacks.release(), *idb_transaction, *ec); | 734 idb_object_store->get(key, callbacks.release(), *idb_transaction, *ec); |
| 719 } | 735 } |
| 720 | 736 |
| 721 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnPut( | 737 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnPut( |
| 722 const IndexedDBHostMsg_ObjectStorePut_Params& params, | 738 const IndexedDBHostMsg_ObjectStorePut_Params& params, |
| 723 WebKit::WebExceptionCode* ec) { | 739 WebKit::WebExceptionCode* ec) { |
| 724 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 740 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 725 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( | 741 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
| 726 &map_, params.idb_object_store_id); | 742 &map_, params.idb_object_store_id); |
| 727 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 743 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 728 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); | 744 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); |
| 729 if (!idb_transaction || !idb_object_store) | 745 if (!idb_transaction || !idb_object_store) |
| 730 return; | 746 return; |
| 731 | 747 |
| 732 *ec = 0; | 748 *ec = 0; |
| 733 scoped_ptr<WebIDBCallbacks> callbacks( | 749 scoped_ptr<WebIDBCallbacks> callbacks( |
| 734 new IndexedDBCallbacks<WebIDBKey>(parent_, params.response_id)); | 750 new IndexedDBCallbacks<WebIDBKey>(parent_, params.thread_id, |
| 751 params.response_id)); |
| 735 idb_object_store->put(params.serialized_value, params.key, params.put_mode, | 752 idb_object_store->put(params.serialized_value, params.key, params.put_mode, |
| 736 callbacks.release(), *idb_transaction, *ec); | 753 callbacks.release(), *idb_transaction, *ec); |
| 737 if (*ec) | 754 if (*ec) |
| 738 return; | 755 return; |
| 739 int64 size = UTF16ToUTF8(params.serialized_value.data()).size(); | 756 int64 size = UTF16ToUTF8(params.serialized_value.data()).size(); |
| 740 WebIDBTransactionIDToSizeMap* map = | 757 WebIDBTransactionIDToSizeMap* map = |
| 741 &parent_->transaction_dispatcher_host_->transaction_size_map_; | 758 &parent_->transaction_dispatcher_host_->transaction_size_map_; |
| 742 (*map)[params.transaction_id] += size; | 759 (*map)[params.transaction_id] += size; |
| 743 } | 760 } |
| 744 | 761 |
| 745 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDelete( | 762 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDelete( |
| 746 int idb_object_store_id, | 763 int idb_object_store_id, |
| 764 int32 thread_id, |
| 747 int32 response_id, | 765 int32 response_id, |
| 748 const IndexedDBKey& key, | 766 const IndexedDBKey& key, |
| 749 int32 transaction_id, | 767 int32 transaction_id, |
| 750 WebKit::WebExceptionCode* ec) { | 768 WebKit::WebExceptionCode* ec) { |
| 751 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 769 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 752 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( | 770 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
| 753 &map_, idb_object_store_id); | 771 &map_, idb_object_store_id); |
| 754 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 772 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 755 &parent_->transaction_dispatcher_host_->map_, transaction_id); | 773 &parent_->transaction_dispatcher_host_->map_, transaction_id); |
| 756 if (!idb_transaction || !idb_object_store) | 774 if (!idb_transaction || !idb_object_store) |
| 757 return; | 775 return; |
| 758 | 776 |
| 759 *ec = 0; | 777 *ec = 0; |
| 760 scoped_ptr<WebIDBCallbacks> callbacks( | 778 scoped_ptr<WebIDBCallbacks> callbacks( |
| 761 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id)); | 779 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
| 780 response_id)); |
| 762 idb_object_store->deleteFunction( | 781 idb_object_store->deleteFunction( |
| 763 key, callbacks.release(), *idb_transaction, *ec); | 782 key, callbacks.release(), *idb_transaction, *ec); |
| 764 } | 783 } |
| 765 | 784 |
| 766 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnClear( | 785 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnClear( |
| 767 int idb_object_store_id, | 786 int idb_object_store_id, |
| 787 int32 thread_id, |
| 768 int32 response_id, | 788 int32 response_id, |
| 769 int32 transaction_id, | 789 int32 transaction_id, |
| 770 WebKit::WebExceptionCode* ec) { | 790 WebKit::WebExceptionCode* ec) { |
| 771 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 791 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 772 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( | 792 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
| 773 &map_, idb_object_store_id); | 793 &map_, idb_object_store_id); |
| 774 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 794 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 775 &parent_->transaction_dispatcher_host_->map_, transaction_id); | 795 &parent_->transaction_dispatcher_host_->map_, transaction_id); |
| 776 if (!idb_transaction || !idb_object_store) | 796 if (!idb_transaction || !idb_object_store) |
| 777 return; | 797 return; |
| 778 | 798 |
| 779 *ec = 0; | 799 *ec = 0; |
| 780 scoped_ptr<WebIDBCallbacks> callbacks( | 800 scoped_ptr<WebIDBCallbacks> callbacks( |
| 781 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id)); | 801 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
| 802 response_id)); |
| 782 idb_object_store->clear(callbacks.release(), *idb_transaction, *ec); | 803 idb_object_store->clear(callbacks.release(), *idb_transaction, *ec); |
| 783 } | 804 } |
| 784 | 805 |
| 785 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnCreateIndex( | 806 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnCreateIndex( |
| 786 const IndexedDBHostMsg_ObjectStoreCreateIndex_Params& params, | 807 const IndexedDBHostMsg_ObjectStoreCreateIndex_Params& params, |
| 787 int32* index_id, WebKit::WebExceptionCode* ec) { | 808 int32* index_id, WebKit::WebExceptionCode* ec) { |
| 788 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 809 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 789 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( | 810 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
| 790 &map_, params.idb_object_store_id); | 811 &map_, params.idb_object_store_id); |
| 791 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 812 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( | 866 WebIDBObjectStore* idb_object_store = parent_->GetOrTerminateProcess( |
| 846 &parent_->object_store_dispatcher_host_->map_, | 867 &parent_->object_store_dispatcher_host_->map_, |
| 847 params.idb_object_store_id); | 868 params.idb_object_store_id); |
| 848 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( | 869 WebIDBTransaction* idb_transaction = parent_->GetOrTerminateProcess( |
| 849 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); | 870 &parent_->transaction_dispatcher_host_->map_, params.transaction_id); |
| 850 if (!idb_transaction || !idb_object_store) | 871 if (!idb_transaction || !idb_object_store) |
| 851 return; | 872 return; |
| 852 | 873 |
| 853 *ec = 0; | 874 *ec = 0; |
| 854 scoped_ptr<WebIDBCallbacks> callbacks( | 875 scoped_ptr<WebIDBCallbacks> callbacks( |
| 855 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.response_id, -1)); | 876 new IndexedDBCallbacks<WebIDBCursor>(parent_, params.thread_id, |
| 877 params.response_id, -1)); |
| 856 idb_object_store->openCursor( | 878 idb_object_store->openCursor( |
| 857 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, | 879 WebIDBKeyRange(params.lower_key, params.upper_key, params.lower_open, |
| 858 params.upper_open), | 880 params.upper_open), |
| 859 params.direction, callbacks.release(), *idb_transaction, *ec); | 881 params.direction, callbacks.release(), *idb_transaction, *ec); |
| 860 } | 882 } |
| 861 | 883 |
| 862 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDestroyed( | 884 void IndexedDBDispatcherHost::ObjectStoreDispatcherHost::OnDestroyed( |
| 863 int32 object_id) { | 885 int32 object_id) { |
| 864 parent_->DestroyObject(&map_, object_id); | 886 parent_->DestroyObject(&map_, object_id); |
| 865 } | 887 } |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 932 content::SerializedScriptValue* script_value) { | 954 content::SerializedScriptValue* script_value) { |
| 933 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, object_id); | 955 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, object_id); |
| 934 if (!idb_cursor) | 956 if (!idb_cursor) |
| 935 return; | 957 return; |
| 936 | 958 |
| 937 *script_value = content::SerializedScriptValue(idb_cursor->value()); | 959 *script_value = content::SerializedScriptValue(idb_cursor->value()); |
| 938 } | 960 } |
| 939 | 961 |
| 940 void IndexedDBDispatcherHost::CursorDispatcherHost::OnUpdate( | 962 void IndexedDBDispatcherHost::CursorDispatcherHost::OnUpdate( |
| 941 int32 cursor_id, | 963 int32 cursor_id, |
| 964 int32 thread_id, |
| 942 int32 response_id, | 965 int32 response_id, |
| 943 const content::SerializedScriptValue& value, | 966 const content::SerializedScriptValue& value, |
| 944 WebKit::WebExceptionCode* ec) { | 967 WebKit::WebExceptionCode* ec) { |
| 945 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 968 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 946 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 969 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 947 if (!idb_cursor) | 970 if (!idb_cursor) |
| 948 return; | 971 return; |
| 949 | 972 |
| 950 *ec = 0; | 973 *ec = 0; |
| 951 idb_cursor->update( | 974 idb_cursor->update( |
| 952 value, new IndexedDBCallbacks<WebIDBKey>(parent_, response_id), *ec); | 975 value, new IndexedDBCallbacks<WebIDBKey>(parent_, thread_id, response_id), |
| 976 *ec); |
| 953 } | 977 } |
| 954 | 978 |
| 955 void IndexedDBDispatcherHost::CursorDispatcherHost::OnContinue( | 979 void IndexedDBDispatcherHost::CursorDispatcherHost::OnContinue( |
| 956 int32 cursor_id, | 980 int32 cursor_id, |
| 981 int32 thread_id, |
| 957 int32 response_id, | 982 int32 response_id, |
| 958 const IndexedDBKey& key, | 983 const IndexedDBKey& key, |
| 959 WebKit::WebExceptionCode* ec) { | 984 WebKit::WebExceptionCode* ec) { |
| 960 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 985 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 961 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 986 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 962 if (!idb_cursor) | 987 if (!idb_cursor) |
| 963 return; | 988 return; |
| 964 | 989 |
| 965 *ec = 0; | 990 *ec = 0; |
| 966 idb_cursor->continueFunction( | 991 idb_cursor->continueFunction( |
| 967 key, new IndexedDBCallbacks<WebIDBCursor>(parent_, response_id, | 992 key, new IndexedDBCallbacks<WebIDBCursor>(parent_, thread_id, response_id, |
| 968 cursor_id), *ec); | 993 cursor_id), *ec); |
| 969 } | 994 } |
| 970 | 995 |
| 971 void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetch( | 996 void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetch( |
| 972 int32 cursor_id, | 997 int32 cursor_id, |
| 998 int32 thread_id, |
| 973 int32 response_id, | 999 int32 response_id, |
| 974 int n, | 1000 int n, |
| 975 WebKit::WebExceptionCode* ec) { | 1001 WebKit::WebExceptionCode* ec) { |
| 976 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 1002 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 977 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 1003 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 978 if (!idb_cursor) | 1004 if (!idb_cursor) |
| 979 return; | 1005 return; |
| 980 | 1006 |
| 981 *ec = 0; | 1007 *ec = 0; |
| 982 idb_cursor->prefetchContinue( | 1008 idb_cursor->prefetchContinue( |
| 983 n, new IndexedDBCallbacks<WebIDBCursor>(parent_, response_id, | 1009 n, new IndexedDBCallbacks<WebIDBCursor>(parent_, thread_id, response_id, |
| 984 cursor_id), *ec); | 1010 cursor_id), *ec); |
| 985 } | 1011 } |
| 986 | 1012 |
| 987 void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetchReset( | 1013 void IndexedDBDispatcherHost::CursorDispatcherHost::OnPrefetchReset( |
| 988 int32 cursor_id, int used_prefetches, int unused_prefetches) { | 1014 int32 cursor_id, int used_prefetches, int unused_prefetches) { |
| 989 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 1015 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 990 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 1016 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 991 if (!idb_cursor) | 1017 if (!idb_cursor) |
| 992 return; | 1018 return; |
| 993 | 1019 |
| 994 idb_cursor->prefetchReset(used_prefetches, unused_prefetches); | 1020 idb_cursor->prefetchReset(used_prefetches, unused_prefetches); |
| 995 } | 1021 } |
| 996 | 1022 |
| 997 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDelete( | 1023 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDelete( |
| 998 int32 cursor_id, | 1024 int32 cursor_id, |
| 1025 int32 thread_id, |
| 999 int32 response_id, | 1026 int32 response_id, |
| 1000 WebKit::WebExceptionCode* ec) { | 1027 WebKit::WebExceptionCode* ec) { |
| 1001 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); | 1028 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); |
| 1002 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); | 1029 WebIDBCursor* idb_cursor = parent_->GetOrTerminateProcess(&map_, cursor_id); |
| 1003 if (!idb_cursor) | 1030 if (!idb_cursor) |
| 1004 return; | 1031 return; |
| 1005 | 1032 |
| 1006 *ec = 0; | 1033 *ec = 0; |
| 1007 idb_cursor->deleteFunction( | 1034 idb_cursor->deleteFunction( |
| 1008 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, response_id), *e
c); | 1035 new IndexedDBCallbacks<WebSerializedScriptValue>(parent_, thread_id, |
| 1036 response_id), *ec); |
| 1009 } | 1037 } |
| 1010 | 1038 |
| 1011 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( | 1039 void IndexedDBDispatcherHost::CursorDispatcherHost::OnDestroyed( |
| 1012 int32 object_id) { | 1040 int32 object_id) { |
| 1013 parent_->DestroyObject(&map_, object_id); | 1041 parent_->DestroyObject(&map_, object_id); |
| 1014 } | 1042 } |
| 1015 | 1043 |
| 1016 ////////////////////////////////////////////////////////////////////// | 1044 ////////////////////////////////////////////////////////////////////// |
| 1017 // IndexedDBDispatcherHost::TransactionDispatcherHost | 1045 // IndexedDBDispatcherHost::TransactionDispatcherHost |
| 1018 // | 1046 // |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1104 } | 1132 } |
| 1105 idb_transaction->didCompleteTaskEvents(); | 1133 idb_transaction->didCompleteTaskEvents(); |
| 1106 } | 1134 } |
| 1107 | 1135 |
| 1108 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed( | 1136 void IndexedDBDispatcherHost::TransactionDispatcherHost::OnDestroyed( |
| 1109 int32 object_id) { | 1137 int32 object_id) { |
| 1110 transaction_size_map_.erase(object_id); | 1138 transaction_size_map_.erase(object_id); |
| 1111 transaction_url_map_.erase(object_id); | 1139 transaction_url_map_.erase(object_id); |
| 1112 parent_->DestroyObject(&map_, object_id); | 1140 parent_->DestroyObject(&map_, object_id); |
| 1113 } | 1141 } |
| OLD | NEW |