summaryrefslogtreecommitdiff
path: root/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/Shared/WebProcessCreationParameters.cpp')
-rw-r--r--Source/WebKit2/Shared/WebProcessCreationParameters.cpp245
1 files changed, 157 insertions, 88 deletions
diff --git a/Source/WebKit2/Shared/WebProcessCreationParameters.cpp b/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
index eb27b9c0f..7326e7cd2 100644
--- a/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
+++ b/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
+ * Copyright (C) 2010-2017 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,132 +26,172 @@
#include "config.h"
#include "WebProcessCreationParameters.h"
-#include "ArgumentCoders.h"
+#include "APIData.h"
+#if PLATFORM(COCOA)
+#include "ArgumentCodersCF.h"
+#endif
+#include "WebCoreArgumentCoders.h"
namespace WebKit {
WebProcessCreationParameters::WebProcessCreationParameters()
- : shouldTrackVisitedLinks(false)
- , shouldAlwaysUseComplexTextCodePath(false)
- , shouldUseFontSmoothing(true)
- , defaultRequestTimeoutInterval(INT_MAX)
-#if PLATFORM(MAC)
- , nsURLCacheMemoryCapacity(0)
- , nsURLCacheDiskCapacity(0)
- , shouldForceScreenFontSubstitution(false)
- , shouldEnableKerningAndLigaturesByDefault(false)
-#endif
-#if ENABLE(NETWORK_PROCESS)
- , usesNetworkProcess(false)
-#endif
- , memoryCacheDisabled(false)
{
}
-void WebProcessCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
+WebProcessCreationParameters::~WebProcessCreationParameters()
+{
+}
+
+void WebProcessCreationParameters::encode(IPC::Encoder& encoder) const
{
encoder << injectedBundlePath;
encoder << injectedBundlePathExtensionHandle;
+ encoder << initializationUserData;
encoder << applicationCacheDirectory;
+ encoder << applicationCacheFlatFileSubdirectoryName;
encoder << applicationCacheDirectoryExtensionHandle;
- encoder << databaseDirectory;
- encoder << databaseDirectoryExtensionHandle;
- encoder << localStorageDirectory;
- encoder << localStorageDirectoryExtensionHandle;
- encoder << diskCacheDirectory;
- encoder << diskCacheDirectoryExtensionHandle;
- encoder << cookieStorageDirectory;
+ encoder << webSQLDatabaseDirectory;
+ encoder << webSQLDatabaseDirectoryExtensionHandle;
+ encoder << mediaCacheDirectory;
+ encoder << mediaCacheDirectoryExtensionHandle;
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
+ encoder << uiProcessCookieStorageIdentifier;
+#endif
+#if PLATFORM(IOS)
encoder << cookieStorageDirectoryExtensionHandle;
+ encoder << containerCachesDirectoryExtensionHandle;
+ encoder << containerTemporaryDirectoryExtensionHandle;
+#endif
+ encoder << mediaKeyStorageDirectory;
+ encoder << mediaKeyStorageDirectoryExtensionHandle;
+#if ENABLE(MEDIA_STREAM)
+ encoder << audioCaptureExtensionHandle;
+#endif
encoder << shouldUseTestingNetworkSession;
- encoder << urlSchemesRegistererdAsEmptyDocument;
+ encoder << urlSchemesRegisteredAsEmptyDocument;
encoder << urlSchemesRegisteredAsSecure;
+ encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy;
encoder << urlSchemesForWhichDomainRelaxationIsForbidden;
encoder << urlSchemesRegisteredAsLocal;
encoder << urlSchemesRegisteredAsNoAccess;
encoder << urlSchemesRegisteredAsDisplayIsolated;
encoder << urlSchemesRegisteredAsCORSEnabled;
-#if ENABLE(CUSTOM_PROTOCOLS)
- encoder << urlSchemesRegisteredForCustomProtocols;
-#endif
-#if USE(SOUP)
-#if !ENABLE(CUSTOM_PROTOCOLS)
- encoder << urlSchemesRegistered;
-#endif
- encoder << cookiePersistentStoragePath;
- encoder << cookiePersistentStorageType;
- encoder.encodeEnum(cookieAcceptPolicy);
- encoder << ignoreTLSErrors;
-#endif
+ encoder << urlSchemesRegisteredAsAlwaysRevalidated;
+ encoder << urlSchemesRegisteredAsCachePartitioned;
encoder.encodeEnum(cacheModel);
- encoder << shouldTrackVisitedLinks;
encoder << shouldAlwaysUseComplexTextCodePath;
+ encoder << shouldEnableMemoryPressureReliefLogging;
+ encoder << shouldSuppressMemoryPressureHandler;
encoder << shouldUseFontSmoothing;
+ encoder << resourceLoadStatisticsEnabled;
+ encoder << fontWhitelist;
encoder << iconDatabaseEnabled;
encoder << terminationTimeout;
encoder << languages;
encoder << textCheckerState;
encoder << fullKeyboardAccessEnabled;
encoder << defaultRequestTimeoutInterval;
-#if PLATFORM(MAC) || USE(CFNETWORK)
+#if PLATFORM(COCOA) || USE(CFURLCONNECTION)
encoder << uiProcessBundleIdentifier;
#endif
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
encoder << presenterApplicationPid;
encoder << accessibilityEnhancedUserInterfaceEnabled;
- encoder << nsURLCacheMemoryCapacity;
- encoder << nsURLCacheDiskCapacity;
encoder << acceleratedCompositingPort;
encoder << uiProcessBundleResourcePath;
encoder << uiProcessBundleResourcePathExtensionHandle;
- encoder << shouldForceScreenFontSubstitution;
- encoder << shouldEnableKerningAndLigaturesByDefault;
+ encoder << shouldEnableJIT;
+ encoder << shouldEnableFTLJIT;
+ encoder << !!bundleParameterData;
+ if (bundleParameterData)
+ encoder << bundleParameterData->dataReference();
#endif
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
encoder << notificationPermissions;
#endif
-#if ENABLE(NETWORK_PROCESS)
- encoder << usesNetworkProcess;
-#endif
-
encoder << plugInAutoStartOriginHashes;
encoder << plugInAutoStartOrigins;
encoder << memoryCacheDisabled;
+
+#if ENABLE(SERVICE_CONTROLS)
+ encoder << hasImageServices;
+ encoder << hasSelectionServices;
+ encoder << hasRichContentServices;
+#endif
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+ encoder << pluginLoadClientPolicies;
+#endif
+
+#if TARGET_OS_IPHONE || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+ IPC::encode(encoder, networkATSContext.get());
+#endif
+
+#if OS(LINUX)
+ encoder << memoryPressureMonitorHandle;
+#endif
+
+#if PLATFORM(WAYLAND)
+ encoder << waylandCompositorDisplayName;
+#endif
+
+#if USE(SOUP)
+ encoder << proxySettings;
+#endif
}
-bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, WebProcessCreationParameters& parameters)
+bool WebProcessCreationParameters::decode(IPC::Decoder& decoder, WebProcessCreationParameters& parameters)
{
if (!decoder.decode(parameters.injectedBundlePath))
return false;
if (!decoder.decode(parameters.injectedBundlePathExtensionHandle))
return false;
+ if (!decoder.decode(parameters.initializationUserData))
+ return false;
if (!decoder.decode(parameters.applicationCacheDirectory))
return false;
+ if (!decoder.decode(parameters.applicationCacheFlatFileSubdirectoryName))
+ return false;
if (!decoder.decode(parameters.applicationCacheDirectoryExtensionHandle))
return false;
- if (!decoder.decode(parameters.databaseDirectory))
+ if (!decoder.decode(parameters.webSQLDatabaseDirectory))
return false;
- if (!decoder.decode(parameters.databaseDirectoryExtensionHandle))
+ if (!decoder.decode(parameters.webSQLDatabaseDirectoryExtensionHandle))
return false;
- if (!decoder.decode(parameters.localStorageDirectory))
+ if (!decoder.decode(parameters.mediaCacheDirectory))
return false;
- if (!decoder.decode(parameters.localStorageDirectoryExtensionHandle))
+ if (!decoder.decode(parameters.mediaCacheDirectoryExtensionHandle))
return false;
- if (!decoder.decode(parameters.diskCacheDirectory))
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
+ if (!decoder.decode(parameters.uiProcessCookieStorageIdentifier))
return false;
- if (!decoder.decode(parameters.diskCacheDirectoryExtensionHandle))
+#endif
+#if PLATFORM(IOS)
+ if (!decoder.decode(parameters.cookieStorageDirectoryExtensionHandle))
return false;
- if (!decoder.decode(parameters.cookieStorageDirectory))
+ if (!decoder.decode(parameters.containerCachesDirectoryExtensionHandle))
return false;
- if (!decoder.decode(parameters.cookieStorageDirectoryExtensionHandle))
+ if (!decoder.decode(parameters.containerTemporaryDirectoryExtensionHandle))
+ return false;
+#endif
+ if (!decoder.decode(parameters.mediaKeyStorageDirectory))
+ return false;
+ if (!decoder.decode(parameters.mediaKeyStorageDirectoryExtensionHandle))
+ return false;
+#if ENABLE(MEDIA_STREAM)
+ if (!decoder.decode(parameters.audioCaptureExtensionHandle))
return false;
+#endif
if (!decoder.decode(parameters.shouldUseTestingNetworkSession))
return false;
- if (!decoder.decode(parameters.urlSchemesRegistererdAsEmptyDocument))
+ if (!decoder.decode(parameters.urlSchemesRegisteredAsEmptyDocument))
return false;
if (!decoder.decode(parameters.urlSchemesRegisteredAsSecure))
return false;
+ if (!decoder.decode(parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy))
+ return false;
if (!decoder.decode(parameters.urlSchemesForWhichDomainRelaxationIsForbidden))
return false;
if (!decoder.decode(parameters.urlSchemesRegisteredAsLocal))
@@ -162,31 +202,23 @@ bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, WebProc
return false;
if (!decoder.decode(parameters.urlSchemesRegisteredAsCORSEnabled))
return false;
-#if ENABLE(CUSTOM_PROTOCOLS)
- if (!decoder.decode(parameters.urlSchemesRegisteredForCustomProtocols))
- return false;
-#endif
-#if USE(SOUP)
-#if !ENABLE(CUSTOM_PROTOCOLS)
- if (!decoder.decode(parameters.urlSchemesRegistered))
+ if (!decoder.decode(parameters.urlSchemesRegisteredAsAlwaysRevalidated))
return false;
-#endif
- if (!decoder.decode(parameters.cookiePersistentStoragePath))
+ if (!decoder.decode(parameters.urlSchemesRegisteredAsCachePartitioned))
return false;
- if (!decoder.decode(parameters.cookiePersistentStorageType))
+ if (!decoder.decodeEnum(parameters.cacheModel))
return false;
- if (!decoder.decodeEnum(parameters.cookieAcceptPolicy))
+ if (!decoder.decode(parameters.shouldAlwaysUseComplexTextCodePath))
return false;
- if (!decoder.decode(parameters.ignoreTLSErrors))
+ if (!decoder.decode(parameters.shouldEnableMemoryPressureReliefLogging))
return false;
-#endif
- if (!decoder.decodeEnum(parameters.cacheModel))
+ if (!decoder.decode(parameters.shouldSuppressMemoryPressureHandler))
return false;
- if (!decoder.decode(parameters.shouldTrackVisitedLinks))
+ if (!decoder.decode(parameters.shouldUseFontSmoothing))
return false;
- if (!decoder.decode(parameters.shouldAlwaysUseComplexTextCodePath))
+ if (!decoder.decode(parameters.resourceLoadStatisticsEnabled))
return false;
- if (!decoder.decode(parameters.shouldUseFontSmoothing))
+ if (!decoder.decode(parameters.fontWhitelist))
return false;
if (!decoder.decode(parameters.iconDatabaseEnabled))
return false;
@@ -200,39 +232,42 @@ bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, WebProc
return false;
if (!decoder.decode(parameters.defaultRequestTimeoutInterval))
return false;
-#if PLATFORM(MAC) || USE(CFNETWORK)
+#if PLATFORM(COCOA) || USE(CFURLCONNECTION)
if (!decoder.decode(parameters.uiProcessBundleIdentifier))
return false;
#endif
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
if (!decoder.decode(parameters.presenterApplicationPid))
return false;
if (!decoder.decode(parameters.accessibilityEnhancedUserInterfaceEnabled))
return false;
- if (!decoder.decode(parameters.nsURLCacheMemoryCapacity))
- return false;
- if (!decoder.decode(parameters.nsURLCacheDiskCapacity))
- return false;
if (!decoder.decode(parameters.acceleratedCompositingPort))
return false;
if (!decoder.decode(parameters.uiProcessBundleResourcePath))
return false;
if (!decoder.decode(parameters.uiProcessBundleResourcePathExtensionHandle))
return false;
- if (!decoder.decode(parameters.shouldForceScreenFontSubstitution))
+ if (!decoder.decode(parameters.shouldEnableJIT))
return false;
- if (!decoder.decode(parameters.shouldEnableKerningAndLigaturesByDefault))
+ if (!decoder.decode(parameters.shouldEnableFTLJIT))
return false;
-#endif
-#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
- if (!decoder.decode(parameters.notificationPermissions))
+ bool hasBundleParameterData;
+ if (!decoder.decode(hasBundleParameterData))
return false;
+
+ if (hasBundleParameterData) {
+ IPC::DataReference dataReference;
+ if (!decoder.decode(dataReference))
+ return false;
+
+ parameters.bundleParameterData = API::Data::create(dataReference.data(), dataReference.size());
+ }
#endif
-#if ENABLE(NETWORK_PROCESS)
- if (!decoder.decode(parameters.usesNetworkProcess))
+#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
+ if (!decoder.decode(parameters.notificationPermissions))
return false;
#endif
@@ -243,6 +278,40 @@ bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder& decoder, WebProc
if (!decoder.decode(parameters.memoryCacheDisabled))
return false;
+#if ENABLE(SERVICE_CONTROLS)
+ if (!decoder.decode(parameters.hasImageServices))
+ return false;
+ if (!decoder.decode(parameters.hasSelectionServices))
+ return false;
+ if (!decoder.decode(parameters.hasRichContentServices))
+ return false;
+#endif
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+ if (!decoder.decode(parameters.pluginLoadClientPolicies))
+ return false;
+#endif
+
+#if TARGET_OS_IPHONE || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
+ if (!IPC::decode(decoder, parameters.networkATSContext))
+ return false;
+#endif
+
+#if OS(LINUX)
+ if (!decoder.decode(parameters.memoryPressureMonitorHandle))
+ return false;
+#endif
+
+#if PLATFORM(WAYLAND)
+ if (!decoder.decode(parameters.waylandCompositorDisplayName))
+ return false;
+#endif
+
+#if USE(SOUP)
+ if (!decoder.decode(parameters.proxySettings))
+ return false;
+#endif
+
return true;
}