NetworkSessionCreationParameters.cpp [plain text]
#include "config.h"
#include "NetworkSessionCreationParameters.h"
#include "ArgumentCoders.h"
#if PLATFORM(COCOA)
#include "ArgumentCodersCF.h"
#endif
#if USE(CURL)
#include "WebCoreArgumentCoders.h"
#endif
namespace WebKit {
NetworkSessionCreationParameters NetworkSessionCreationParameters::privateSessionParameters(const PAL::SessionID& sessionID)
{
return { sessionID, { }, AllowsCellularAccess::Yes
#if PLATFORM(COCOA)
, { }, { }, { }, false, { }, { }, { }
#endif
#if USE(CURL)
, { }, { }
#endif
};
}
void NetworkSessionCreationParameters::encode(IPC::Encoder& encoder) const
{
encoder << sessionID;
encoder << boundInterfaceIdentifier;
encoder << allowsCellularAccess;
#if PLATFORM(COCOA)
IPC::encode(encoder, proxyConfiguration.get());
encoder << sourceApplicationBundleIdentifier;
encoder << sourceApplicationSecondaryIdentifier;
encoder << shouldLogCookieInformation;
encoder << loadThrottleLatency;
encoder << httpProxy;
encoder << httpsProxy;
#endif
#if USE(CURL)
encoder << cookiePersistentStorageFile;
encoder << proxySettings;
#endif
}
Optional<NetworkSessionCreationParameters> NetworkSessionCreationParameters::decode(IPC::Decoder& decoder)
{
PAL::SessionID sessionID;
if (!decoder.decode(sessionID))
return WTF::nullopt;
Optional<String> boundInterfaceIdentifier;
decoder >> boundInterfaceIdentifier;
if (!boundInterfaceIdentifier)
return WTF::nullopt;
Optional<AllowsCellularAccess> allowsCellularAccess;
decoder >> allowsCellularAccess;
if (!allowsCellularAccess)
return WTF::nullopt;
#if PLATFORM(COCOA)
RetainPtr<CFDictionaryRef> proxyConfiguration;
if (!IPC::decode(decoder, proxyConfiguration))
return WTF::nullopt;
Optional<String> sourceApplicationBundleIdentifier;
decoder >> sourceApplicationBundleIdentifier;
if (!sourceApplicationBundleIdentifier)
return WTF::nullopt;
Optional<String> sourceApplicationSecondaryIdentifier;
decoder >> sourceApplicationSecondaryIdentifier;
if (!sourceApplicationSecondaryIdentifier)
return WTF::nullopt;
Optional<bool> shouldLogCookieInformation;
decoder >> shouldLogCookieInformation;
if (!shouldLogCookieInformation)
return WTF::nullopt;
Optional<Seconds> loadThrottleLatency;
decoder >> loadThrottleLatency;
if (!loadThrottleLatency)
return WTF::nullopt;
Optional<URL> httpProxy;
decoder >> httpProxy;
if (!httpProxy)
return WTF::nullopt;
Optional<URL> httpsProxy;
decoder >> httpsProxy;
if (!httpsProxy)
return WTF::nullopt;
#endif
#if USE(CURL)
Optional<String> cookiePersistentStorageFile;
decoder >> cookiePersistentStorageFile;
if (!cookiePersistentStorageFile)
return WTF::nullopt;
Optional<WebCore::CurlProxySettings> proxySettings;
decoder >> proxySettings;
if (!proxySettings)
return WTF::nullopt;
#endif
return {{
sessionID
, WTFMove(*boundInterfaceIdentifier)
, WTFMove(*allowsCellularAccess)
#if PLATFORM(COCOA)
, WTFMove(proxyConfiguration)
, WTFMove(*sourceApplicationBundleIdentifier)
, WTFMove(*sourceApplicationSecondaryIdentifier)
, WTFMove(*shouldLogCookieInformation)
, WTFMove(*loadThrottleLatency)
, WTFMove(*httpProxy)
, WTFMove(*httpsProxy)
#endif
#if USE(CURL)
, WTFMove(*cookiePersistentStorageFile)
, WTFMove(*proxySettings)
#endif
}};
}
}