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 81 matching lines...) Loading... |
92 return nullptr; | 92 return nullptr; |
93 } | 93 } |
94 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 94 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
95 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 95 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
96 return nullptr; | 96 return nullptr; |
97 } | 97 } |
98 if (!m_transaction->isActive()) { | 98 if (!m_transaction->isActive()) { |
99 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 99 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
100 return nullptr; | 100 return nullptr; |
101 } | 101 } |
102 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), key, exceptionState); | 102 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), key, exceptionState); |
103 if (exceptionState.hadException()) | 103 if (exceptionState.hadException()) |
104 return nullptr; | 104 return nullptr; |
105 if (!keyRange) { | 105 if (!keyRange) { |
106 exceptionState.throwDOMException(DataError, IDBDatabase::noKeyOrKeyRange
ErrorMessage); | 106 exceptionState.throwDOMException(DataError, IDBDatabase::noKeyOrKeyRange
ErrorMessage); |
107 return nullptr; | 107 return nullptr; |
108 } | 108 } |
109 if (!backendDB()) { | 109 if (!backendDB()) { |
110 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 110 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
111 return nullptr; | 111 return nullptr; |
112 } | 112 } |
(...skipping 19 matching lines...) Loading... |
132 return nullptr; | 132 return nullptr; |
133 } | 133 } |
134 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 134 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
135 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 135 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
136 return nullptr; | 136 return nullptr; |
137 } | 137 } |
138 if (!m_transaction->isActive()) { | 138 if (!m_transaction->isActive()) { |
139 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 139 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
140 return nullptr; | 140 return nullptr; |
141 } | 141 } |
142 IDBKeyRange* range = IDBKeyRange::fromScriptValue(scriptState->executionCont
ext(), keyRange, exceptionState); | 142 IDBKeyRange* range = IDBKeyRange::fromScriptValue(scriptState->getExecutionC
ontext(), keyRange, exceptionState); |
143 if (exceptionState.hadException()) | 143 if (exceptionState.hadException()) |
144 return nullptr; | 144 return nullptr; |
145 if (!backendDB()) { | 145 if (!backendDB()) { |
146 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 146 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
147 return nullptr; | 147 return nullptr; |
148 } | 148 } |
149 | 149 |
150 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 150 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
151 backendDB()->getAll(m_transaction->id(), id(), IDBIndexMetadata::InvalidId,
range, maxCount, false, WebIDBCallbacksImpl::create(request).leakPtr()); | 151 backendDB()->getAll(m_transaction->id(), id(), IDBIndexMetadata::InvalidId,
range, maxCount, false, WebIDBCallbacksImpl::create(request).leakPtr()); |
152 return request; | 152 return request; |
(...skipping 15 matching lines...) Loading... |
168 return nullptr; | 168 return nullptr; |
169 } | 169 } |
170 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 170 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
171 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 171 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
172 return nullptr; | 172 return nullptr; |
173 } | 173 } |
174 if (!m_transaction->isActive()) { | 174 if (!m_transaction->isActive()) { |
175 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 175 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
176 return nullptr; | 176 return nullptr; |
177 } | 177 } |
178 IDBKeyRange* range = IDBKeyRange::fromScriptValue(scriptState->executionCont
ext(), keyRange, exceptionState); | 178 IDBKeyRange* range = IDBKeyRange::fromScriptValue(scriptState->getExecutionC
ontext(), keyRange, exceptionState); |
179 if (exceptionState.hadException()) | 179 if (exceptionState.hadException()) |
180 return nullptr; | 180 return nullptr; |
181 if (!backendDB()) { | 181 if (!backendDB()) { |
182 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 182 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
183 return nullptr; | 183 return nullptr; |
184 } | 184 } |
185 | 185 |
186 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 186 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
187 backendDB()->getAll(m_transaction->id(), id(), IDBIndexMetadata::InvalidId,
range, maxCount, true, WebIDBCallbacksImpl::create(request).leakPtr()); | 187 backendDB()->getAll(m_transaction->id(), id(), IDBIndexMetadata::InvalidId,
range, maxCount, true, WebIDBCallbacksImpl::create(request).leakPtr()); |
188 return request; | 188 return request; |
(...skipping 165 matching lines...) Loading... |
354 } | 354 } |
355 if (!m_transaction->isActive()) { | 355 if (!m_transaction->isActive()) { |
356 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 356 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
357 return nullptr; | 357 return nullptr; |
358 } | 358 } |
359 if (m_transaction->isReadOnly()) { | 359 if (m_transaction->isReadOnly()) { |
360 exceptionState.throwDOMException(ReadOnlyError, IDBDatabase::transaction
ReadOnlyErrorMessage); | 360 exceptionState.throwDOMException(ReadOnlyError, IDBDatabase::transaction
ReadOnlyErrorMessage); |
361 return nullptr; | 361 return nullptr; |
362 } | 362 } |
363 | 363 |
364 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), key, exceptionState); | 364 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), key, exceptionState); |
365 if (exceptionState.hadException()) | 365 if (exceptionState.hadException()) |
366 return nullptr; | 366 return nullptr; |
367 if (!keyRange) { | 367 if (!keyRange) { |
368 exceptionState.throwDOMException(DataError, IDBDatabase::noKeyOrKeyRange
ErrorMessage); | 368 exceptionState.throwDOMException(DataError, IDBDatabase::noKeyOrKeyRange
ErrorMessage); |
369 return nullptr; | 369 return nullptr; |
370 } | 370 } |
371 if (!backendDB()) { | 371 if (!backendDB()) { |
372 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 372 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
373 return nullptr; | 373 return nullptr; |
374 } | 374 } |
(...skipping 62 matching lines...) Loading... |
437 , m_scriptState(scriptState) | 437 , m_scriptState(scriptState) |
438 , m_database(database) | 438 , m_database(database) |
439 , m_transactionId(transactionId) | 439 , m_transactionId(transactionId) |
440 , m_objectStoreId(objectStoreId) | 440 , m_objectStoreId(objectStoreId) |
441 , m_indexMetadata(indexMetadata) | 441 , m_indexMetadata(indexMetadata) |
442 { | 442 { |
443 } | 443 } |
444 | 444 |
445 void handleEvent(ExecutionContext* executionContext, Event* event) override | 445 void handleEvent(ExecutionContext* executionContext, Event* event) override |
446 { | 446 { |
447 ASSERT(m_scriptState->executionContext() == executionContext); | 447 ASSERT(m_scriptState->getExecutionContext() == executionContext); |
448 ASSERT(event->type() == EventTypeNames::success); | 448 ASSERT(event->type() == EventTypeNames::success); |
449 EventTarget* target = event->target(); | 449 EventTarget* target = event->target(); |
450 IDBRequest* request = static_cast<IDBRequest*>(target); | 450 IDBRequest* request = static_cast<IDBRequest*>(target); |
451 | 451 |
452 if (!m_database->backend()) // If database is stopped? | 452 if (!m_database->backend()) // If database is stopped? |
453 return; | 453 return; |
454 | 454 |
455 IDBAny* cursorAny = request->resultAsAny(); | 455 IDBAny* cursorAny = request->resultAsAny(); |
456 IDBCursorWithValue* cursor = nullptr; | 456 IDBCursorWithValue* cursor = nullptr; |
457 if (cursorAny->getType() == IDBAny::IDBCursorWithValueType) | 457 if (cursorAny->getType() == IDBAny::IDBCursorWithValueType) |
(...skipping 179 matching lines...) Loading... |
637 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 637 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
638 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 638 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
639 return nullptr; | 639 return nullptr; |
640 } | 640 } |
641 if (!m_transaction->isActive()) { | 641 if (!m_transaction->isActive()) { |
642 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 642 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
643 return nullptr; | 643 return nullptr; |
644 } | 644 } |
645 | 645 |
646 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); | 646 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); |
647 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 647 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
648 if (exceptionState.hadException()) | 648 if (exceptionState.hadException()) |
649 return nullptr; | 649 return nullptr; |
650 | 650 |
651 if (!backendDB()) { | 651 if (!backendDB()) { |
652 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 652 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
653 return nullptr; | 653 return nullptr; |
654 } | 654 } |
655 | 655 |
656 return openCursor(scriptState, keyRange, direction, WebIDBTaskTypeNormal); | 656 return openCursor(scriptState, keyRange, direction, WebIDBTaskTypeNormal); |
657 } | 657 } |
(...skipping 17 matching lines...) Loading... |
675 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 675 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
676 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 676 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
677 return nullptr; | 677 return nullptr; |
678 } | 678 } |
679 if (!m_transaction->isActive()) { | 679 if (!m_transaction->isActive()) { |
680 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 680 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
681 return nullptr; | 681 return nullptr; |
682 } | 682 } |
683 | 683 |
684 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); | 684 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); |
685 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 685 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
686 if (exceptionState.hadException()) | 686 if (exceptionState.hadException()) |
687 return nullptr; | 687 return nullptr; |
688 | 688 |
689 if (!backendDB()) { | 689 if (!backendDB()) { |
690 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 690 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
691 return nullptr; | 691 return nullptr; |
692 } | 692 } |
693 | 693 |
694 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 694 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
695 request->setCursorDetails(IndexedDB::CursorKeyOnly, direction); | 695 request->setCursorDetails(IndexedDB::CursorKeyOnly, direction); |
(...skipping 11 matching lines...) Loading... |
707 } | 707 } |
708 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 708 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
709 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 709 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
710 return nullptr; | 710 return nullptr; |
711 } | 711 } |
712 if (!m_transaction->isActive()) { | 712 if (!m_transaction->isActive()) { |
713 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 713 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
714 return nullptr; | 714 return nullptr; |
715 } | 715 } |
716 | 716 |
717 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 717 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
718 if (exceptionState.hadException()) | 718 if (exceptionState.hadException()) |
719 return nullptr; | 719 return nullptr; |
720 | 720 |
721 if (!backendDB()) { | 721 if (!backendDB()) { |
722 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 722 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
723 return nullptr; | 723 return nullptr; |
724 } | 724 } |
725 | 725 |
726 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 726 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
727 backendDB()->count(m_transaction->id(), id(), IDBIndexMetadata::InvalidId, k
eyRange, WebIDBCallbacksImpl::create(request).leakPtr()); | 727 backendDB()->count(m_transaction->id(), id(), IDBIndexMetadata::InvalidId, k
eyRange, WebIDBCallbacksImpl::create(request).leakPtr()); |
(...skipping 18 matching lines...) Loading... |
746 } | 746 } |
747 return IDBIndexMetadata::InvalidId; | 747 return IDBIndexMetadata::InvalidId; |
748 } | 748 } |
749 | 749 |
750 WebIDBDatabase* IDBObjectStore::backendDB() const | 750 WebIDBDatabase* IDBObjectStore::backendDB() const |
751 { | 751 { |
752 return m_transaction->backendDB(); | 752 return m_transaction->backendDB(); |
753 } | 753 } |
754 | 754 |
755 } // namespace blink | 755 } // namespace blink |
OLD | NEW |