Title: [178685] trunk/Source/WebKit2
Revision
178685
Author
wei...@apple.com
Date
2015-01-19 17:35:47 -0800 (Mon, 19 Jan 2015)

Log Message

Merge API::ProcessPoolConfiguration and _WKProcessPoolConfiguration
https://bugs.webkit.org/show_bug.cgi?id=140601

Reviewed by Anders Carlsson.

- Converts _WKProcessPoolConfiguration to be backed via API::ProcessPoolConfiguration.
- Expands API::ProcessPoolConfiguration to add all the parameters necessary to fully
  initialize a WebProcessPool. This allows -[WKProcessPool _initWithConfiguration:] to
  be a simple pass through initializer, which in turn allows us to consider WebProcessPools
  created on the C++ and Objective-C sides as equivalent.
- Makes WebProcessPool own the reference to the API::ProcessPoolConfiguration (rather than
  the WKProcessPool wrapper).

* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Create the API::ProcessPoolConfigurations using [_WKProcessPoolConfiguration alloc] as its 
storage..

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::create):
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::~ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
(API::ProcessPoolConfiguration::webProcessPoolConfiguration): Deleted.
* UIProcess/API/APIProcessPoolConfiguration.h:
Add the remaining initialization parameters and add a convenience create function
for configuring legacy WebProcessPools (for use by the C-SPI).

* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Expose helper for getting the website data directories for use in the ProcessPoolConfiguration.

* UIProcess/API/C/WKContext.cpp:
(WKContextCreate):
(WKContextCreateWithInjectedBundlePath):
(WKContextCreateWithConfiguration):
Use ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.

* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCreate):
Update for ProcessPoolConfiguration::create() returning a Ref. Note, this function
was not changed to call ProcessPoolConfiguration::createWithLegacyOptions() since
it has not been around long enough to warrant it.

* UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup initWithInjectedBundleURL:]):
Use ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool description]):
Change to pull the configuration from the underlying API::Object.

(-[WKProcessPool _configuration]):
Change to pull the configuration from the underlying API::Object and call the new
copy() helper on it.
        
(-[WKProcessPool _initWithConfiguration:]):
Convert to be a simple pass through to API::Object::constructInWrapper.

(websiteDataDirectoryURL): Deleted.
Moved to APIWebsiteDataStore.h

* UIProcess/API/Cocoa/WKProcessPoolInternal.h:
Removes the _WKProcessPoolConfiguration member, now that it is stored on the WebProcessPool.
        
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration init]):
(-[_WKProcessPoolConfiguration dealloc]):
Added to support API::Object bridging.

(-[_WKProcessPoolConfiguration injectedBundleURL]):
(-[_WKProcessPoolConfiguration setInjectedBundleURL:]):
Convert to getting the URL from the underlying object. Moved the exception
that used to be on creation of the WKProcessPool.

(-[_WKProcessPoolConfiguration maximumProcessCount]):
(-[_WKProcessPoolConfiguration setMaximumProcessCount:]):
Convert to getting the count from the underlying object.

(-[_WKProcessPoolConfiguration cachePartitionedURLSchemes]):
Convert to constructing the NSArray on demand from the underlying Vector.

(-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):
Converts the NSArray to a Vector rather than storing the array.

* UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h: Added.
(API::wrapper):
Add boilerplate for API::Object bridging.

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
Update to use API::ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.


* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::inspectorProcessPool):
Update to call API::ProcessPoolConfiguration::createWithLegacyOptions().

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::create):
(WebKit::websiteDataStoreConfiguration):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::applyPlatformSpecificConfigurationDefaults): Deleted.
This functionality was moved to the constructor of the API::ProcessPoolConfiguration.
* UIProcess/WebProcessPool.h:
Changed to take (and store) a API::ProcessPoolConfiguration rather than the WebProcessPoolConfiguration.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
Renamed to make it clear these were the legacy locations for these directories.

* WebKit2.xcodeproj/project.pbxproj:
Added new files.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (178684 => 178685)


