| 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...) Expand 10 before | Expand all | Expand 10 after 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...) Expand all 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...) Expand all 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...) Expand 10 before | Expand all | Expand 10 after 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...) Expand 10 before | Expand all | Expand 10 after 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...) Expand 10 before | Expand all | Expand 10 after 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...) Expand all 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...) Expand all 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...) Expand all 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 |