StorageProcessCreationParameters.cpp [plain text]
#include "config.h"
#include "StorageProcessCreationParameters.h"
#include "ArgumentCoders.h"
namespace WebKit {
StorageProcessCreationParameters::StorageProcessCreationParameters()
{
}
void StorageProcessCreationParameters::encode(IPC::Encoder& encoder) const
{
encoder << sessionID;
#if ENABLE(INDEXED_DATABASE)
encoder << indexedDatabaseDirectory << indexedDatabaseDirectoryExtensionHandle;
#endif
#if ENABLE(SERVICE_WORKER)
encoder << serviceWorkerRegistrationDirectory << serviceWorkerRegistrationDirectoryExtensionHandle << urlSchemesServiceWorkersCanHandle;
#endif
}
bool StorageProcessCreationParameters::decode(IPC::Decoder& decoder, StorageProcessCreationParameters& result)
{
if (!decoder.decode(result.sessionID))
return false;
#if ENABLE(INDEXED_DATABASE)
if (!decoder.decode(result.indexedDatabaseDirectory))
return false;
std::optional<SandboxExtension::Handle> indexedDatabaseDirectoryExtensionHandle;
decoder >> indexedDatabaseDirectoryExtensionHandle;
if (!indexedDatabaseDirectoryExtensionHandle)
return false;
result.indexedDatabaseDirectoryExtensionHandle = WTFMove(*indexedDatabaseDirectoryExtensionHandle);
#endif
#if ENABLE(SERVICE_WORKER)
if (!decoder.decode(result.serviceWorkerRegistrationDirectory))
return false;
std::optional<SandboxExtension::Handle> serviceWorkerRegistrationDirectoryExtensionHandle;
decoder >> serviceWorkerRegistrationDirectoryExtensionHandle;
if (!serviceWorkerRegistrationDirectoryExtensionHandle)
return false;
result.serviceWorkerRegistrationDirectoryExtensionHandle = WTFMove(*serviceWorkerRegistrationDirectoryExtensionHandle);
if (!decoder.decode(result.urlSchemesServiceWorkersCanHandle))
return false;
#endif
return true;
}
}