| 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 } | 78 } |
| 79 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 79 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
| 80 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 80 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
| 81 return nullptr; | 81 return nullptr; |
| 82 } | 82 } |
| 83 if (!m_transaction->isActive()) { | 83 if (!m_transaction->isActive()) { |
| 84 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 84 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
| 85 return nullptr; | 85 return nullptr; |
| 86 } | 86 } |
| 87 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); | 87 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); |
| 88 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 88 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
| 89 if (exceptionState.hadException()) | 89 if (exceptionState.hadException()) |
| 90 return nullptr; | 90 return nullptr; |
| 91 | 91 |
| 92 if (!backendDB()) { | 92 if (!backendDB()) { |
| 93 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 93 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
| 94 return nullptr; | 94 return nullptr; |
| 95 } | 95 } |
| 96 | 96 |
| 97 return openCursor(scriptState, keyRange, direction); | 97 return openCursor(scriptState, keyRange, direction); |
| 98 } | 98 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 114 } | 114 } |
| 115 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 115 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
| 116 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 116 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
| 117 return nullptr; | 117 return nullptr; |
| 118 } | 118 } |
| 119 if (!m_transaction->isActive()) { | 119 if (!m_transaction->isActive()) { |
| 120 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 120 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
| 121 return nullptr; | 121 return nullptr; |
| 122 } | 122 } |
| 123 | 123 |
| 124 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 124 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
| 125 if (exceptionState.hadException()) | 125 if (exceptionState.hadException()) |
| 126 return nullptr; | 126 return nullptr; |
| 127 | 127 |
| 128 if (!backendDB()) { | 128 if (!backendDB()) { |
| 129 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 129 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
| 130 return nullptr; | 130 return nullptr; |
| 131 } | 131 } |
| 132 | 132 |
| 133 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 133 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
| 134 backendDB()->count(m_transaction->id(), m_objectStore->id(), m_metadata.id,
keyRange, WebIDBCallbacksImpl::create(request).leakPtr()); | 134 backendDB()->count(m_transaction->id(), m_objectStore->id(), m_metadata.id,
keyRange, WebIDBCallbacksImpl::create(request).leakPtr()); |
| 135 return request; | 135 return request; |
| 136 } | 136 } |
| 137 | 137 |
| 138 IDBRequest* IDBIndex::openKeyCursor(ScriptState* scriptState, const ScriptValue&
range, const String& directionString, ExceptionState& exceptionState) | 138 IDBRequest* IDBIndex::openKeyCursor(ScriptState* scriptState, const ScriptValue&
range, const String& directionString, ExceptionState& exceptionState) |
| 139 { | 139 { |
| 140 IDB_TRACE("IDBIndex::openKeyCursor"); | 140 IDB_TRACE("IDBIndex::openKeyCursor"); |
| 141 if (isDeleted()) { | 141 if (isDeleted()) { |
| 142 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::indexDe
letedErrorMessage); | 142 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::indexDe
letedErrorMessage); |
| 143 return nullptr; | 143 return nullptr; |
| 144 } | 144 } |
| 145 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 145 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
| 146 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 146 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
| 147 return nullptr; | 147 return nullptr; |
| 148 } | 148 } |
| 149 if (!m_transaction->isActive()) { | 149 if (!m_transaction->isActive()) { |
| 150 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 150 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
| 151 return nullptr; | 151 return nullptr; |
| 152 } | 152 } |
| 153 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); | 153 WebIDBCursorDirection direction = IDBCursor::stringToDirection(directionStri
ng); |
| 154 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 154 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
| 155 if (exceptionState.hadException()) | 155 if (exceptionState.hadException()) |
| 156 return nullptr; | 156 return nullptr; |
| 157 if (!backendDB()) { | 157 if (!backendDB()) { |
| 158 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 158 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
| 159 return nullptr; | 159 return nullptr; |
| 160 } | 160 } |
| 161 | 161 |
| 162 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 162 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
| 163 request->setCursorDetails(IndexedDB::CursorKeyOnly, direction); | 163 request->setCursorDetails(IndexedDB::CursorKeyOnly, direction); |
| 164 backendDB()->openCursor(m_transaction->id(), m_objectStore->id(), m_metadata
.id, keyRange, direction, true, WebIDBTaskTypeNormal, WebIDBCallbacksImpl::creat
e(request).leakPtr()); | 164 backendDB()->openCursor(m_transaction->id(), m_objectStore->id(), m_metadata
.id, keyRange, direction, true, WebIDBTaskTypeNormal, WebIDBCallbacksImpl::creat
e(request).leakPtr()); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 } | 207 } |
| 208 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 208 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
| 209 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 209 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
| 210 return nullptr; | 210 return nullptr; |
| 211 } | 211 } |
| 212 if (!m_transaction->isActive()) { | 212 if (!m_transaction->isActive()) { |
| 213 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 213 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
| 214 return nullptr; | 214 return nullptr; |
| 215 } | 215 } |
| 216 | 216 |
| 217 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), key, exceptionState); | 217 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), key, exceptionState); |
| 218 if (exceptionState.hadException()) | 218 if (exceptionState.hadException()) |
| 219 return nullptr; | 219 return nullptr; |
| 220 if (!keyRange) { | 220 if (!keyRange) { |
| 221 exceptionState.throwDOMException(DataError, IDBDatabase::noKeyOrKeyRange
ErrorMessage); | 221 exceptionState.throwDOMException(DataError, IDBDatabase::noKeyOrKeyRange
ErrorMessage); |
| 222 return nullptr; | 222 return nullptr; |
| 223 } | 223 } |
| 224 if (!backendDB()) { | 224 if (!backendDB()) { |
| 225 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 225 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
| 226 return nullptr; | 226 return nullptr; |
| 227 } | 227 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 242 } | 242 } |
| 243 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 243 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
| 244 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); | 244 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionFinishedErrorMessage); |
| 245 return nullptr; | 245 return nullptr; |
| 246 } | 246 } |
| 247 if (!m_transaction->isActive()) { | 247 if (!m_transaction->isActive()) { |
| 248 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); | 248 exceptionState.throwDOMException(TransactionInactiveError, IDBDatabase::
transactionInactiveErrorMessage); |
| 249 return nullptr; | 249 return nullptr; |
| 250 } | 250 } |
| 251 | 251 |
| 252 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->executionC
ontext(), range, exceptionState); | 252 IDBKeyRange* keyRange = IDBKeyRange::fromScriptValue(scriptState->getExecuti
onContext(), range, exceptionState); |
| 253 if (exceptionState.hadException()) | 253 if (exceptionState.hadException()) |
| 254 return nullptr; | 254 return nullptr; |
| 255 if (!backendDB()) { | 255 if (!backendDB()) { |
| 256 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); | 256 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::databas
eClosedErrorMessage); |
| 257 return nullptr; | 257 return nullptr; |
| 258 } | 258 } |
| 259 | 259 |
| 260 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); | 260 IDBRequest* request = IDBRequest::create(scriptState, IDBAny::create(this),
m_transaction.get()); |
| 261 backendDB()->getAll(m_transaction->id(), m_objectStore->id(), m_metadata.id,
keyRange, maxCount, keyOnly, WebIDBCallbacksImpl::create(request).leakPtr()); | 261 backendDB()->getAll(m_transaction->id(), m_objectStore->id(), m_metadata.id,
keyRange, maxCount, keyOnly, WebIDBCallbacksImpl::create(request).leakPtr()); |
| 262 return request; | 262 return request; |
| 263 } | 263 } |
| 264 | 264 |
| 265 WebIDBDatabase* IDBIndex::backendDB() const | 265 WebIDBDatabase* IDBIndex::backendDB() const |
| 266 { | 266 { |
| 267 return m_transaction->backendDB(); | 267 return m_transaction->backendDB(); |
| 268 } | 268 } |
| 269 | 269 |
| 270 bool IDBIndex::isDeleted() const | 270 bool IDBIndex::isDeleted() const |
| 271 { | 271 { |
| 272 return m_deleted || m_objectStore->isDeleted(); | 272 return m_deleted || m_objectStore->isDeleted(); |
| 273 } | 273 } |
| 274 | 274 |
| 275 } // namespace blink | 275 } // namespace blink |
| OLD | NEW |