NetworkSessionCreationParameters.h [plain text]
#pragma once
#include "ResourceLoadStatisticsParameters.h"
#include <WebCore/NetworkStorageSession.h>
#include <pal/SessionID.h>
#include <wtf/Seconds.h>
#include <wtf/URL.h>
#if USE(SOUP)
#include "SoupCookiePersistentStorageType.h"
#endif
#if USE(CURL)
#include <WebCore/CurlProxySettings.h>
#endif
#if PLATFORM(COCOA)
extern "C" CFStringRef const WebKit2HTTPProxyDefaultsKey;
extern "C" CFStringRef const WebKit2HTTPSProxyDefaultsKey;
#endif
namespace WebKit {
enum class AllowsCellularAccess : bool { No, Yes };
struct NetworkSessionCreationParameters {
void encode(IPC::Encoder&) const;
static Optional<NetworkSessionCreationParameters> decode(IPC::Decoder&);
PAL::SessionID sessionID { PAL::SessionID::defaultSessionID() };
String boundInterfaceIdentifier;
AllowsCellularAccess allowsCellularAccess { AllowsCellularAccess::Yes };
#if PLATFORM(COCOA)
RetainPtr<CFDictionaryRef> proxyConfiguration;
String sourceApplicationBundleIdentifier;
String sourceApplicationSecondaryIdentifier;
bool shouldLogCookieInformation { false };
Seconds loadThrottleLatency;
URL httpProxy;
URL httpsProxy;
#endif
#if HAVE(CFNETWORK_ALTERNATIVE_SERVICE)
String alternativeServiceDirectory;
SandboxExtension::Handle alternativeServiceDirectoryExtensionHandle;
bool http3Enabled { false };
#endif
#if USE(SOUP)
String cookiePersistentStoragePath;
SoupCookiePersistentStorageType cookiePersistentStorageType { SoupCookiePersistentStorageType::Text };
bool persistentCredentialStorageEnabled { true };
#endif
#if USE(CURL)
String cookiePersistentStorageFile;
WebCore::CurlProxySettings proxySettings;
#endif
bool deviceManagementRestrictionsEnabled { false };
bool allLoadsBlockedByDeviceManagementRestrictionsForTesting { false };
String networkCacheDirectory;
SandboxExtension::Handle networkCacheDirectoryExtensionHandle;
String dataConnectionServiceType;
bool fastServerTrustEvaluationEnabled { false };
bool networkCacheSpeculativeValidationEnabled { false };
bool shouldUseTestingNetworkSession { false };
bool staleWhileRevalidateEnabled { false };
unsigned testSpeedMultiplier { 1 };
bool suppressesConnectionTerminationOnSystemChange { false };
bool allowsServerPreconnect { true };
bool requiresSecureHTTPSProxyConnection { false };
bool preventsSystemHTTPProxyAuthentication { false };
bool appHasRequestedCrossWebsiteTrackingPermission { false };
ResourceLoadStatisticsParameters resourceLoadStatisticsParameters;
};
}