Changeset 248527 in webkit
- Timestamp:
- Aug 12, 2019 4:39:39 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r248526 r248527 1 2019-08-12 Youenn Fablet <youenn@apple.com> 2 3 Remove IDBValue::m_sessionID 4 https://bugs.webkit.org/show_bug.cgi?id=199320 5 6 Reviewed by Alex Christensen. 7 8 Remove sessionID from IDBValue. 9 This does not seem to be really used in any way. 10 No change of behavior. 11 12 * Modules/indexeddb/IDBValue.cpp: 13 (WebCore::IDBValue::IDBValue): 14 * Modules/indexeddb/IDBValue.h: 15 (WebCore::IDBValue::blobURLs const): 16 (WebCore::IDBValue::encode const): 17 (WebCore::IDBValue::decode): 18 (WebCore::IDBValue::sessionID const): Deleted. 19 * Modules/indexeddb/shared/IDBRequestData.cpp: 20 (WebCore::IDBRequestData::isolatedCopy): 21 * Modules/indexeddb/shared/IDBRequestData.h: 22 (WebCore::IDBRequestData::databaseIdentifier const): 23 (WebCore::IDBRequestData::decode): 24 * bindings/js/IDBBindingUtilities.cpp: 25 (WebCore::deserializeIDBValueToJSValue): 26 * bindings/js/SerializedScriptValue.cpp: 27 (WebCore::CloneSerializer::serialize): 28 (WebCore::CloneSerializer::CloneSerializer): 29 (WebCore::CloneSerializer::dumpIfTerminal): 30 (WebCore::CloneDeserializer::deserialize): 31 (WebCore::CloneDeserializer::CloneDeserializer): 32 (WebCore::SerializedScriptValue::SerializedScriptValue): 33 (WebCore::SerializedScriptValue::create): 34 (WebCore::SerializedScriptValue::deserialize): 35 (WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB): 36 * bindings/js/SerializedScriptValue.h: 37 (WebCore::SerializedScriptValue::sessionID const): Deleted. 38 1 39 2019-08-12 Youenn Fablet <youenn@apple.com> 2 40 -
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
r245258 r248527 1281 1281 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=157958 - Make this asynchronous after refactoring allows it. 1282 1282 if (!isMainThread()) { 1283 auto idbValue = value->writeBlobsToDiskForIndexedDBSynchronously( );1283 auto idbValue = value->writeBlobsToDiskForIndexedDBSynchronously(scriptExecutionContext()->sessionID()); 1284 1284 if (idbValue.data().data()) 1285 1285 m_database->connectionProxy().putOrAdd(operation, key.get(), idbValue, overwriteMode); … … 1300 1300 operation.setNextRequestCanGoToServer(false); 1301 1301 1302 value->writeBlobsToDiskForIndexedDB( [protectedThis = makeRef(*this), this, protectedOperation = Ref<IDBClient::TransactionOperation>(operation), keyData = IDBKeyData(key.get()).isolatedCopy(), overwriteMode](IDBValue&& idbValue) mutable {1302 value->writeBlobsToDiskForIndexedDB(scriptExecutionContext()->sessionID(), [protectedThis = makeRef(*this), this, protectedOperation = Ref<IDBClient::TransactionOperation>(operation), keyData = IDBKeyData(key.get()).isolatedCopy(), overwriteMode](IDBValue&& idbValue) mutable { 1303 1303 ASSERT(&originThread() == &Thread::current()); 1304 1304 ASSERT(isMainThread()); -
trunk/Source/WebCore/Modules/indexeddb/IDBValue.cpp
r248366 r248527 42 42 , m_blobURLs(scriptValue.blobURLsIsolatedCopy()) 43 43 { 44 if (scriptValue.sessionID().isValid())45 m_sessionID = scriptValue.sessionID();46 44 } 47 45 … … 51 49 } 52 50 53 IDBValue::IDBValue(const SerializedScriptValue& scriptValue, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, constVector<String>& blobFilePaths)51 IDBValue::IDBValue(const SerializedScriptValue& scriptValue, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths) 54 52 : m_data(ThreadSafeDataBuffer::copyVector(scriptValue.data())) 55 53 , m_blobURLs(blobURLs) … … 57 55 { 58 56 ASSERT(m_data.data()); 59 if (sessionID.isValid())60 m_sessionID = sessionID;61 57 } 62 58 63 IDBValue::IDBValue(const ThreadSafeDataBuffer& value, Vector<String>&& blobURLs, const PAL::SessionID& sessionID,Vector<String>&& blobFilePaths)59 IDBValue::IDBValue(const ThreadSafeDataBuffer& value, Vector<String>&& blobURLs, Vector<String>&& blobFilePaths) 64 60 : m_data(value) 65 61 , m_blobURLs(WTFMove(blobURLs)) 66 62 , m_blobFilePaths(WTFMove(blobFilePaths)) 67 63 { 68 if (sessionID.isValid())69 m_sessionID = sessionID;70 64 } 71 65 72 IDBValue::IDBValue(const ThreadSafeDataBuffer& value, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, constVector<String>& blobFilePaths)66 IDBValue::IDBValue(const ThreadSafeDataBuffer& value, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths) 73 67 : m_data(value) 74 68 , m_blobURLs(blobURLs) 75 69 , m_blobFilePaths(blobFilePaths) 76 70 { 77 if (sessionID.isValid())78 m_sessionID = sessionID;79 71 } 80 72 … … 85 77 m_data = other.m_data; 86 78 m_blobURLs = crossThreadCopy(other.m_blobURLs); 87 m_sessionID = other.m_sessionID;88 79 m_blobFilePaths = crossThreadCopy(other.m_blobFilePaths); 89 80 } -
trunk/Source/WebCore/Modules/indexeddb/IDBValue.h
r248366 r248527 29 29 30 30 #include "ThreadSafeDataBuffer.h" 31 #include <pal/SessionID.h>32 31 #include <wtf/text/WTFString.h> 33 32 … … 42 41 IDBValue(const SerializedScriptValue&); 43 42 IDBValue(const ThreadSafeDataBuffer&); 44 IDBValue(const SerializedScriptValue&, const Vector<String>& blobURLs, const PAL::SessionID&, constVector<String>& blobFilePaths);45 IDBValue(const ThreadSafeDataBuffer&, Vector<String>&& blobURLs, const PAL::SessionID&,Vector<String>&& blobFilePaths);46 IDBValue(const ThreadSafeDataBuffer&, const Vector<String>& blobURLs, const PAL::SessionID&, constVector<String>& blobFilePaths);43 IDBValue(const SerializedScriptValue&, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths); 44 IDBValue(const ThreadSafeDataBuffer&, Vector<String>&& blobURLs, Vector<String>&& blobFilePaths); 45 IDBValue(const ThreadSafeDataBuffer&, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths); 47 46 48 47 void setAsIsolatedCopy(const IDBValue&); … … 51 50 const ThreadSafeDataBuffer& data() const { return m_data; } 52 51 const Vector<String>& blobURLs() const { return m_blobURLs; } 53 PAL::SessionID sessionID() const;54 52 const Vector<String>& blobFilePaths() const { return m_blobFilePaths; } 55 53 … … 60 58 ThreadSafeDataBuffer m_data; 61 59 Vector<String> m_blobURLs; 62 Optional<PAL::SessionID> m_sessionID;63 60 Vector<String> m_blobFilePaths; 64 61 }; 65 66 inline PAL::SessionID IDBValue::sessionID() const67 {68 // FIXME: We should assert m_sessionID is valid or remove m_sessionID.69 if (!m_sessionID)70 return { };71 return *m_sessionID;72 }73 62 74 63 template<class Encoder> … … 77 66 encoder << m_data; 78 67 encoder << m_blobURLs; 79 encoder << m_sessionID;80 68 encoder << m_blobFilePaths; 81 69 } … … 91 79 return WTF::nullopt; 92 80 93 if (!decoder.decode(result.m_sessionID))94 return WTF::nullopt;95 96 81 if (!decoder.decode(result.m_blobFilePaths)) 97 82 return WTF::nullopt; -
trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndexCursor.cpp
r244436 r248527 75 75 getResult = { m_currentKey, m_currentPrimaryKey }; 76 76 else { 77 IDBValue value = { m_index.objectStore().valueForKey(m_currentPrimaryKey), { }, { } , { }};77 IDBValue value = { m_index.objectStore().valueForKey(m_currentPrimaryKey), { }, { } }; 78 78 getResult = { m_currentKey, m_currentPrimaryKey, WTFMove(value), m_index.objectStore().info().keyPath() }; 79 79 } -
trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp
r247337 r248527 194 194 data = { m_currentPositionKey, m_currentPositionKey }; 195 195 else { 196 IDBValue value = { m_objectStore.valueForKeyRange(m_currentPositionKey), { }, { } , { }};196 IDBValue value = { m_objectStore.valueForKeyRange(m_currentPositionKey), { }, { } }; 197 197 data = { m_currentPositionKey, m_currentPositionKey, WTFMove(value), m_objectStore.info().keyPath() }; 198 198 } -
trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
r248526 r248527 2041 2041 auto* objectStoreInfo = infoForObjectStore(objectStoreID); 2042 2042 ASSERT(objectStoreInfo); 2043 resultValue = { keyData, { valueResultBuffer, WTFMove(blobURLs), m_sessionID,WTFMove(blobFilePaths) }, objectStoreInfo->keyPath()};2043 resultValue = { keyData, { valueResultBuffer, WTFMove(blobURLs), WTFMove(blobFilePaths) }, objectStoreInfo->keyPath()}; 2044 2044 return IDBError { }; 2045 2045 } … … 2160 2160 return error; 2161 2161 2162 result.addValue({ valueResultBuffer, WTFMove(blobURLs), m_sessionID,WTFMove(blobFilePaths) });2162 result.addValue({ valueResultBuffer, WTFMove(blobURLs), WTFMove(blobFilePaths) }); 2163 2163 } 2164 2164 … … 2323 2323 auto* objectStoreInfo = infoForObjectStore(objectStoreID); 2324 2324 ASSERT(objectStoreInfo); 2325 getResult = { objectStoreKey, objectStoreKey, { ThreadSafeDataBuffer::create(WTFMove(valueVector)), WTFMove(blobURLs), m_sessionID,WTFMove(blobFilePaths) }, objectStoreInfo->keyPath() };2325 getResult = { objectStoreKey, objectStoreKey, { ThreadSafeDataBuffer::create(WTFMove(valueVector)), WTFMove(blobURLs), WTFMove(blobFilePaths) }, objectStoreInfo->keyPath() }; 2326 2326 return IDBError { }; 2327 2327 } -
trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp
r248377 r248527 465 465 466 466 if (m_cursorType == IndexedDB::CursorType::KeyAndValue) 467 record.record.value = std::make_unique<IDBValue>(ThreadSafeDataBuffer::create(WTFMove(keyData)), blobURLs, m_transaction->backingStore().sessionID(),blobFilePaths);467 record.record.value = std::make_unique<IDBValue>(ThreadSafeDataBuffer::create(WTFMove(keyData)), blobURLs, blobFilePaths); 468 468 } else { 469 469 if (!deserializeIDBKeyData(keyData.data(), keyData.size(), record.record.primaryKey)) { -
trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp
r246770 r248527 388 388 state.vm().apiLock().lock(); 389 389 Vector<RefPtr<MessagePort>> messagePorts; 390 JSValue result = serializedValue->deserialize(state, &globalObject, messagePorts, value.blobURLs(), value. sessionID(), value.blobFilePaths(), SerializationErrorMode::NonThrowing);390 JSValue result = serializedValue->deserialize(state, &globalObject, messagePorts, value.blobURLs(), value.blobFilePaths(), SerializationErrorMode::NonThrowing); 391 391 state.vm().apiLock().unlock(); 392 392 -
trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp
r248503 r248527 549 549 WasmModuleArray& wasmModules, 550 550 #endif 551 Vector<String>& blobURLs, const PAL::SessionID& sessionID,Vector<uint8_t>& out, SerializationContext context, ArrayBufferContentsArray& sharedBuffers)551 Vector<String>& blobURLs, Vector<uint8_t>& out, SerializationContext context, ArrayBufferContentsArray& sharedBuffers) 552 552 { 553 553 CloneSerializer serializer(exec, messagePorts, arrayBuffers, imageBitmaps, … … 555 555 wasmModules, 556 556 #endif 557 blobURLs, sessionID,out, context, sharedBuffers);557 blobURLs, out, context, sharedBuffers); 558 558 return serializer.serialize(value); 559 559 } … … 582 582 WasmModuleArray& wasmModules, 583 583 #endif 584 Vector<String>& blobURLs, const PAL::SessionID& sessionID,Vector<uint8_t>& out, SerializationContext context, ArrayBufferContentsArray& sharedBuffers)584 Vector<String>& blobURLs, Vector<uint8_t>& out, SerializationContext context, ArrayBufferContentsArray& sharedBuffers) 585 585 : CloneBase(exec) 586 586 , m_buffer(out) 587 587 , m_blobURLs(blobURLs) 588 , m_sessionID(sessionID)589 588 , m_emptyIdentifier(Identifier::fromString(exec, emptyString())) 590 589 , m_context(context) … … 1059 1058 Vector<uint8_t> serializedKey; 1060 1059 Vector<String> dummyBlobURLs; 1061 PAL::SessionID dummySessionID;1062 1060 Vector<RefPtr<MessagePort>> dummyMessagePorts; 1063 1061 Vector<RefPtr<JSC::ArrayBuffer>> dummyArrayBuffers; … … 1070 1068 dummyModules, 1071 1069 #endif 1072 dummyBlobURLs, dummySessionID,serializedKey, SerializationContext::Default, dummySharedBuffers);1070 dummyBlobURLs, serializedKey, SerializationContext::Default, dummySharedBuffers); 1073 1071 rawKeySerializer.write(key); 1074 1072 Vector<uint8_t> wrappedKey; … … 1469 1467 Vector<uint8_t>& m_buffer; 1470 1468 Vector<String>& m_blobURLs; 1471 PAL::SessionID m_sessionID;1472 1469 ObjectPool m_objectPool; 1473 1470 ObjectPool m_transferredMessagePorts; … … 1753 1750 } 1754 1751 1755 static DeserializationResult deserialize(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers, ArrayBufferContentsArray* arrayBufferContentsArray, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, constVector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers1752 static DeserializationResult deserialize(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers, ArrayBufferContentsArray* arrayBufferContentsArray, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers 1756 1753 #if ENABLE(WEBASSEMBLY) 1757 1754 , WasmModuleArray* wasmModules … … 1761 1758 if (!buffer.size()) 1762 1759 return std::make_pair(jsNull(), SerializationReturnCode::UnspecifiedError); 1763 CloneDeserializer deserializer(exec, globalObject, messagePorts, arrayBufferContentsArray, buffer, blobURLs, sessionID,blobFilePaths, sharedBuffers, WTFMove(imageBuffers)1760 CloneDeserializer deserializer(exec, globalObject, messagePorts, arrayBufferContentsArray, buffer, blobURLs, blobFilePaths, sharedBuffers, WTFMove(imageBuffers) 1764 1761 #if ENABLE(WEBASSEMBLY) 1765 1762 , wasmModules … … 1835 1832 } 1836 1833 1837 CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContents, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, constVector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers1834 CloneDeserializer(ExecState* exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, ArrayBufferContentsArray* arrayBufferContents, const Vector<uint8_t>& buffer, const Vector<String>& blobURLs, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers 1838 1835 #if ENABLE(WEBASSEMBLY) 1839 1836 , WasmModuleArray* wasmModules … … 1850 1847 , m_arrayBuffers(arrayBufferContents ? arrayBufferContents->size() : 0) 1851 1848 , m_blobURLs(blobURLs) 1852 , m_sessionID(sessionID)1853 1849 , m_blobFilePaths(blobFilePaths) 1854 1850 , m_sharedBuffers(sharedBuffers) … … 3060 3056 Vector<RefPtr<JSC::ArrayBuffer>> m_arrayBuffers; 3061 3057 Vector<String> m_blobURLs; 3062 PAL::SessionID m_sessionID;3063 3058 Vector<String> m_blobFilePaths; 3064 3059 ArrayBufferContentsArray* m_sharedBuffers; … … 3281 3276 } 3282 3277 3283 SerializedScriptValue::SerializedScriptValue(Vector<uint8_t>&& buffer, const Vector<String>& blobURLs, const PAL::SessionID& sessionID,std::unique_ptr<ArrayBufferContentsArray> arrayBufferContentsArray, std::unique_ptr<ArrayBufferContentsArray> sharedBufferContentsArray, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers3278 SerializedScriptValue::SerializedScriptValue(Vector<uint8_t>&& buffer, const Vector<String>& blobURLs, std::unique_ptr<ArrayBufferContentsArray> arrayBufferContentsArray, std::unique_ptr<ArrayBufferContentsArray> sharedBufferContentsArray, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers 3284 3279 #if ENABLE(WEBASSEMBLY) 3285 3280 , std::unique_ptr<WasmModuleArray> wasmModulesArray … … 3293 3288 , m_wasmModulesArray(WTFMove(wasmModulesArray)) 3294 3289 #endif 3295 , m_sessionID(sessionID)3296 3290 { 3297 3291 // Since this SerializedScriptValue is meant to be passed between threads, its String data members … … 3376 3370 Vector<uint8_t> buffer; 3377 3371 Vector<String> blobURLs; 3378 PAL::SessionID sessionID;3379 3372 Vector<RefPtr<MessagePort>> dummyMessagePorts; 3380 3373 Vector<RefPtr<ImageBitmap>> dummyImageBitmaps; … … 3388 3381 dummyModules, 3389 3382 #endif 3390 blobURLs, sessionID,buffer, SerializationContext::Default, dummySharedBuffers);3383 blobURLs, buffer, SerializationContext::Default, dummySharedBuffers); 3391 3384 3392 3385 #if ENABLE(WEBASSEMBLY) … … 3400 3393 return nullptr; 3401 3394 3402 return adoptRef(*new SerializedScriptValue(WTFMove(buffer), blobURLs, sessionID,nullptr, nullptr, { }3395 return adoptRef(*new SerializedScriptValue(WTFMove(buffer), blobURLs, nullptr, nullptr, { } 3403 3396 #if ENABLE(WEBASSEMBLY) 3404 3397 , nullptr … … 3456 3449 Vector<uint8_t> buffer; 3457 3450 Vector<String> blobURLs; 3458 PAL::SessionID sessionID;3459 3451 #if ENABLE(WEBASSEMBLY) 3460 3452 WasmModuleArray wasmModules; … … 3465 3457 wasmModules, 3466 3458 #endif 3467 blobURLs, sessionID,buffer, context, *sharedBuffers);3459 blobURLs, buffer, context, *sharedBuffers); 3468 3460 3469 3461 if (code != SerializationReturnCode::SuccessfullyCompleted) … … 3476 3468 auto imageBuffers = ImageBitmap::detachBitmaps(WTFMove(imageBitmaps)); 3477 3469 3478 return adoptRef(*new SerializedScriptValue(WTFMove(buffer), blobURLs, sessionID,arrayBufferContentsArray.releaseReturnValue(), context == SerializationContext::WorkerPostMessage ? WTFMove(sharedBuffers) : nullptr, WTFMove(imageBuffers)3470 return adoptRef(*new SerializedScriptValue(WTFMove(buffer), blobURLs, arrayBufferContentsArray.releaseReturnValue(), context == SerializationContext::WorkerPostMessage ? WTFMove(sharedBuffers) : nullptr, WTFMove(imageBuffers) 3479 3471 #if ENABLE(WEBASSEMBLY) 3480 3472 , std::make_unique<WasmModuleArray>(wasmModules) … … 3524 3516 Vector<String> dummyBlobs; 3525 3517 Vector<String> dummyPaths; 3526 PAL::SessionID dummySessionID; 3527 return deserialize(exec, globalObject, messagePorts, dummyBlobs, dummySessionID, dummyPaths, throwExceptions); 3518 return deserialize(exec, globalObject, messagePorts, dummyBlobs, dummyPaths, throwExceptions); 3528 3519 } 3529 3520 3530 JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, constVector<String>& blobFilePaths, SerializationErrorMode throwExceptions)3521 JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode throwExceptions) 3531 3522 { 3532 DeserializationResult result = CloneDeserializer::deserialize(&exec, globalObject, messagePorts, WTFMove(m_imageBuffers), m_arrayBufferContentsArray.get(), m_data, blobURLs, sessionID,blobFilePaths, m_sharedBufferContentsArray.get()3523 DeserializationResult result = CloneDeserializer::deserialize(&exec, globalObject, messagePorts, WTFMove(m_imageBuffers), m_arrayBufferContentsArray.get(), m_data, blobURLs, blobFilePaths, m_sharedBufferContentsArray.get() 3533 3524 #if ENABLE(WEBASSEMBLY) 3534 3525 , m_wasmModulesArray.get() … … 3579 3570 } 3580 3571 3581 void SerializedScriptValue::writeBlobsToDiskForIndexedDB( CompletionHandler<void(IDBValue&&)>&& completionHandler)3572 void SerializedScriptValue::writeBlobsToDiskForIndexedDB(PAL::SessionID, CompletionHandler<void(IDBValue&&)>&& completionHandler) 3582 3573 { 3583 3574 ASSERT(isMainThread()); 3584 3575 ASSERT(hasBlobURLs()); 3585 3576 3586 // FIXME: Add m_sessionID as a parameter here.3577 // FIXME: Get the right blob registry from the given sessionID. 3587 3578 blobRegistry().writeBlobsToTemporaryFiles(m_blobURLs, [completionHandler = WTFMove(completionHandler), this, protectedThis = makeRef(*this)] (auto&& blobFilePaths) mutable { 3588 3579 ASSERT(isMainThread()); … … 3597 3588 ASSERT(m_blobURLs.size() == blobFilePaths.size()); 3598 3589 3599 completionHandler({ *this, m_blobURLs, m_sessionID,blobFilePaths });3590 completionHandler({ *this, m_blobURLs, blobFilePaths }); 3600 3591 }); 3601 3592 } 3602 3593 3603 IDBValue SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously( )3594 IDBValue SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously(PAL::SessionID sessionID) 3604 3595 { 3605 3596 ASSERT(!isMainThread()); … … 3610 3601 lock.lock(); 3611 3602 3612 RunLoop::main().dispatch([this, conditionPtr = &condition, valuePtr = &value] {3613 writeBlobsToDiskForIndexedDB( [conditionPtr, valuePtr](IDBValue&& result) {3603 RunLoop::main().dispatch([this, sessionID, conditionPtr = &condition, valuePtr = &value] { 3604 writeBlobsToDiskForIndexedDB(sessionID, [conditionPtr, valuePtr](IDBValue&& result) { 3614 3605 ASSERT(isMainThread()); 3615 3606 valuePtr->setAsIsolatedCopy(result); -
trunk/Source/WebCore/bindings/js/SerializedScriptValue.h
r238632 r248527 79 79 WEBCORE_EXPORT JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, SerializationErrorMode = SerializationErrorMode::Throwing); 80 80 WEBCORE_EXPORT JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, const Vector<RefPtr<MessagePort>>&, SerializationErrorMode = SerializationErrorMode::Throwing); 81 JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, const Vector<RefPtr<MessagePort>>&, const Vector<String>& blobURLs, const PAL::SessionID&, constVector<String>& blobFilePaths, SerializationErrorMode = SerializationErrorMode::Throwing);81 JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, const Vector<RefPtr<MessagePort>>&, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode = SerializationErrorMode::Throwing); 82 82 83 83 static uint32_t wireFormatVersion(); … … 94 94 #if ENABLE(INDEXED_DATABASE) 95 95 Vector<String> blobURLsIsolatedCopy() const; 96 const PAL::SessionID& sessionID() const { return m_sessionID; } 97 void writeBlobsToDiskForIndexedDB(CompletionHandler<void(IDBValue&&)>&&); 98 IDBValue writeBlobsToDiskForIndexedDBSynchronously(); 96 void writeBlobsToDiskForIndexedDB(PAL::SessionID, CompletionHandler<void(IDBValue&&)>&&); 97 IDBValue writeBlobsToDiskForIndexedDBSynchronously(PAL::SessionID); 99 98 #endif // ENABLE(INDEXED_DATABASE) 100 99 … … 113 112 WEBCORE_EXPORT SerializedScriptValue(Vector<unsigned char>&&); 114 113 WEBCORE_EXPORT SerializedScriptValue(Vector<unsigned char>&&, std::unique_ptr<ArrayBufferContentsArray>); 115 SerializedScriptValue(Vector<unsigned char>&&, const Vector<String>& blobURLs, const PAL::SessionID&,std::unique_ptr<ArrayBufferContentsArray>, std::unique_ptr<ArrayBufferContentsArray> sharedBuffers, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers114 SerializedScriptValue(Vector<unsigned char>&&, const Vector<String>& blobURLs, std::unique_ptr<ArrayBufferContentsArray>, std::unique_ptr<ArrayBufferContentsArray> sharedBuffers, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers 116 115 #if ENABLE(WEBASSEMBLY) 117 116 , std::unique_ptr<WasmModuleArray> … … 127 126 #endif 128 127 Vector<String> m_blobURLs; 129 PAL::SessionID m_sessionID;130 128 }; 131 129
Note: See TracChangeset
for help on using the changeset viewer.