--- trunk/Source/WebKit2/ChangeLog	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/ChangeLog	2015-01-20 01:35:47 UTC (rev 178685)
@@ -1,3 +1,149 @@
+2015-01-18  Sam Weinig  <s...@webkit.org>
+
+        Merge API::ProcessPoolConfiguration and _WKProcessPoolConfiguration
+        https://bugs.webkit.org/show_bug.cgi?id=140601
+
+        Reviewed by Anders Carlsson.
+
+        - Converts _WKProcessPoolConfiguration to be backed via API::ProcessPoolConfiguration.
+        - Expands API::ProcessPoolConfiguration to add all the parameters necessary to fully
+          initialize a WebProcessPool. This allows -[WKProcessPool _initWithConfiguration:] to
+          be a simple pass through initializer, which in turn allows us to consider WebProcessPools
+          created on the C++ and Objective-C sides as equivalent.
+        - Makes WebProcessPool own the reference to the API::ProcessPoolConfiguration (rather than
+          the WKProcessPool wrapper).
+
+        * Shared/Cocoa/APIObject.mm:
+        (API::Object::newObject):
+        Create the API::ProcessPoolConfigurations using [_WKProcessPoolConfiguration alloc] as its 
+        storage..
+
+        * UIProcess/API/APIProcessPoolConfiguration.cpp:
+        (API::ProcessPoolConfiguration::create):
+        (API::ProcessPoolConfiguration::createWithLegacyOptions):
+        (API::ProcessPoolConfiguration::ProcessPoolConfiguration):
+        (API::ProcessPoolConfiguration::~ProcessPoolConfiguration):
+        (API::ProcessPoolConfiguration::copy):
+        (API::ProcessPoolConfiguration::webProcessPoolConfiguration): Deleted.
+        * UIProcess/API/APIProcessPoolConfiguration.h:
+        Add the remaining initialization parameters and add a convenience create function
+        for configuring legacy WebProcessPools (for use by the C-SPI).
+
+        * UIProcess/API/APIWebsiteDataStore.cpp:
+        (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
+        * UIProcess/API/APIWebsiteDataStore.h:
+        * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
+        (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
+        (API::WebsiteDataStore::defaultDataStoreConfiguration):
+        Expose helper for getting the website data directories for use in the ProcessPoolConfiguration.
+
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextCreate):
+        (WKContextCreateWithInjectedBundlePath):
+        (WKContextCreateWithConfiguration):
+        Use ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.
+
+        * UIProcess/API/C/WKContextConfigurationRef.cpp:
+        (WKContextConfigurationCreate):
+        Update for ProcessPoolConfiguration::create() returning a Ref. Note, this function
+        was not changed to call ProcessPoolConfiguration::createWithLegacyOptions() since
+        it has not been around long enough to warrant it.
+
+        * UIProcess/API/Cocoa/WKProcessGroup.mm:
+        (-[WKProcessGroup initWithInjectedBundleURL:]):
+        Use ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.
+
+        * UIProcess/API/Cocoa/WKProcessPool.mm:
+        (-[WKProcessPool description]):
+        Change to pull the configuration from the underlying API::Object.
+
+        (-[WKProcessPool _configuration]):
+        Change to pull the configuration from the underlying API::Object and call the new
+        copy() helper on it.
+        
+        (-[WKProcessPool _initWithConfiguration:]):
+        Convert to be a simple pass through to API::Object::constructInWrapper.
+
+        (websiteDataDirectoryURL): Deleted.
+        Moved to APIWebsiteDataStore.h
+
+        * UIProcess/API/Cocoa/WKProcessPoolInternal.h:
+        Removes the _WKProcessPoolConfiguration member, now that it is stored on the WebProcessPool.
+        
+        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+        (-[_WKProcessPoolConfiguration init]):
+        (-[_WKProcessPoolConfiguration dealloc]):
+        Added to support API::Object bridging.
+
+        (-[_WKProcessPoolConfiguration injectedBundleURL]):
+        (-[_WKProcessPoolConfiguration setInjectedBundleURL:]):
+        Convert to getting the URL from the underlying object. Moved the exception
+        that used to be on creation of the WKProcessPool.
+
+        (-[_WKProcessPoolConfiguration maximumProcessCount]):
+        (-[_WKProcessPoolConfiguration setMaximumProcessCount:]):
+        Convert to getting the count from the underlying object.
+
+        (-[_WKProcessPoolConfiguration cachePartitionedURLSchemes]):
+        Convert to constructing the NSArray on demand from the underlying Vector.
+
+        (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):
+        Converts the NSArray to a Vector rather than storing the array.
+
+        * UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h: Added.
+        (API::wrapper):
+        Add boilerplate for API::Object bridging.
+
+        * UIProcess/API/gtk/WebKitWebContext.cpp:
+        (webkitWebContextConstructed):
+        Update to use API::ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.
+
+
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::WebInspectorProxy::inspectorProcessPool):
+        Update to call API::ProcessPoolConfiguration::createWithLegacyOptions().
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::create):
+        (WebKit::websiteDataStoreConfiguration):
+        (WebKit::WebProcessPool::WebProcessPool):
+        (WebKit::WebProcessPool::applyPlatformSpecificConfigurationDefaults): Deleted.
+        This functionality was moved to the constructor of the API::ProcessPoolConfiguration.
+        * UIProcess/WebProcessPool.h:
+        Changed to take (and store) a API::ProcessPoolConfiguration rather than the WebProcessPoolConfiguration.
+
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
+        (WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
+        * UIProcess/efl/WebContextEfl.cpp:
+        (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
+        (WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
+        * UIProcess/gtk/WebProcessPoolGtk.cpp:
+        (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
+        (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
+        (WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
+        (WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
+        Renamed to make it clear these were the legacy locations for these directories.
+
+        * WebKit2.xcodeproj/project.pbxproj:
+        Added new files.
+
 2015-01-19  Beth Dakin  <bda...@apple.com>
 
          Speculative build fix.

Modified: trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm (178684 => 178685)


--- trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm	2015-01-20 01:35:47 UTC (rev 178685)
@@ -55,6 +55,7 @@
 #import "WKWebProcessPlugInScriptWorldInternal.h"
 #import "_WKDownloadInternal.h"
 #import "_WKFrameHandleInternal.h"
+#import "_WKProcessPoolConfigurationInternal.h"
 #import "_WKWebsiteDataStoreInternal.h"
 #import <objc/objc-auto.h>
 
@@ -111,6 +112,10 @@
         wrapper = [WKProcessPool alloc];
         break;
 
+    case Type::ProcessPoolConfiguration:
+        wrapper = [_WKProcessPoolConfiguration alloc];
+        break;
+
     case Type::Data:
         wrapper = [WKNSData alloc];
         break;

Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -26,11 +26,36 @@
 #include "config.h"
 #include "APIProcessPoolConfiguration.h"
 
+#include "APIWebsiteDataStore.h"
 #include "WebProcessPool.h"
 
 namespace API {
 
+Ref<ProcessPoolConfiguration> ProcessPoolConfiguration::create()
+{
+    return adoptRef(*new ProcessPoolConfiguration);
+}
+
+Ref<ProcessPoolConfiguration> ProcessPoolConfiguration::createWithLegacyOptions()
+{
+    auto configuration = ProcessPoolConfiguration::create();
+
+    configuration->m_processModel = WebKit::ProcessModelSharedSecondaryProcess;
+    configuration->m_useNetworkProcess = false;
+    configuration->m_cacheModel = WebKit::CacheModelDocumentViewer;
+    configuration->m_localStorageDirectory = WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory();
+    configuration->m_webSQLDatabaseDirectory = WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory();
+    configuration->m_indexedDBDatabaseDirectory = WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory();
+    configuration->m_mediaKeysStorageDirectory = WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory();
+
+    return configuration;
+}
+
 ProcessPoolConfiguration::ProcessPoolConfiguration()
+    : m_indexedDBDatabaseDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("IndexedDB"))
+    , m_localStorageDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("LocalStorage"))
+    , m_webSQLDatabaseDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("WebSQL"))
+    , m_mediaKeysStorageDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("MediaKeys"))
 {
 }
 
@@ -38,19 +63,22 @@
 {
 }
 
-WebKit::WebProcessPoolConfiguration ProcessPoolConfiguration::webProcessPoolConfiguration() const
+Ref<ProcessPoolConfiguration> ProcessPoolConfiguration::copy()
 {
-    WebKit::WebProcessPoolConfiguration configuration;
+    auto copy = this->create();
 
-    configuration.indexedDBDatabaseDirectory = m_indexedDBDatabaseDirectory;
-    configuration.injectedBundlePath = m_injectedBundlePath;
-    configuration.localStorageDirectory = m_localStorageDirectory;
-    configuration.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
-    configuration.mediaKeysStorageDirectory = m_mediaKeysStorageDirectory;
-
-    WebKit::WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
-
-    return configuration;
+    copy->m_processModel = this->m_processModel;
+    copy->m_useNetworkProcess = this->m_useNetworkProcess;
+    copy->m_maximumProcessCount = this->m_maximumProcessCount;
+    copy->m_cacheModel = this->m_cacheModel;
+    copy->m_indexedDBDatabaseDirectory = this->m_indexedDBDatabaseDirectory;
+    copy->m_injectedBundlePath = this->m_injectedBundlePath;
+    copy->m_localStorageDirectory = this->m_localStorageDirectory;
+    copy->m_webSQLDatabaseDirectory = this->m_webSQLDatabaseDirectory;
+    copy->m_mediaKeysStorageDirectory = this->m_mediaKeysStorageDirectory;
+    copy->m_cachePartitionedURLSchemes = this->m_cachePartitionedURLSchemes;
+    
+    return copy;
 }
 
 } // namespace API

Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h	2015-01-20 01:35:47 UTC (rev 178685)
@@ -27,47 +27,65 @@
 #define APIContextConfiguration_h
 
 #include "APIObject.h"
+#include "CacheModel.h"
+#include "ProcessModel.h"
+#include <wtf/Ref.h>
+#include <wtf/Vector.h>
 #include <wtf/text/WTFString.h>
 
-namespace WebKit {
-struct WebProcessPoolConfiguration;
-}
-
 namespace API {
 
-class ProcessPoolConfiguration : public ObjectImpl<Object::Type::ProcessPoolConfiguration> {
+class ProcessPoolConfiguration final : public ObjectImpl<Object::Type::ProcessPoolConfiguration> {
 public:
-    static PassRefPtr<ProcessPoolConfiguration> create()
-    {
-        return adoptRef(new ProcessPoolConfiguration);
-    }
+    static Ref<ProcessPoolConfiguration> create();
+    static Ref<ProcessPoolConfiguration> createWithLegacyOptions();
+    
+    explicit ProcessPoolConfiguration();
     virtual ~ProcessPoolConfiguration();
+    
+    Ref<ProcessPoolConfiguration> copy();
 
-    String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
-    void setIndexedDBDatabaseDirectory(const String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
+    WebKit::ProcessModel processModel() const { return m_processModel; }
+    void setProcessModel(WebKit::ProcessModel processModel) { m_processModel = processModel; } 
 
-    String injectedBundlePath() const { return m_injectedBundlePath; }
-    void setInjectedBundlePath(const String& injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
+    bool useNetworkProcess() const { return m_useNetworkProcess; }
+    void setUseNetworkProcess(bool useNetworkProcess) { m_useNetworkProcess = useNetworkProcess; } 
 
-    String localStorageDirectory() const { return m_localStorageDirectory; }
-    void setLocalStorageDirectory(const String& localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
+    unsigned maximumProcessCount() const { return m_maximumProcessCount; }
+    void setMaximumProcessCount(unsigned maximumProcessCount) { m_maximumProcessCount = maximumProcessCount; } 
 
-    String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
-    void setWebSQLDatabaseDirectory(const String& webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
+    WebKit::CacheModel cacheModel() const { return m_cacheModel; }
+    void setCacheModel(WebKit::CacheModel cacheModel) { m_cacheModel = cacheModel; } 
 
-    String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
-    void setMediaKeysStorageDirectory(const String& mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
+    WTF::String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
+    void setIndexedDBDatabaseDirectory(const WTF::String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
 
-    WebKit::WebProcessPoolConfiguration webProcessPoolConfiguration() const;
+    WTF::String injectedBundlePath() const { return m_injectedBundlePath; }
+    void setInjectedBundlePath(const WTF::String& injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
 
+    WTF::String localStorageDirectory() const { return m_localStorageDirectory; }
+    void setLocalStorageDirectory(const WTF::String& localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
+
+    WTF::String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
+    void setWebSQLDatabaseDirectory(const WTF::String& webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
+
+    WTF::String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
+    void setMediaKeysStorageDirectory(const WTF::String& mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
+
+    const Vector<WTF::String>& cachePartitionedURLSchemes() { return m_cachePartitionedURLSchemes; }
+    void setCachePartitionedURLSchemes(Vector<WTF::String>&& cachePartitionedURLSchemes) { m_cachePartitionedURLSchemes = WTF::move(cachePartitionedURLSchemes); }
+
 private:
-    ProcessPoolConfiguration();
-
-    String m_indexedDBDatabaseDirectory;
-    String m_injectedBundlePath;
-    String m_localStorageDirectory;
-    String m_webSQLDatabaseDirectory;
-    String m_mediaKeysStorageDirectory;
+    WebKit::ProcessModel m_processModel { WebKit::ProcessModelMultipleSecondaryProcesses };
+    bool m_useNetworkProcess { true };
+    unsigned m_maximumProcessCount { 0 };
+    WebKit::CacheModel m_cacheModel { WebKit::CacheModelPrimaryWebBrowser };
+    WTF::String m_injectedBundlePath;
+    WTF::String m_indexedDBDatabaseDirectory;
+    WTF::String m_localStorageDirectory;
+    WTF::String m_webSQLDatabaseDirectory;
+    WTF::String m_mediaKeysStorageDirectory;
+    Vector<WTF::String> m_cachePartitionedURLSchemes;
 };
 
 } // namespace API

Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -69,6 +69,12 @@
 
     return configuration;
 }
+
+String WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation(const String& directoryName)
+{
+    // FIXME: Implement.
+    return String();
+}
 #endif
 
 }

Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h	2015-01-20 01:35:47 UTC (rev 178685)
@@ -43,6 +43,8 @@
 
     WebKit::WebsiteDataStore& websiteDataStore() { return *m_websiteDataStore; }
 
+    static String websiteDataDirectoryFileSystemRepresentation(const String& directoryName);
+
 private:
     WebsiteDataStore(WebKit::WebsiteDataStore::Configuration);
     WebsiteDataStore();

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -78,20 +78,21 @@
 
 WKContextRef WKContextCreate()
 {
-    return WKContextCreateWithConfiguration(adoptWK(WKContextConfigurationCreate()).get());
+    auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+    return toAPI(&WebProcessPool::create(configuration).leakRef());
 }
 
 WKContextRef WKContextCreateWithInjectedBundlePath(WKStringRef pathRef)
 {
-    auto configuration = adoptWK(WKContextConfigurationCreate());
-    WKContextConfigurationSetInjectedBundlePath(configuration.get(), pathRef);
+    auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+    configuration->setInjectedBundlePath(toWTFString(pathRef));
 
-    return WKContextCreateWithConfiguration(configuration.get());
+    return toAPI(&WebProcessPool::create(configuration).leakRef());
 }
 
 WKContextRef WKContextCreateWithConfiguration(WKContextConfigurationRef configuration)
 {
-    return toAPI(WebProcessPool::create(toImpl(configuration)->webProcessPoolConfiguration()).leakRef());
+    return toAPI(&WebProcessPool::create(*toImpl(configuration)).leakRef());
 }
 
 void WKContextSetClient(WKContextRef contextRef, const WKContextClientBase* wkClient)

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -33,7 +33,7 @@
 
 WKContextConfigurationRef WKContextConfigurationCreate()
 {
-    return toAPI(API::ProcessPoolConfiguration::create().leakRef());
+    return toAPI(&API::ProcessPoolConfiguration::create().leakRef());
 }
 
 WKStringRef WKContextConfigurationCopyIndexedDBDatabaseDirectory(WKContextConfigurationRef configuration)

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm	2015-01-20 01:35:47 UTC (rev 178685)
@@ -26,17 +26,45 @@
 #include "config.h"
 #include "APIWebsiteDataStore.h"
 
-// FIXME: This function is currently in WKProcessPool. It should be moved to this file instead.
-NSURL *websiteDataDirectoryURL(NSString *directoryName);
+#include "SandboxUtilities.h"
 
 namespace API {
 
+String WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation(const String& directoryName)
+{
+    static dispatch_once_t onceToken;
+    static NSURL *websiteDataURL;
+
+    dispatch_once(&onceToken, ^{
+        NSURL *url = "" defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nullptr create:NO error:nullptr];
+        if (!url)
+            RELEASE_ASSERT_NOT_REACHED();
+
+        url = "" URLByAppendingPathComponent:@"WebKit" isDirectory:YES];
+
+        if (!WebKit::processHasContainer()) {
+            NSString *bundleIdentifier = [NSBundle mainBundle].bundleIdentifier;
+            if (!bundleIdentifier)
+                bundleIdentifier = [NSProcessInfo processInfo].processName;
+            url = "" URLByAppendingPathComponent:bundleIdentifier isDirectory:YES];
+        }
+
+        websiteDataURL = [[url URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES] retain];
+    });
+
+    NSURL *url = "" URLByAppendingPathComponent:directoryName isDirectory:YES];
+    if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nullptr])
+        LOG_ERROR("Failed to create directory %@", url);
+
+    return url.absoluteURL.path.fileSystemRepresentation;
+}
+
 WebKit::WebsiteDataStore::Configuration WebsiteDataStore::defaultDataStoreConfiguration()
 {
     // FIXME: Fill everything in.
     WebKit::WebsiteDataStore::Configuration configuration;
 
-    configuration.localStorageDirectory = websiteDataDirectoryURL(@"LocalStorage").absoluteURL.path.fileSystemRepresentation;
+    configuration.localStorageDirectory = websiteDataDirectoryFileSystemRepresentation("LocalStorage");
 
     return configuration;
 }

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm	2015-01-20 01:35:47 UTC (rev 178685)
@@ -29,6 +29,7 @@
 #if WK_API_ENABLED
 
 #import "APINavigationData.h"
+#import "APIProcessPoolConfiguration.h"
 #import "ObjCObjectGraph.h"
 #import "WKAPICast.h"
 #import "WKBrowsingContextControllerInternal.h"
@@ -189,20 +190,18 @@
     InitWebCoreThreadSystemInterface();
 #endif
 
-    WebProcessPoolConfiguration configuration;
-    configuration.injectedBundlePath = bundleURL ? String(bundleURL.path) : String();
+    auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+    configuration->setInjectedBundlePath(bundleURL ? String(bundleURL.path) : String());
+#if PLATFORM(IOS)
+    configuration->setUseNetworkProcess(true);
+    configuration->setProcessModel(ProcessModelMultipleSecondaryProcesses);
+#endif
 
-    WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
+    _processPool = WebProcessPool::create(configuration);
 
-    _processPool = WebProcessPool::create(WTF::move(configuration));
-
     setUpConnectionClient(self, toAPI(_processPool.get()));
     setUpInectedBundleClient(self, toAPI(_processPool.get()));
     setUpHistoryClient(self, toAPI(_processPool.get()));
-#if PLATFORM(IOS)
-    _processPool->setUsesNetworkProcess(true);
-    _processPool->setProcessModel(ProcessModelMultipleSecondaryProcesses);
-#endif
 
     return self;
 }

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm	2015-01-20 01:35:47 UTC (rev 178685)
@@ -39,7 +39,7 @@
 #import "WebProcessMessages.h"
 #import "WebProcessPool.h"
 #import "_WKDownloadDelegate.h"
-#import "_WKProcessPoolConfiguration.h"
+#import "_WKProcessPoolConfigurationInternal.h"
 #import <WebCore/CFNetworkSPI.h>
 #import <WebCore/CertificateInfo.h>
 #import <wtf/RetainPtr.h>
@@ -49,9 +49,6 @@
 #import "WKGeolocationProviderIOS.h"
 #endif
 
-// FIXME: Move this from WKProcessPool to APIWebsiteDataStoreCocoa.
-NSURL *websiteDataDirectoryURL(NSString *directoryName);
-
 @implementation WKProcessPool {
     WebKit::WeakObjCPtr<id <_WKDownloadDelegate>> _downloadDelegate;
 
@@ -74,12 +71,12 @@
 
 - (NSString *)description
 {
-    return [NSString stringWithFormat:@"<%@: %p; configuration = %@>", NSStringFromClass(self.class), self, _configuration.get()];
+    return [NSString stringWithFormat:@"<%@: %p; configuration = %@>", NSStringFromClass(self.class), self, wrapper(_processPool->configuration())];
 }
 
 - (_WKProcessPoolConfiguration *)_configuration
 {
-    return [[_configuration copy] autorelease];
+    return wrapper(_processPool->configuration().copy().leakRef());
 }
 
 - (API::Object&)_apiObject
@@ -116,74 +113,18 @@
     return [url URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES];
 }
 
-NSURL *websiteDataDirectoryURL(NSString *directoryName)
-{
-    static dispatch_once_t onceToken;
-    static NSURL *websiteDataURL;
-
-    dispatch_once(&onceToken, ^{
-        NSURL *url = "" defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nullptr create:NO error:nullptr];
-        if (!url)
-            RELEASE_ASSERT_NOT_REACHED();
-
-        url = "" URLByAppendingPathComponent:@"WebKit" isDirectory:YES];
-
-        if (!WebKit::processHasContainer()) {
-            NSString *bundleIdentifier = [NSBundle mainBundle].bundleIdentifier;
-            if (!bundleIdentifier)
-                bundleIdentifier = [NSProcessInfo processInfo].processName;
-            url = "" URLByAppendingPathComponent:bundleIdentifier isDirectory:YES];
-        }
-
-        websiteDataURL = [[url URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES] retain];
-    });
-
-    NSURL *url = "" URLByAppendingPathComponent:directoryName isDirectory:YES];
-    if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nullptr])
-        LOG_ERROR("Failed to create directory %@", url);
-
-    return url;
-}
-
 - (instancetype)_initWithConfiguration:(_WKProcessPoolConfiguration *)configuration
 {
     if (!(self = [super init]))
         return nil;
 
-    _configuration = adoptNS([configuration copy]);
-
 #if PLATFORM(IOS)
     // FIXME: Remove once <rdar://problem/15256572> is fixed.
     InitWebCoreThreadSystemInterface();
 #endif
 
-    WebKit::WebProcessPoolConfiguration processPoolConfiguration;
+    API::Object::constructInWrapper<WebKit::WebProcessPool>(self, *configuration->_processPoolConfiguration);
 
-    if (NSURL *bundleURL = [_configuration injectedBundleURL]) {
-        if (!bundleURL.isFileURL)
-            [NSException raise:NSInvalidArgumentException format:@"Injected Bundle URL must be a file URL"];
-
-        processPoolConfiguration.injectedBundlePath = bundleURL.path;
-    }
-
-    processPoolConfiguration.localStorageDirectory = websiteDataDirectoryURL(@"LocalStorage").absoluteURL.path.fileSystemRepresentation;
-    processPoolConfiguration.webSQLDatabaseDirectory = websiteDataDirectoryURL(@"WebSQL").absoluteURL.path.fileSystemRepresentation;
-    processPoolConfiguration.indexedDBDatabaseDirectory = websiteDataDirectoryURL(@"IndexedDB").absoluteURL.path.fileSystemRepresentation;
-    processPoolConfiguration.mediaKeysStorageDirectory = websiteDataDirectoryURL(@"MediaKeys").absoluteURL.path.fileSystemRepresentation;
-
-    API::Object::constructInWrapper<WebKit::WebProcessPool>(self, WTF::move(processPoolConfiguration));
-    _processPool->setUsesNetworkProcess(true);
-    _processPool->setProcessModel(WebKit::ProcessModelMultipleSecondaryProcesses);
-    _processPool->setMaximumNumberOfProcesses([_configuration maximumProcessCount]);
-
-#if ENABLE(CACHE_PARTITIONING)
-    for (NSString *urlScheme in [_configuration cachePartitionedURLSchemes])
-        _processPool->registerURLSchemeAsCachePartitioned(urlScheme);
-#endif
-
-    // FIXME: Add a way to configure the cache model, see <rdar://problem/16206857>.
-    _processPool->setCacheModel(WebKit::CacheModelPrimaryWebBrowser);
-
     return self;
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h	2015-01-20 01:35:47 UTC (rev 178685)
@@ -46,8 +46,6 @@
 
 @interface WKProcessPool () <WKObject> {
 @package
-    RetainPtr<_WKProcessPoolConfiguration> _configuration;
-
     API::ObjectStorage<WebKit::WebProcessPool> _processPool;
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm	2015-01-20 01:35:47 UTC (rev 178685)
@@ -24,55 +24,98 @@
  */
 
 #import "config.h"
-#import "_WKProcessPoolConfiguration.h"
+#import "_WKProcessPoolConfigurationInternal.h"
 
 #if WK_API_ENABLED
 
 #import <wtf/RetainPtr.h>
 
-@implementation _WKProcessPoolConfiguration {
-    RetainPtr<NSURL> _injectedBundleURL;
-    RetainPtr<NSArray> _cachePartitionedURLSchemes;
+@implementation _WKProcessPoolConfiguration
+
+- (instancetype)init
+{
+    if (!(self = [super init]))
+        return nil;
+
+    API::Object::constructInWrapper<API::ProcessPoolConfiguration>(self);
+
+    return self;
 }
 
+- (void)dealloc
+{
+    _processPoolConfiguration->~ProcessPoolConfiguration();
+
+    [super dealloc];
+}
+
 - (NSURL *)injectedBundleURL
 {
-    return _injectedBundleURL.get();
+    return [NSURL fileURLWithPath:_processPoolConfiguration->injectedBundlePath()];
 }
 
 - (void)setInjectedBundleURL:(NSURL *)injectedBundleURL
 {
-    _injectedBundleURL = adoptNS([injectedBundleURL copy]);
+    if (injectedBundleURL && !injectedBundleURL.isFileURL)
+        [NSException raise:NSInvalidArgumentException format:@"Injected Bundle URL must be a file URL"];
+
+    _processPoolConfiguration->setInjectedBundlePath(injectedBundleURL.path);
 }
 
+- (NSUInteger)maximumProcessCount
+{
+    return _processPoolConfiguration->maximumProcessCount();
+}
+
+- (void)setMaximumProcessCount:(NSUInteger)maximumProcessCount
+{
+    _processPoolConfiguration->setMaximumProcessCount(maximumProcessCount);
+}
+
 - (NSArray *)cachePartitionedURLSchemes
 {
-    return _cachePartitionedURLSchemes.get();
+    auto schemes = _processPoolConfiguration->cachePartitionedURLSchemes();
+    if (schemes.isEmpty())
+        return @[];
+
+    NSMutableArray *array = [NSMutableArray arrayWithCapacity:schemes.size()];
+    for (const auto& scheme : schemes)
+        [array addObject:(NSString *)scheme];
+
+    return array;
 }
 
 - (void)setCachePartitionedURLSchemes:(NSArray *)cachePartitionedURLSchemes
 {
-    _cachePartitionedURLSchemes = adoptNS([[NSArray alloc] initWithArray:cachePartitionedURLSchemes copyItems:YES]);
+    Vector<String> schemes;
+    for (id urlScheme in cachePartitionedURLSchemes) {
+        if ([urlScheme isKindOfClass:[NSString class]])
+            schemes.append(String((NSString *)urlScheme));
+    }
+    
+    _processPoolConfiguration->setCachePartitionedURLSchemes(WTF::move(schemes));
 }
 
 - (NSString *)description
 {
-    NSString *description = [NSString stringWithFormat:@"<%@: %p; maximumProcessCount = %lu", NSStringFromClass(self.class), self, static_cast<unsigned long>(_maximumProcessCount)];
-    if (_injectedBundleURL)
-        return [description stringByAppendingFormat:@"; injectedBundleURL: \"%@\">", _injectedBundleURL.get()];
+    NSString *description = [NSString stringWithFormat:@"<%@: %p; maximumProcessCount = %lu", NSStringFromClass(self.class), self, static_cast<unsigned long>([self maximumProcessCount])];
 
+    if (!_processPoolConfiguration->injectedBundlePath().isEmpty())
+        return [description stringByAppendingFormat:@"; injectedBundleURL: \"%@\">", [self injectedBundleURL]];
+
     return [description stringByAppendingString:@">"];
 }
 
 - (id)copyWithZone:(NSZone *)zone
 {
-    _WKProcessPoolConfiguration *configuration = [(_WKProcessPoolConfiguration *)[[self class] allocWithZone:zone] init];
+    return wrapper(_processPoolConfiguration->copy().leakRef());
+}
 
-    configuration.maximumProcessCount = self.maximumProcessCount;
-    configuration.injectedBundleURL = self.injectedBundleURL;
-    configuration.cachePartitionedURLSchemes = self.cachePartitionedURLSchemes;
+#pragma mark WKObject protocol implementation
 
-    return configuration;
+- (API::Object&)_apiObject
+{
+    return *_processPoolConfiguration;
 }
 
 @end

Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h (0 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h	                        (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h	2015-01-20 01:35:47 UTC (rev 178685)
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "_WKProcessPoolConfiguration.h"
+
+#if WK_API_ENABLED
+
+#import "APIProcessPoolConfiguration.h"
+#import "WKObject.h"
+
+namespace API {
+
+inline _WKProcessPoolConfiguration *wrapper(API::ProcessPoolConfiguration& processPoolConfiguration)
+{
+    ASSERT([processPoolConfiguration.wrapper() isKindOfClass:[_WKProcessPoolConfiguration class]]);
+    return (_WKProcessPoolConfiguration *)processPoolConfiguration.wrapper();
+}
+
+}
+
+@interface _WKProcessPoolConfiguration () <WKObject> {
+@package
+    API::ObjectStorage<API::ProcessPoolConfiguration> _processPoolConfiguration;
+}
+@end
+
+#endif // WK_API_ENABLED

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -21,6 +21,7 @@
 #include "WebKitWebContext.h"
 
 #include "APIDownloadClient.h"
+#include "APIProcessPoolConfiguration.h"
 #include "APIString.h"
 #include "WebBatteryManagerProxy.h"
 #include "WebCertificateInfo.h"
@@ -257,15 +258,16 @@
     G_OBJECT_CLASS(webkit_web_context_parent_class)->constructed(object);
 
     GUniquePtr<char> bundleFilename(g_build_filename(injectedBundleDirectory(), "libwebkit2gtkinjectedbundle.so", nullptr));
-    WebProcessPoolConfiguration webContextConfiguration;
-    webContextConfiguration.injectedBundlePath = WebCore::filenameToString(bundleFilename.get());
-    WebProcessPool::applyPlatformSpecificConfigurationDefaults(webContextConfiguration);
+
+    auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+    configuration->setInjectedBundlePath(WebCore::filenameToString(bundleFilename.get()));
+
     WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(object);
     WebKitWebContextPrivate* priv = webContext->priv;
     if (!priv->localStorageDirectory.isNull())
-        webContextConfiguration.localStorageDirectory = WebCore::filenameToString(priv->localStorageDirectory.data());
+        configuration->setLocalStorageDirectory(WebCore::filenameToString(priv->localStorageDirectory.data()));
 
-    priv->context = WebProcessPool::create(WTF::move(webContextConfiguration));
+    priv->context = WebProcessPool::create(configuration.get());
 
     priv->requestManager = priv->context->supplement<WebSoupCustomProtocolRequestManager>();
     priv->context->setCacheModel(CacheModelPrimaryWebBrowser);

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-01-20 01:35:47 UTC (rev 178685)
@@ -334,7 +334,7 @@
 }
 #endif
 
-String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
+String WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory()
 {
     NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
     if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
@@ -342,33 +342,24 @@
     return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
 }
 
-String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
+String WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory()
 {
     // Indexed databases exist in a subdirectory of the "database directory path."
     // Currently, the top level of that directory contains entities related to WebSQL databases.
     // We should fix this, and move WebSQL into a subdirectory (https://bugs.webkit.org/show_bug.cgi?id=124807)
     // In the meantime, an entity name prefixed with three underscores will not conflict with any WebSQL entities.
-    return pathByAppendingComponent(platformDefaultWebSQLDatabaseDirectory(), "___IndexedDB");
+    return pathByAppendingComponent(legacyPlatformDefaultWebSQLDatabaseDirectory(), "___IndexedDB");
 }
 
-String WebProcessPool::platformDefaultIconDatabasePath() const
+String WebProcessPool::legacyPlatformDefaultLocalStorageDirectory()
 {
-    // FIXME: <rdar://problem/9138817> - After this "backwards compatibility" radar is removed, this code should be removed to only return an empty String.
-    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebIconDatabaseDirectoryDefaultsKey];
-    if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
-        databasesDirectory = @"~/Library/Icons/WebpageIcons.db";
-    return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
-}
-
-String WebProcessPool::platformDefaultLocalStorageDirectory()
-{
     NSString *localStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebStorageDirectoryDefaultsKey];
     if (!localStorageDirectory || ![localStorageDirectory isKindOfClass:[NSString class]])
         localStorageDirectory = @"~/Library/WebKit/LocalStorage";
     return stringByResolvingSymlinksInPath([localStorageDirectory stringByStandardizingPath]);
 }
 
-String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
+String WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory()
 {
     NSString *mediaKeysStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebKitMediaKeysStorageDirectoryDefaultsKey];
     if (!mediaKeysStorageDirectory || ![mediaKeysStorageDirectory isKindOfClass:[NSString class]])
@@ -376,6 +367,16 @@
     return stringByResolvingSymlinksInPath([mediaKeysStorageDirectory stringByStandardizingPath]);
 }
 
+
+String WebProcessPool::platformDefaultIconDatabasePath() const
+{
+    // FIXME: <rdar://problem/9138817> - After this "backwards compatibility" radar is removed, this code should be removed to only return an empty String.
+    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebIconDatabaseDirectoryDefaultsKey];
+    if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
+        databasesDirectory = @"~/Library/Icons/WebpageIcons.db";
+    return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
+}
+
 bool WebProcessPool::omitPDFSupport()
 {
     // Since this is a "secret default" we don't bother registering it.

Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -29,6 +29,7 @@
 
 #if ENABLE(INSPECTOR)
 
+#include "APIProcessPoolConfiguration.h"
 #include "APIURLRequest.h"
 #include "WebFramePolicyListenerProxy.h"
 #include "WebFrameProxy.h"
@@ -365,16 +366,12 @@
 {
     // Having our own process pool removes us from the main process pool and
     // guarantees no process sharing for our user interface.
+    static WebProcessPool* processPool = []{
+        auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+        configuration->setProcessModel(ProcessModelMultipleSecondaryProcesses);
+        return &WebProcessPool::create(configuration.get()).leakRef();
+    }();
 
-    static WebProcessPool* processPool;
-    if (!processPool) {
-        WebProcessPoolConfiguration configuration;
-        WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
-        
-        processPool = (WebProcessPool::create(WTF::move(configuration))).leakRef();
-        processPool->setProcessModel(ProcessModelMultipleSecondaryProcesses);
-    }
-
     return *processPool;
 }
 

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -29,6 +29,7 @@
 #include "APIArray.h"
 #include "APIDownloadClient.h"
 #include "APILegacyContextHistoryClient.h"
+#include "APIProcessPoolConfiguration.h"
 #include "CustomProtocolManagerMessages.h"
 #include "DownloadProxy.h"
 #include "DownloadProxyMessages.h"
@@ -112,31 +113,10 @@
 
 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, processPoolCounter, ("WebProcessPool"));
 
