void IDBTransaction::didGetRecordOnServer(IDBRequest& request, const IDBResultData& resultData) { LOG(IndexedDB, "IDBTransaction::didGetRecordOnServer"); if (resultData.type() == IDBResultType::Error) { request.requestCompleted(resultData); return; } ASSERT(resultData.type() == IDBResultType::GetRecordSuccess); const IDBGetResult& result = resultData.getResult(); if (request.sourceIndexIdentifier() && request.requestedIndexRecordType() == IndexedDB::IndexRecordType::Key) { if (!result.keyData().isNull()) request.setResult(&result.keyData()); else request.setResultToUndefined(); } else { if (resultData.getResult().valueBuffer().data()) request.setResultToStructuredClone(resultData.getResult().valueBuffer()); else request.setResultToUndefined(); } request.requestCompleted(resultData); }
TransactionOperation::TransactionOperation(IDBTransaction& transaction, IDBRequest& request) : TransactionOperation(transaction) { m_objectStoreIdentifier = request.sourceObjectStoreIdentifier(); m_indexIdentifier = request.sourceIndexIdentifier(); if (m_indexIdentifier) m_indexRecordType = request.requestedIndexRecordType(); }