| 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 IDBRequest::IDBRequest(ExecutionContext* context, PassRefPtr<IDBAny> source, IDB
Transaction* transaction) | 57 IDBRequest::IDBRequest(ExecutionContext* context, PassRefPtr<IDBAny> source, IDB
Transaction* transaction) |
| 58 : ActiveDOMObject(context) | 58 : ActiveDOMObject(context) |
| 59 , m_contextStopped(false) | 59 , m_contextStopped(false) |
| 60 , m_transaction(transaction) | 60 , m_transaction(transaction) |
| 61 , m_readyState(PENDING) | 61 , m_readyState(PENDING) |
| 62 , m_requestAborted(false) | 62 , m_requestAborted(false) |
| 63 , m_source(source) | 63 , m_source(source) |
| 64 , m_hasPendingActivity(true) | 64 , m_hasPendingActivity(true) |
| 65 , m_cursorType(IndexedDB::CursorKeyAndValue) | 65 , m_cursorType(IndexedDB::CursorKeyAndValue) |
| 66 , m_cursorDirection(blink::WebIDBCursor::Next) | 66 , m_cursorDirection(blink::WebIDBCursor::Next) |
| 67 , m_pendingCursor(0) | 67 , m_pendingCursor(nullptr) |
| 68 , m_didFireUpgradeNeededEvent(false) | 68 , m_didFireUpgradeNeededEvent(false) |
| 69 , m_preventPropagation(false) | 69 , m_preventPropagation(false) |
| 70 , m_resultDirty(true) | 70 , m_resultDirty(true) |
| 71 , m_requestState(context) | 71 , m_requestState(context) |
| 72 { | 72 { |
| 73 ScriptWrappable::init(this); | 73 ScriptWrappable::init(this); |
| 74 } | 74 } |
| 75 | 75 |
| 76 IDBRequest::~IDBRequest() | 76 IDBRequest::~IDBRequest() |
| 77 { | 77 { |
| 78 ASSERT(m_readyState == DONE || m_readyState == EarlyDeath || !executionConte
xt()); | 78 ASSERT(m_readyState == DONE || m_readyState == EarlyDeath || !executionConte
xt()); |
| 79 } | 79 } |
| 80 | 80 |
| 81 ScriptValue IDBRequest::result(ExceptionState& exceptionState) | 81 ScriptValue IDBRequest::result(ExceptionState& exceptionState) |
| 82 { | 82 { |
| 83 if (m_readyState != DONE) { | 83 if (m_readyState != DONE) { |
| 84 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::request
NotFinishedErrorMessage); | 84 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::request
NotFinishedErrorMessage); |
| 85 return ScriptValue(); | 85 return ScriptValue(); |
| 86 } | 86 } |
| 87 m_resultDirty = false; | 87 m_resultDirty = false; |
| 88 return idbAnyToScriptValue(&m_requestState, m_result); | 88 return idbAnyToScriptValue(&m_requestState, m_result); |
| 89 } | 89 } |
| 90 | 90 |
| 91 PassRefPtr<DOMError> IDBRequest::error(ExceptionState& exceptionState) const | 91 PassRefPtr<DOMError> IDBRequest::error(ExceptionState& exceptionState) const |
| 92 { | 92 { |
| 93 if (m_readyState != DONE) { | 93 if (m_readyState != DONE) { |
| 94 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::request
NotFinishedErrorMessage); | 94 exceptionState.throwDOMException(InvalidStateError, IDBDatabase::request
NotFinishedErrorMessage); |
| 95 return 0; | 95 return nullptr; |
| 96 } | 96 } |
| 97 return m_error; | 97 return m_error; |
| 98 } | 98 } |
| 99 | 99 |
| 100 ScriptValue IDBRequest::source(ExecutionContext* context) const | 100 ScriptValue IDBRequest::source(ExecutionContext* context) const |
| 101 { | 101 { |
| 102 DOMRequestState requestState(context); | 102 DOMRequestState requestState(context); |
| 103 return idbAnyToScriptValue(&requestState, m_source); | 103 return idbAnyToScriptValue(&requestState, m_source); |
| 104 } | 104 } |
| 105 | 105 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 void IDBRequest::setPendingCursor(PassRefPtr<IDBCursor> cursor) | 151 void IDBRequest::setPendingCursor(PassRefPtr<IDBCursor> cursor) |
| 152 { | 152 { |
| 153 ASSERT(m_readyState == DONE); | 153 ASSERT(m_readyState == DONE); |
| 154 ASSERT(executionContext()); | 154 ASSERT(executionContext()); |
| 155 ASSERT(m_transaction); | 155 ASSERT(m_transaction); |
| 156 ASSERT(!m_pendingCursor); | 156 ASSERT(!m_pendingCursor); |
| 157 ASSERT(cursor == getResultCursor()); | 157 ASSERT(cursor == getResultCursor()); |
| 158 | 158 |
| 159 m_hasPendingActivity = true; | 159 m_hasPendingActivity = true; |
| 160 m_pendingCursor = cursor; | 160 m_pendingCursor = cursor; |
| 161 setResult(PassRefPtr<IDBAny>(0)); | 161 setResult(PassRefPtr<IDBAny>(nullptr)); |
| 162 m_readyState = PENDING; | 162 m_readyState = PENDING; |
| 163 m_error.clear(); | 163 m_error.clear(); |
| 164 m_transaction->registerRequest(this); | 164 m_transaction->registerRequest(this); |
| 165 } | 165 } |
| 166 | 166 |
| 167 IDBCursor* IDBRequest::getResultCursor() const | 167 IDBCursor* IDBRequest::getResultCursor() const |
| 168 { | 168 { |
| 169 if (!m_result) | 169 if (!m_result) |
| 170 return 0; | 170 return 0; |
| 171 if (m_result->type() == IDBAny::IDBCursorType) | 171 if (m_result->type() == IDBAny::IDBCursorType) |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 | 285 |
| 286 #ifndef NDEBUG | 286 #ifndef NDEBUG |
| 287 static PassRefPtr<IDBObjectStore> effectiveObjectStore(PassRefPtr<IDBAny> source
) | 287 static PassRefPtr<IDBObjectStore> effectiveObjectStore(PassRefPtr<IDBAny> source
) |
| 288 { | 288 { |
| 289 if (source->type() == IDBAny::IDBObjectStoreType) | 289 if (source->type() == IDBAny::IDBObjectStoreType) |
| 290 return source->idbObjectStore(); | 290 return source->idbObjectStore(); |
| 291 if (source->type() == IDBAny::IDBIndexType) | 291 if (source->type() == IDBAny::IDBIndexType) |
| 292 return source->idbIndex()->objectStore(); | 292 return source->idbIndex()->objectStore(); |
| 293 | 293 |
| 294 ASSERT_NOT_REACHED(); | 294 ASSERT_NOT_REACHED(); |
| 295 return 0; | 295 return nullptr; |
| 296 } | 296 } |
| 297 #endif | 297 #endif |
| 298 | 298 |
| 299 void IDBRequest::onSuccess(PassRefPtr<SharedBuffer> prpValueBuffer, PassRefPtr<I
DBKey> prpPrimaryKey, const IDBKeyPath& keyPath) | 299 void IDBRequest::onSuccess(PassRefPtr<SharedBuffer> prpValueBuffer, PassRefPtr<I
DBKey> prpPrimaryKey, const IDBKeyPath& keyPath) |
| 300 { | 300 { |
| 301 IDB_TRACE("IDBRequest::onSuccess(SharedBuffer, IDBKey, IDBKeyPath)"); | 301 IDB_TRACE("IDBRequest::onSuccess(SharedBuffer, IDBKey, IDBKeyPath)"); |
| 302 if (!shouldEnqueueEvent()) | 302 if (!shouldEnqueueEvent()) |
| 303 return; | 303 return; |
| 304 | 304 |
| 305 #ifndef NDEBUG | 305 #ifndef NDEBUG |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 | 516 |
| 517 void IDBRequest::dequeueEvent(Event* event) | 517 void IDBRequest::dequeueEvent(Event* event) |
| 518 { | 518 { |
| 519 for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) { | 519 for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) { |
| 520 if (m_enqueuedEvents[i].get() == event) | 520 if (m_enqueuedEvents[i].get() == event) |
| 521 m_enqueuedEvents.remove(i); | 521 m_enqueuedEvents.remove(i); |
| 522 } | 522 } |
| 523 } | 523 } |
| 524 | 524 |
| 525 } // namespace WebCore | 525 } // namespace WebCore |
| OLD | NEW |