-void WebProcessPool::applyPlatformSpecificConfigurationDefaults(WebProcessPoolConfiguration& configuration)
+Ref<WebProcessPool> WebProcessPool::create(API::ProcessPoolConfiguration& configuration)
 {
-    // FIXME: This function should not be needed; all ports should make sure that the configuration has the right
-    // values, and then we should get rid of the platform specific defaults inside WebProcessPool.
-
-    if (!configuration.localStorageDirectory)
-        configuration.localStorageDirectory = platformDefaultLocalStorageDirectory();
-
-    if (!configuration.webSQLDatabaseDirectory)
-        configuration.webSQLDatabaseDirectory = platformDefaultWebSQLDatabaseDirectory();
-
-    // *********
-    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (<rdar://problem/17454712>)
-    // *********
-    if (!configuration.indexedDBDatabaseDirectory)
-        configuration.indexedDBDatabaseDirectory = platformDefaultIndexedDBDatabaseDirectory();
-
-    if (!configuration.mediaKeysStorageDirectory)
-        configuration.mediaKeysStorageDirectory = platformDefaultMediaKeysStorageDirectory();
-}
-
-PassRefPtr<WebProcessPool> WebProcessPool::create(WebProcessPoolConfiguration configuration)
-{
     InitializeWebKit2();
-    return adoptRef(new WebProcessPool(WTF::move(configuration)));
+    return adoptRef(*new WebProcessPool(configuration));
 }
 
 static Vector<WebProcessPool*>& processPools()
@@ -150,22 +130,23 @@
     return processPools();
 }
 
