void IDBRequest::onSuccess(PassRefPtr<IDBValue> prpValue) { IDB_TRACE("IDBRequest::onSuccess(IDBValue)"); if (!shouldEnqueueEvent()) return; RefPtr<IDBValue> value(prpValue); ackReceivedBlobs(value.get()); if (m_pendingCursor) { // Value should be null, signifying the end of the cursor's range. ASSERT(value->isNull()); ASSERT(!value->blobInfo()->size()); m_pendingCursor->close(); m_pendingCursor.clear(); } #if ENABLE(ASSERT) if (value->primaryKey()) { ASSERT(value->keyPath() == effectiveObjectStore(m_source)->metadata().keyPath); assertPrimaryKeyValidOrInjectable(m_scriptState.get(), value.get()); } #endif onSuccessInternal(IDBAny::create(value.release())); }
void IDBRequest::onSuccess(PassRefPtr<SharedBuffer> prpValueBuffer, PassOwnPtr<Vector<WebBlobInfo> > blobInfo, IDBKey* prpPrimaryKey, const IDBKeyPath& keyPath) { IDB_TRACE("IDBRequest::onSuccess(SharedBuffer, IDBKey, IDBKeyPath)"); if (!shouldEnqueueEvent()) return; ASSERT(keyPath == effectiveObjectStore(m_source)->metadata().keyPath); RefPtr<SharedBuffer> valueBuffer = prpValueBuffer; IDBKey* primaryKey = prpPrimaryKey; setBlobInfo(blobInfo); #if ENABLE(ASSERT) assertPrimaryKeyValidOrInjectable(m_scriptState.get(), valueBuffer, m_blobInfo.get(), primaryKey, keyPath); #endif onSuccessInternal(IDBAny::create(valueBuffer, m_blobInfo.get(), primaryKey, keyPath)); }
void IDBRequest::onSuccess(PassRefPtr<SharedBuffer> prpValueBuffer, PassRefPtr<IDBKey> prpPrimaryKey, const IDBKeyPath& keyPath) { IDB_TRACE("IDBRequest::onSuccess(SharedBuffer, IDBKey, IDBKeyPath)"); if (!shouldEnqueueEvent()) return; #ifndef NDEBUG ASSERT(keyPath == effectiveObjectStore(m_source)->metadata().keyPath); #endif RefPtr<SharedBuffer> valueBuffer = prpValueBuffer; RefPtr<IDBKey> primaryKey = prpPrimaryKey; #ifndef NDEBUG assertPrimaryKeyValidOrInjectable(&m_requestState, valueBuffer, primaryKey, keyPath); #endif onSuccessInternal(IDBAny::create(valueBuffer, primaryKey, keyPath)); }
ScriptValue IDBCursor::value(ScriptState* scriptState) { ASSERT(isCursorWithValue()); IDBObjectStore* objectStore = effectiveObjectStore(); const IDBObjectStoreMetadata& metadata = objectStore->metadata(); IDBAny* value; if (metadata.autoIncrement && !metadata.keyPath.isNull()) { value = IDBAny::create(m_value, m_blobs->getInfo(), m_primaryKey, metadata.keyPath); #if ENABLE(ASSERT) assertPrimaryKeyValidOrInjectable(scriptState, m_value, m_blobs->getInfo(), m_primaryKey, metadata.keyPath); #endif } else { value = IDBAny::create(m_value, m_blobs->getInfo()); } m_valueDirty = false; ScriptValue scriptValue = idbAnyToScriptValue(scriptState, value); return scriptValue; }
ScriptValue IDBCursor::value(ScriptState* scriptState) { ASSERT(isCursorWithValue()); RefPtrWillBeRawPtr<IDBObjectStore> objectStore = effectiveObjectStore(); const IDBObjectStoreMetadata& metadata = objectStore->metadata(); RefPtrWillBeRawPtr<IDBAny> value; if (metadata.autoIncrement && !metadata.keyPath.isNull()) { value = IDBAny::create(m_value, m_blobInfo.get(), m_primaryKey, metadata.keyPath); #ifndef NDEBUG assertPrimaryKeyValidOrInjectable(scriptState, m_value, m_blobInfo.get(), m_primaryKey, metadata.keyPath); #endif } else { value = IDBAny::create(m_value, m_blobInfo.get()); } m_valueDirty = false; ScriptValue scriptValue = idbAnyToScriptValue(scriptState, value); handleBlobAcks(); return scriptValue; }
ScriptValue IDBCursor::value(ScriptState* scriptState) { ASSERT(isCursorWithValue()); IDBObjectStore* objectStore = effectiveObjectStore(); const IDBObjectStoreMetadata& metadata = objectStore->metadata(); IDBAny* value; if (!m_value) { value = IDBAny::createUndefined(); } else if (metadata.autoIncrement && !metadata.keyPath.isNull()) { RefPtr<IDBValue> idbValue = IDBValue::create(m_value.get(), m_primaryKey, metadata.keyPath); #if ENABLE(ASSERT) assertPrimaryKeyValidOrInjectable(scriptState, idbValue.get()); #endif value = IDBAny::create(idbValue.release()); } else { value = IDBAny::create(m_value); } m_valueDirty = false; ScriptValue scriptValue = ScriptValue::from(scriptState, value); return scriptValue; }