OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
169 // during this destructor. | 169 // during this destructor. |
170 DCHECK(state_ == kFinished || !GetExecutionContext()); | 170 DCHECK(state_ == kFinished || !GetExecutionContext()); |
171 DCHECK(request_list_.IsEmpty() || !GetExecutionContext()); | 171 DCHECK(request_list_.IsEmpty() || !GetExecutionContext()); |
172 } | 172 } |
173 | 173 |
174 DEFINE_TRACE(IDBTransaction) { | 174 DEFINE_TRACE(IDBTransaction) { |
175 visitor->Trace(database_); | 175 visitor->Trace(database_); |
176 visitor->Trace(open_db_request_); | 176 visitor->Trace(open_db_request_); |
177 visitor->Trace(error_); | 177 visitor->Trace(error_); |
178 visitor->Trace(request_list_); | 178 visitor->Trace(request_list_); |
179 visitor->Trace(result_queue_); | |
179 visitor->Trace(object_store_map_); | 180 visitor->Trace(object_store_map_); |
180 visitor->Trace(old_store_metadata_); | 181 visitor->Trace(old_store_metadata_); |
181 visitor->Trace(deleted_indexes_); | 182 visitor->Trace(deleted_indexes_); |
182 EventTargetWithInlineData::Trace(visitor); | 183 EventTargetWithInlineData::Trace(visitor); |
183 ContextLifecycleObserver::Trace(visitor); | 184 ContextLifecycleObserver::Trace(visitor); |
184 } | 185 } |
185 | 186 |
186 void IDBTransaction::SetError(DOMException* error) { | 187 void IDBTransaction::SetError(DOMException* error) { |
187 DCHECK_NE(state_, kFinished); | 188 DCHECK_NE(state_, kFinished); |
188 DCHECK(error); | 189 DCHECK(error); |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
370 if (BackendDB()) | 371 if (BackendDB()) |
371 BackendDB()->Abort(id_); | 372 BackendDB()->Abort(id_); |
372 } | 373 } |
373 | 374 |
374 void IDBTransaction::RegisterRequest(IDBRequest* request) { | 375 void IDBTransaction::RegisterRequest(IDBRequest* request) { |
375 DCHECK(request); | 376 DCHECK(request); |
376 DCHECK_EQ(state_, kActive); | 377 DCHECK_EQ(state_, kActive); |
377 request_list_.insert(request); | 378 request_list_.insert(request); |
378 } | 379 } |
379 | 380 |
380 void IDBTransaction::UnregisterRequest(IDBRequest* request) { | 381 void IDBTransaction::UnregisterRequest(IDBRequest* request) { |
jsbell
2017/05/05 00:29:37
Seems like we could have a DCHECK here that the re
pwnall
2017/05/11 23:54:24
Done.
| |
381 DCHECK(request); | 382 DCHECK(request); |
382 // If we aborted the request, it will already have been removed. | 383 // If we aborted the request, it will already have been removed. |
383 request_list_.erase(request); | 384 request_list_.erase(request); |
384 } | 385 } |
385 | 386 |
387 void IDBTransaction::EnqueueResult(IDBRequestQueueItem* result) { | |
388 DCHECK(result); | |
389 DCHECK(HasQueuedResult() || !result->IsReady()); | |
390 | |
391 result_queue_.push_back(result); | |
392 } | |
393 | |
394 void IDBTransaction::OnResultReady() { | |
395 while (!result_queue_.empty()) { | |
396 IDBRequestQueueItem* result = result_queue_.front(); | |
397 if (!result->IsReady()) | |
398 break; | |
399 | |
400 result->FireCallback(); | |
401 result_queue_.pop_front(); | |
402 } | |
403 } | |
404 | |
386 void IDBTransaction::OnAbort(DOMException* error) { | 405 void IDBTransaction::OnAbort(DOMException* error) { |
387 IDB_TRACE("IDBTransaction::onAbort"); | 406 IDB_TRACE("IDBTransaction::onAbort"); |
388 if (!GetExecutionContext()) { | 407 if (!GetExecutionContext()) { |
389 Finished(); | 408 Finished(); |
390 return; | 409 return; |
391 } | 410 } |
392 | 411 |
393 DCHECK_NE(state_, kFinished); | 412 DCHECK_NE(state_, kFinished); |
394 if (state_ != kFinishing) { | 413 if (state_ != kFinishing) { |
395 // Abort was not triggered by front-end. | 414 // Abort was not triggered by front-end. |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
614 IDBObjectStore* object_store = it.key; | 633 IDBObjectStore* object_store = it.key; |
615 object_store->ClearIndexCache(); | 634 object_store->ClearIndexCache(); |
616 } | 635 } |
617 old_store_metadata_.clear(); | 636 old_store_metadata_.clear(); |
618 | 637 |
619 deleted_indexes_.clear(); | 638 deleted_indexes_.clear(); |
620 deleted_object_stores_.clear(); | 639 deleted_object_stores_.clear(); |
621 } | 640 } |
622 | 641 |
623 } // namespace blink | 642 } // namespace blink |
OLD | NEW |