-static WebsiteDataStore::Configuration websiteDataStoreConfiguration(const WebProcessPoolConfiguration& processPoolConfiguration)
+static WebsiteDataStore::Configuration websiteDataStoreConfiguration(API::ProcessPoolConfiguration& processPoolConfiguration)
 {
     WebsiteDataStore::Configuration configuration;
 
-    configuration.localStorageDirectory = processPoolConfiguration.localStorageDirectory;
+    configuration.localStorageDirectory = processPoolConfiguration.localStorageDirectory();
 
     return configuration;
 }
 
-WebProcessPool::WebProcessPool(WebProcessPoolConfiguration configuration)
-    : m_processModel(ProcessModelSharedSecondaryProcess)
-    , m_webProcessCountLimit(UINT_MAX)
+WebProcessPool::WebProcessPool(API::ProcessPoolConfiguration& configuration)
+    : m_configuration(configuration.copy())
+    , m_processModel(m_configuration->processModel())
+    , m_webProcessCountLimit(!m_configuration->maximumProcessCount() ? UINT_MAX : m_configuration->maximumProcessCount())
     , m_haveInitialEmptyProcess(false)
     , m_processWithPageCache(0)
     , m_defaultPageGroup(WebPageGroup::createNonNull())
-    , m_injectedBundlePath(configuration.injectedBundlePath)
+    , m_injectedBundlePath(m_configuration->injectedBundlePath())
     , m_downloadClient(std::make_unique<API::DownloadClient>())
     , m_historyClient(std::make_unique<API::LegacyContextHistoryClient>())
     , m_visitedLinkProvider(VisitedLinkProvider::create())
