Changeset 248527 in webkit


Ignore:
Timestamp:
Aug 12, 2019 4:39:39 AM (5 years ago)
Author:
youenn@apple.com
Message:

Remove IDBValue::m_sessionID
https://bugs.webkit.org/show_bug.cgi?id=199320

Reviewed by Alex Christensen.

Remove sessionID from IDBValue.
This does not seem to be really used in any way.
No change of behavior.

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • Modules/indexeddb/IDBValue.h:

(WebCore::IDBValue::blobURLs const):
(WebCore::IDBValue::encode const):
(WebCore::IDBValue::decode):
(WebCore::IDBValue::sessionID const): Deleted.

  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::isolatedCopy):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::databaseIdentifier const):
(WebCore::IDBRequestData::decode):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::deserializeIDBValueToJSValue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::sessionID const): Deleted.

Location:
trunk/Source/WebCore
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r248526 r248527  
     12019-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
    1392019-08-12  Youenn Fablet  <youenn@apple.com>
    240
  • trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp

    r245258 r248527  
    12811281    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=157958 - Make this asynchronous after refactoring allows it.
    12821282    if (!isMainThread()) {
    1283         auto idbValue = value->writeBlobsToDiskForIndexedDBSynchronously();
     1283        auto idbValue = value->writeBlobsToDiskForIndexedDBSynchronously(scriptExecutionContext()->sessionID());
    12841284        if (idbValue.data().data())
    12851285            m_database->connectionProxy().putOrAdd(operation, key.get(), idbValue, overwriteMode);
     
    13001300    operation.setNextRequestCanGoToServer(false);
    13011301
    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 {
    13031303        ASSERT(&originThread() == &Thread::current());
    13041304        ASSERT(isMainThread());
  • trunk/Source/WebCore/Modules/indexeddb/IDBValue.cpp

    r248366 r248527  
    4242    , m_blobURLs(scriptValue.blobURLsIsolatedCopy())
    4343{
    44     if (scriptValue.sessionID().isValid())
    45         m_sessionID = scriptValue.sessionID();
    4644}
    4745
     
    5149}
    5250
    53 IDBValue::IDBValue(const SerializedScriptValue& scriptValue, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, const Vector<String>& blobFilePaths)
     51IDBValue::IDBValue(const SerializedScriptValue& scriptValue, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths)
    5452    : m_data(ThreadSafeDataBuffer::copyVector(scriptValue.data()))
    5553    , m_blobURLs(blobURLs)
     
    5755{
    5856    ASSERT(m_data.data());
    59     if (sessionID.isValid())
    60         m_sessionID = sessionID;
    6157}
    6258
    63 IDBValue::IDBValue(const ThreadSafeDataBuffer& value, Vector<String>&& blobURLs, const PAL::SessionID& sessionID, Vector<String>&& blobFilePaths)
     59IDBValue::IDBValue(const ThreadSafeDataBuffer& value, Vector<String>&& blobURLs, Vector<String>&& blobFilePaths)
    6460    : m_data(value)
    6561    , m_blobURLs(WTFMove(blobURLs))
    6662    , m_blobFilePaths(WTFMove(blobFilePaths))
    6763{
    68     if (sessionID.isValid())
    69         m_sessionID = sessionID;
    7064}
    7165
    72 IDBValue::IDBValue(const ThreadSafeDataBuffer& value, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, const Vector<String>& blobFilePaths)
     66IDBValue::IDBValue(const ThreadSafeDataBuffer& value, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths)
    7367    : m_data(value)
    7468    , m_blobURLs(blobURLs)
    7569    , m_blobFilePaths(blobFilePaths)
    7670{
    77     if (sessionID.isValid())
    78         m_sessionID = sessionID;
    7971}
    8072
     
    8577    m_data = other.m_data;
    8678    m_blobURLs = crossThreadCopy(other.m_blobURLs);
    87     m_sessionID = other.m_sessionID;
    8879    m_blobFilePaths = crossThreadCopy(other.m_blobFilePaths);
    8980}
  • trunk/Source/WebCore/Modules/indexeddb/IDBValue.h

    r248366 r248527  
    2929
    3030#include "ThreadSafeDataBuffer.h"
    31 #include <pal/SessionID.h>
    3231#include <wtf/text/WTFString.h>
    3332
     
    4241    IDBValue(const SerializedScriptValue&);
    4342    IDBValue(const ThreadSafeDataBuffer&);
    44     IDBValue(const SerializedScriptValue&, const Vector<String>& blobURLs, const PAL::SessionID&, const Vector<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&, const Vector<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);
    4746
    4847    void setAsIsolatedCopy(const IDBValue&);
     
    5150    const ThreadSafeDataBuffer& data() const { return m_data; }
    5251    const Vector<String>& blobURLs() const { return m_blobURLs; }
    53     PAL::SessionID sessionID() const;
    5452    const Vector<String>& blobFilePaths() const { return m_blobFilePaths; }
    5553
     
    6058    ThreadSafeDataBuffer m_data;
    6159    Vector<String> m_blobURLs;
    62     Optional<PAL::SessionID> m_sessionID;
    6360    Vector<String> m_blobFilePaths;
    6461};
    65 
    66 inline PAL::SessionID IDBValue::sessionID() const
    67 {
    68     // FIXME: We should assert m_sessionID is valid or remove m_sessionID.
    69     if (!m_sessionID)
    70         return { };
    71     return *m_sessionID;
    72 }
    7362
    7463template<class Encoder>
     
    7766    encoder << m_data;
    7867    encoder << m_blobURLs;
    79     encoder << m_sessionID;
    8068    encoder << m_blobFilePaths;
    8169}
     
    9179        return WTF::nullopt;
    9280
    93     if (!decoder.decode(result.m_sessionID))
    94         return WTF::nullopt;
    95 
    9681    if (!decoder.decode(result.m_blobFilePaths))
    9782        return WTF::nullopt;
  • trunk/Source/WebCore/Modules/indexeddb/server/MemoryIndexCursor.cpp

    r244436 r248527  
    7575        getResult = { m_currentKey, m_currentPrimaryKey };
    7676    else {
    77         IDBValue value = { m_index.objectStore().valueForKey(m_currentPrimaryKey), { }, { }, { } };
     77        IDBValue value = { m_index.objectStore().valueForKey(m_currentPrimaryKey), { }, { } };
    7878        getResult = { m_currentKey, m_currentPrimaryKey, WTFMove(value), m_index.objectStore().info().keyPath() };
    7979    }
  • trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp

    r247337 r248527  
    194194        data = { m_currentPositionKey, m_currentPositionKey };
    195195    else {
    196         IDBValue value = { m_objectStore.valueForKeyRange(m_currentPositionKey), { }, { }, { } };
     196        IDBValue value = { m_objectStore.valueForKeyRange(m_currentPositionKey), { }, { } };
    197197        data = { m_currentPositionKey, m_currentPositionKey, WTFMove(value), m_objectStore.info().keyPath() };
    198198    }
  • trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp

    r248526 r248527  
    20412041    auto* objectStoreInfo = infoForObjectStore(objectStoreID);
    20422042    ASSERT(objectStoreInfo);
    2043     resultValue = { keyData, { valueResultBuffer, WTFMove(blobURLs), m_sessionID, WTFMove(blobFilePaths) }, objectStoreInfo->keyPath()};
     2043    resultValue = { keyData, { valueResultBuffer, WTFMove(blobURLs), WTFMove(blobFilePaths) }, objectStoreInfo->keyPath()};
    20442044    return IDBError { };
    20452045}
     
    21602160                return error;
    21612161
    2162             result.addValue({ valueResultBuffer, WTFMove(blobURLs), m_sessionID, WTFMove(blobFilePaths) });
     2162            result.addValue({ valueResultBuffer, WTFMove(blobURLs), WTFMove(blobFilePaths) });
    21632163        }
    21642164
     
    23232323    auto* objectStoreInfo = infoForObjectStore(objectStoreID);
    23242324    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() };
    23262326    return IDBError { };
    23272327}
  • trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp

    r248377 r248527  
    465465
    466466        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);
    468468    } else {
    469469        if (!deserializeIDBKeyData(keyData.data(), keyData.size(), record.record.primaryKey)) {
  • trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp

    r246770 r248527  
    388388    state.vm().apiLock().lock();
    389389    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);
    391391    state.vm().apiLock().unlock();
    392392
  • trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp

    r248503 r248527  
    549549            WasmModuleArray& wasmModules,
    550550#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)
    552552    {
    553553        CloneSerializer serializer(exec, messagePorts, arrayBuffers, imageBitmaps,
     
    555555            wasmModules,
    556556#endif
    557             blobURLs, sessionID, out, context, sharedBuffers);
     557            blobURLs, out, context, sharedBuffers);
    558558        return serializer.serialize(value);
    559559    }
     
    582582            WasmModuleArray& wasmModules,
    583583#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)
    585585        : CloneBase(exec)
    586586        , m_buffer(out)
    587587        , m_blobURLs(blobURLs)
    588         , m_sessionID(sessionID)
    589588        , m_emptyIdentifier(Identifier::fromString(exec, emptyString()))
    590589        , m_context(context)
     
    10591058                Vector<uint8_t> serializedKey;
    10601059                Vector<String> dummyBlobURLs;
    1061                 PAL::SessionID dummySessionID;
    10621060                Vector<RefPtr<MessagePort>> dummyMessagePorts;
    10631061                Vector<RefPtr<JSC::ArrayBuffer>> dummyArrayBuffers;
     
    10701068                    dummyModules,
    10711069#endif
    1072                     dummyBlobURLs, dummySessionID, serializedKey, SerializationContext::Default, dummySharedBuffers);
     1070                    dummyBlobURLs, serializedKey, SerializationContext::Default, dummySharedBuffers);
    10731071                rawKeySerializer.write(key);
    10741072                Vector<uint8_t> wrappedKey;
     
    14691467    Vector<uint8_t>& m_buffer;
    14701468    Vector<String>& m_blobURLs;
    1471     PAL::SessionID m_sessionID;
    14721469    ObjectPool m_objectPool;
    14731470    ObjectPool m_transferredMessagePorts;
     
    17531750    }
    17541751
    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, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers
     1752    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
    17561753#if ENABLE(WEBASSEMBLY)
    17571754        , WasmModuleArray* wasmModules
     
    17611758        if (!buffer.size())
    17621759            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)
    17641761#if ENABLE(WEBASSEMBLY)
    17651762            , wasmModules
     
    18351832    }
    18361833
    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, const Vector<String> blobFilePaths, ArrayBufferContentsArray* sharedBuffers, Vector<std::pair<std::unique_ptr<ImageBuffer>, bool>>&& imageBuffers
     1834    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
    18381835#if ENABLE(WEBASSEMBLY)
    18391836        , WasmModuleArray* wasmModules
     
    18501847        , m_arrayBuffers(arrayBufferContents ? arrayBufferContents->size() : 0)
    18511848        , m_blobURLs(blobURLs)
    1852         , m_sessionID(sessionID)
    18531849        , m_blobFilePaths(blobFilePaths)
    18541850        , m_sharedBuffers(sharedBuffers)
     
    30603056    Vector<RefPtr<JSC::ArrayBuffer>> m_arrayBuffers;
    30613057    Vector<String> m_blobURLs;
    3062     PAL::SessionID m_sessionID;
    30633058    Vector<String> m_blobFilePaths;
    30643059    ArrayBufferContentsArray* m_sharedBuffers;
     
    32813276}
    32823277
    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>>&& imageBuffers
     3278SerializedScriptValue::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
    32843279#if ENABLE(WEBASSEMBLY)
    32853280        , std::unique_ptr<WasmModuleArray> wasmModulesArray
     
    32933288    , m_wasmModulesArray(WTFMove(wasmModulesArray))
    32943289#endif
    3295     , m_sessionID(sessionID)
    32963290{
    32973291    // Since this SerializedScriptValue is meant to be passed between threads, its String data members
     
    33763370    Vector<uint8_t> buffer;
    33773371    Vector<String> blobURLs;
    3378     PAL::SessionID sessionID;
    33793372    Vector<RefPtr<MessagePort>> dummyMessagePorts;
    33803373    Vector<RefPtr<ImageBitmap>> dummyImageBitmaps;
     
    33883381        dummyModules,
    33893382#endif
    3390         blobURLs, sessionID, buffer, SerializationContext::Default, dummySharedBuffers);
     3383        blobURLs, buffer, SerializationContext::Default, dummySharedBuffers);
    33913384
    33923385#if ENABLE(WEBASSEMBLY)
     
    34003393        return nullptr;
    34013394
    3402     return adoptRef(*new SerializedScriptValue(WTFMove(buffer), blobURLs, sessionID, nullptr, nullptr, { }
     3395    return adoptRef(*new SerializedScriptValue(WTFMove(buffer), blobURLs, nullptr, nullptr, { }
    34033396#if ENABLE(WEBASSEMBLY)
    34043397        , nullptr
     
    34563449    Vector<uint8_t> buffer;
    34573450    Vector<String> blobURLs;
    3458     PAL::SessionID sessionID;
    34593451#if ENABLE(WEBASSEMBLY)
    34603452    WasmModuleArray wasmModules;
     
    34653457        wasmModules,
    34663458#endif
    3467         blobURLs, sessionID, buffer, context, *sharedBuffers);
     3459        blobURLs, buffer, context, *sharedBuffers);
    34683460
    34693461    if (code != SerializationReturnCode::SuccessfullyCompleted)
     
    34763468    auto imageBuffers = ImageBitmap::detachBitmaps(WTFMove(imageBitmaps));
    34773469
    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)
    34793471#if ENABLE(WEBASSEMBLY)
    34803472                , std::make_unique<WasmModuleArray>(wasmModules)
     
    35243516    Vector<String> dummyBlobs;
    35253517    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);
    35283519}
    35293520
    3530 JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, const Vector<String>& blobURLs, const PAL::SessionID& sessionID, const Vector<String>& blobFilePaths, SerializationErrorMode throwExceptions)
     3521JSValue SerializedScriptValue::deserialize(ExecState& exec, JSGlobalObject* globalObject, const Vector<RefPtr<MessagePort>>& messagePorts, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths, SerializationErrorMode throwExceptions)
    35313522{
    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()
    35333524#if ENABLE(WEBASSEMBLY)
    35343525        , m_wasmModulesArray.get()
     
    35793570}
    35803571
    3581 void SerializedScriptValue::writeBlobsToDiskForIndexedDB(CompletionHandler<void(IDBValue&&)>&& completionHandler)
     3572void SerializedScriptValue::writeBlobsToDiskForIndexedDB(PAL::SessionID, CompletionHandler<void(IDBValue&&)>&& completionHandler)
    35823573{
    35833574    ASSERT(isMainThread());
    35843575    ASSERT(hasBlobURLs());
    35853576
    3586     // FIXME: Add m_sessionID as a parameter here.
     3577    // FIXME: Get the right blob registry from the given sessionID.
    35873578    blobRegistry().writeBlobsToTemporaryFiles(m_blobURLs, [completionHandler = WTFMove(completionHandler), this, protectedThis = makeRef(*this)] (auto&& blobFilePaths) mutable {
    35883579        ASSERT(isMainThread());
     
    35973588        ASSERT(m_blobURLs.size() == blobFilePaths.size());
    35983589       
    3599         completionHandler({ *this, m_blobURLs, m_sessionID, blobFilePaths });
     3590        completionHandler({ *this, m_blobURLs, blobFilePaths });
    36003591    });
    36013592}
    36023593
    3603 IDBValue SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously()
     3594IDBValue SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously(PAL::SessionID sessionID)
    36043595{
    36053596    ASSERT(!isMainThread());
     
    36103601    lock.lock();
    36113602
    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) {
    36143605            ASSERT(isMainThread());
    36153606            valuePtr->setAsIsolatedCopy(result);
  • trunk/Source/WebCore/bindings/js/SerializedScriptValue.h

    r238632 r248527  
    7979    WEBCORE_EXPORT JSC::JSValue deserialize(JSC::ExecState&, JSC::JSGlobalObject*, SerializationErrorMode = SerializationErrorMode::Throwing);
    8080    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&, const Vector<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);
    8282
    8383    static uint32_t wireFormatVersion();
     
    9494#if ENABLE(INDEXED_DATABASE)
    9595    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);
    9998#endif // ENABLE(INDEXED_DATABASE)
    10099
     
    113112    WEBCORE_EXPORT SerializedScriptValue(Vector<unsigned char>&&);
    114113    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>>&& imageBuffers
     114    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
    116115#if ENABLE(WEBASSEMBLY)
    117116        , std::unique_ptr<WasmModuleArray>
     
    127126#endif
    128127    Vector<String> m_blobURLs;
    129     PAL::SessionID m_sessionID;
    130128};
    131129
Note: See TracChangeset for help on using the changeset viewer.