WebsiteDataStoreParameters.cpp [plain text]
#include "config.h"
#include "WebsiteDataStoreParameters.h"
#include "WebCoreArgumentCoders.h"
#include "WebsiteDataStore.h"
namespace WebKit {
WebsiteDataStoreParameters::~WebsiteDataStoreParameters()
{
}
void WebsiteDataStoreParameters::encode(IPC::Encoder& encoder) const
{
encoder << networkSessionParameters;
encoder << uiProcessCookieStorageIdentifier;
encoder << cookieStoragePathExtensionHandle;
encoder << pendingCookies;
}
std::optional<WebsiteDataStoreParameters> WebsiteDataStoreParameters::decode(IPC::Decoder& decoder)
{
std::optional<NetworkSessionCreationParameters> networkSessionParameters;
decoder >> networkSessionParameters;
if (!networkSessionParameters)
return std::nullopt;
std::optional<Vector<uint8_t>> uiProcessCookieStorageIdentifier;
decoder >> uiProcessCookieStorageIdentifier;
if (!uiProcessCookieStorageIdentifier)
return std::nullopt;
std::optional<SandboxExtension::Handle> cookieStoragePathExtensionHandle;
decoder >> cookieStoragePathExtensionHandle;
if (!cookieStoragePathExtensionHandle)
return std::nullopt;
std::optional<Vector<WebCore::Cookie>> pendingCookies;
decoder >> pendingCookies;
if (!pendingCookies)
return std::nullopt;
return {{ WTFMove(*uiProcessCookieStorageIdentifier), WTFMove(*cookieStoragePathExtensionHandle), WTFMove(*pendingCookies), WTFMove(*networkSessionParameters)}};
}
WebsiteDataStoreParameters WebsiteDataStoreParameters::privateSessionParameters(PAL::SessionID sessionID)
{
ASSERT(sessionID.isEphemeral());
return { { }, { }, { }, { sessionID, { }, AllowsCellularAccess::Yes
#if PLATFORM(COCOA)
, nullptr
#endif
}};
}
}