@@ -173,22 +154,22 @@
     , m_plugInAutoStartProvider(this)
     , m_alwaysUsesComplexTextCodePath(false)
     , m_shouldUseFontSmoothing(true)
-    , m_cacheModel(CacheModelDocumentViewer)
+    , m_cacheModel(m_configuration->cacheModel())
     , m_memorySamplerEnabled(false)
     , m_memorySamplerInterval(1400.0)
-    , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration(configuration)))
-    , m_storageManager(StorageManager::create(configuration.localStorageDirectory))
+    , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration(m_configuration.get())))
+    , m_storageManager(StorageManager::create(m_configuration->localStorageDirectory()))
 #if USE(SOUP)
     , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
 #endif
-    , m_webSQLDatabaseDirectory(WTF::move(configuration.webSQLDatabaseDirectory))
-    , m_indexedDBDatabaseDirectory(WTF::move(configuration.indexedDBDatabaseDirectory))
-    , m_mediaKeysStorageDirectory(WTF::move(configuration.mediaKeysStorageDirectory))
+    , m_webSQLDatabaseDirectory(configuration.webSQLDatabaseDirectory())
+    , m_indexedDBDatabaseDirectory(configuration.indexedDBDatabaseDirectory())
+    , m_mediaKeysStorageDirectory(configuration.mediaKeysStorageDirectory())
     , m_shouldUseTestingNetworkSession(false)
     , m_processTerminationEnabled(true)
 #if ENABLE(NETWORK_PROCESS)
     , m_canHandleHTTPSServerTrustEvaluation(true)
-    , m_usesNetworkProcess(false)
+    , m_usesNetworkProcess(m_configuration->useNetworkProcess())
 #endif
 #if USE(SOUP)
     , m_ignoreTLSErrors(true)
@@ -197,6 +178,11 @@
     , m_userObservablePageCounter([this](bool) { updateProcessSuppressionState(); })
     , m_processSuppressionDisabledForPageCounter([this](bool) { updateProcessSuppressionState(); })
 {
+#if ENABLE(CACHE_PARTITIONING)
+    for (const auto& urlScheme : m_configuration->cachePartitionedURLSchemes())
+        m_schemesToRegisterAsCachePartitioned.add(urlScheme);
+#endif
+
     platformInitialize();
 
     addMessageReceiver(Messages::WebProcessPool::messageReceiverName(), *this);

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2015-01-20 01:35:47 UTC (rev 178685)
@@ -71,6 +71,7 @@
 namespace API {
 class DownloadClient;
 class LegacyContextHistoryClient;
+class ProcessPoolConfiguration;
 }
 
 namespace WebKit {
@@ -97,27 +98,19 @@
 int webProcessThroughputQOS();
 #endif
 
-struct WebProcessPoolConfiguration {
-    String injectedBundlePath;
-    String localStorageDirectory;
-    String webSQLDatabaseDirectory;
-    String indexedDBDatabaseDirectory;
-    String mediaKeysStorageDirectory;
-};
-
-class WebProcessPool : public API::ObjectImpl<API::Object::Type::ProcessPool>, private IPC::MessageReceiver
+class WebProcessPool final : public API::ObjectImpl<API::Object::Type::ProcessPool>, private IPC::MessageReceiver
 #if ENABLE(NETSCAPE_PLUGIN_API)
     , private PluginInfoStoreClient
 #endif
     {
 public:
-    static void applyPlatformSpecificConfigurationDefaults(WebProcessPoolConfiguration&);
+    static Ref<WebProcessPool> create(API::ProcessPoolConfiguration&);
 
-    WebProcessPool(WebProcessPoolConfiguration);
-        
-    static PassRefPtr<WebProcessPool> create(WebProcessPoolConfiguration);
+    explicit WebProcessPool(API::ProcessPoolConfiguration&);        
     virtual ~WebProcessPool();
 
+    API::ProcessPoolConfiguration& configuration() { return m_configuration.get(); }
+
     static const Vector<WebProcessPool*>& allProcessPools();
 
     template <typename T>
@@ -355,6 +348,12 @@
         return m_processSuppressionDisabledForPageCounter.token<ProcessSuppressionDisabledTokenType>();
     }
 
+    // FIXME: Move these to API::WebsiteDataStore.
+    static String legacyPlatformDefaultLocalStorageDirectory();
+    static String legacyPlatformDefaultIndexedDBDatabaseDirectory();
+    static String legacyPlatformDefaultWebSQLDatabaseDirectory();
+    static String legacyPlatformDefaultMediaKeysStorageDirectory();
+
 private:
     void platformInitialize();
 
@@ -388,11 +387,6 @@
 
     String platformDefaultIconDatabasePath() const;
 
-    static String platformDefaultLocalStorageDirectory();
-    static String platformDefaultIndexedDBDatabaseDirectory();
-    static String platformDefaultWebSQLDatabaseDirectory();
-    static String platformDefaultMediaKeysStorageDirectory();
-
     String diskCacheDirectory() const;
     String platformDefaultDiskCacheDirectory() const;
 
@@ -422,6 +416,8 @@
     virtual void pluginInfoStoreDidLoadPlugins(PluginInfoStore*) override;
 #endif
 
+    Ref<API::ProcessPoolConfiguration> m_configuration;
+
     IPC::MessageReceiverMap m_messageReceiverMap;
 
     ProcessModel m_processModel;

Modified: trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -100,12 +100,12 @@
     notImplemented();
 }
 
-String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
+String WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory()
 {
     return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/Databases";
 }
 
-String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
+String WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory()
 {
     notImplemented();
     return String();
@@ -116,12 +116,12 @@
     return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/IconDatabase/" + WebCore::IconDatabase::defaultDatabaseFilename();
 }
 
-String WebProcessPool::platformDefaultLocalStorageDirectory()
+String WebProcessPool::legacyPlatformDefaultLocalStorageDirectory()
 {
     return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/LocalStorage";
 }
 
-String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
+String WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory()
 {
     return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/MediaKeys";
 }

Modified: trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp (178684 => 178685)


--- trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp	2015-01-20 01:35:47 UTC (rev 178685)
@@ -112,13 +112,13 @@
 {
 }
 
-String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
+String WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory()
 {
     GUniquePtr<gchar> databaseDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "databases", nullptr));
     return WebCore::filenameToString(databaseDirectory.get());
 }
 
-String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
+String WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory()
 {
     notImplemented();
     return String();
@@ -130,13 +130,13 @@
     return WebCore::filenameToString(databaseDirectory.get());
 }
 
-String WebProcessPool::platformDefaultLocalStorageDirectory()
+String WebProcessPool::legacyPlatformDefaultLocalStorageDirectory()
 {
     GUniquePtr<gchar> storageDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "localstorage", nullptr));
     return WebCore::filenameToString(storageDirectory.get());
 }
 
-String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
+String WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory()
 {
     GUniquePtr<gchar> mediaKeysStorageDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "mediakeys", nullptr));
     return WebCore::filenameToString(mediaKeysStorageDirectory.get());

Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (178684 => 178685)


--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2015-01-20 00:58:42 UTC (rev 178684)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj	2015-01-20 01:35:47 UTC (rev 178685)
@@ -1087,6 +1087,7 @@
 		7C89D2BC1A6B0F5B003A5FDE /* _WKUserContentFilterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2BB1A6B0F5B003A5FDE /* _WKUserContentFilterInternal.h */; };
 		7C89D2BF1A6B11EF003A5FDE /* WKUserContentFilterRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2BD1A6B11EF003A5FDE /* WKUserContentFilterRef.cpp */; };
 		7C89D2C01A6B11EF003A5FDE /* WKUserContentFilterRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2BE1A6B11EF003A5FDE /* WKUserContentFilterRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		7C89D2D71A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */; };
 		7C8EB11718DB6A19007917C2 /* WKPreferencesPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C8EB11618DB6A19007917C2 /* WKPreferencesPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7C9D1537184584DA009D3918 /* WKBrowsingContextGroupInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C9D1536184584DA009D3918 /* WKBrowsingContextGroupInternal.h */; };
 		7CA254EB182993CE00FC8A41 /* WKBrowsingContextPolicyDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CA254EA182993CE00FC8A41 /* WKBrowsingContextPolicyDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -3220,6 +3221,7 @@
 		7C89D2BB1A6B0F5B003A5FDE /* _WKUserContentFilterInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKUserContentFilterInternal.h; sourceTree = "<group>"; };
 		7C89D2BD1A6B11EF003A5FDE /* WKUserContentFilterRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKUserContentFilterRef.cpp; sourceTree = "<group>"; };
 		7C89D2BE1A6B11EF003A5FDE /* WKUserContentFilterRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserContentFilterRef.h; sourceTree = "<group>"; };
+		7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKProcessPoolConfigurationInternal.h; sourceTree = "<group>"; };
 		7C8EB11618DB6A19007917C2 /* WKPreferencesPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreferencesPrivate.h; sourceTree = "<group>"; };
 		7C9D1536184584DA009D3918 /* WKBrowsingContextGroupInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBrowsingContextGroupInternal.h; sourceTree = "<group>"; };
 		7CA254EA182993CE00FC8A41 /* WKBrowsingContextPolicyDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBrowsingContextPolicyDelegate.h; sourceTree = "<group>"; };
@@ -5172,6 +5174,7 @@
 				37A64E5618F38F4600EB30F1 /* _WKFormInputSession.h */,
 				1A43E828188F3CDC009E4D30 /* _WKProcessPoolConfiguration.h */,
 				1A43E827188F3CDC009E4D30 /* _WKProcessPoolConfiguration.mm */,
+				7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */,
 				376C51181957452E0007B0FA /* _WKSecurityOrigin.h */,
 				376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */,
 				376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */,
@@ -7462,6 +7465,7 @@
 				1AB7D61A1288B9D900CFD08C /* DownloadProxyMessages.h in Headers */,
 				C517388112DF8F4F00EE3F47 /* DragControllerAction.h in Headers */,
 				BC8452A81162C80900CAB9B5 /* DrawingArea.h in Headers */,
+				7C89D2D71A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h in Headers */,
 				0FB659231208B4DB0044816C /* DrawingAreaInfo.h in Headers */,
 				7C89D2C01A6B11EF003A5FDE /* WKUserContentFilterRef.h in Headers */,
 				1A64229A12DD029200CAAE2C /* DrawingAreaMessages.h in Headers */,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to