<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[178685] trunk/Source/WebKit2</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/178685">178685</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2015-01-19 17:35:47 -0800 (Mon, 19 Jan 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>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.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedCocoaAPIObjectmm">trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationcpp">trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationh">trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStorecpp">trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStoreh">trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaAPIWebsiteDataStoreCocoamm">trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKProcessGroupmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoa_WKProcessPoolConfigurationmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIgtkWebKitWebContextcpp">trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoamm">trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxycpp">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolcpp">trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolh">trunk/Source/WebKit2/UIProcess/WebProcessPool.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcesseflWebContextEflcpp">trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessgtkWebProcessPoolGtkcpp">trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoa_WKProcessPoolConfigurationInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,3 +1,149 @@
</span><ins>+2015-01-18 Sam Weinig <sam@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.
+
</ins><span class="cx"> 2015-01-19 Beth Dakin <bdakin@apple.com>
</span><span class="cx">
</span><span class="cx"> Speculative build fix.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCocoaAPIObjectmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -55,6 +55,7 @@
</span><span class="cx"> #import "WKWebProcessPlugInScriptWorldInternal.h"
</span><span class="cx"> #import "_WKDownloadInternal.h"
</span><span class="cx"> #import "_WKFrameHandleInternal.h"
</span><ins>+#import "_WKProcessPoolConfigurationInternal.h"
</ins><span class="cx"> #import "_WKWebsiteDataStoreInternal.h"
</span><span class="cx"> #import <objc/objc-auto.h>
</span><span class="cx">
</span><span class="lines">@@ -111,6 +112,10 @@
</span><span class="cx"> wrapper = [WKProcessPool alloc];
</span><span class="cx"> break;
</span><span class="cx">
</span><ins>+ case Type::ProcessPoolConfiguration:
+ wrapper = [_WKProcessPoolConfiguration alloc];
+ break;
+
</ins><span class="cx"> case Type::Data:
</span><span class="cx"> wrapper = [WKNSData alloc];
</span><span class="cx"> break;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -26,11 +26,36 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "APIProcessPoolConfiguration.h"
</span><span class="cx">
</span><ins>+#include "APIWebsiteDataStore.h"
</ins><span class="cx"> #include "WebProcessPool.h"
</span><span class="cx">
</span><span class="cx"> namespace API {
</span><span class="cx">
</span><ins>+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;
+}
+
</ins><span class="cx"> ProcessPoolConfiguration::ProcessPoolConfiguration()
</span><ins>+ : m_indexedDBDatabaseDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("IndexedDB"))
+ , m_localStorageDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("LocalStorage"))
+ , m_webSQLDatabaseDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("WebSQL"))
+ , m_mediaKeysStorageDirectory(WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation("MediaKeys"))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -38,19 +63,22 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-WebKit::WebProcessPoolConfiguration ProcessPoolConfiguration::webProcessPoolConfiguration() const
</del><ins>+Ref<ProcessPoolConfiguration> ProcessPoolConfiguration::copy()
</ins><span class="cx"> {
</span><del>- WebKit::WebProcessPoolConfiguration configuration;
</del><ins>+ auto copy = this->create();
</ins><span class="cx">
</span><del>- 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;
</del><ins>+ 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;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -27,47 +27,65 @@
</span><span class="cx"> #define APIContextConfiguration_h
</span><span class="cx">
</span><span class="cx"> #include "APIObject.h"
</span><ins>+#include "CacheModel.h"
+#include "ProcessModel.h"
+#include <wtf/Ref.h>
+#include <wtf/Vector.h>
</ins><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx">
</span><del>-namespace WebKit {
-struct WebProcessPoolConfiguration;
-}
-
</del><span class="cx"> namespace API {
</span><span class="cx">
</span><del>-class ProcessPoolConfiguration : public ObjectImpl<Object::Type::ProcessPoolConfiguration> {
</del><ins>+class ProcessPoolConfiguration final : public ObjectImpl<Object::Type::ProcessPoolConfiguration> {
</ins><span class="cx"> public:
</span><del>- static PassRefPtr<ProcessPoolConfiguration> create()
- {
- return adoptRef(new ProcessPoolConfiguration);
- }
</del><ins>+ static Ref<ProcessPoolConfiguration> create();
+ static Ref<ProcessPoolConfiguration> createWithLegacyOptions();
+
+ explicit ProcessPoolConfiguration();
</ins><span class="cx"> virtual ~ProcessPoolConfiguration();
</span><ins>+
+ Ref<ProcessPoolConfiguration> copy();
</ins><span class="cx">
</span><del>- String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
- void setIndexedDBDatabaseDirectory(const String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
</del><ins>+ WebKit::ProcessModel processModel() const { return m_processModel; }
+ void setProcessModel(WebKit::ProcessModel processModel) { m_processModel = processModel; }
</ins><span class="cx">
</span><del>- String injectedBundlePath() const { return m_injectedBundlePath; }
- void setInjectedBundlePath(const String& injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
</del><ins>+ bool useNetworkProcess() const { return m_useNetworkProcess; }
+ void setUseNetworkProcess(bool useNetworkProcess) { m_useNetworkProcess = useNetworkProcess; }
</ins><span class="cx">
</span><del>- String localStorageDirectory() const { return m_localStorageDirectory; }
- void setLocalStorageDirectory(const String& localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
</del><ins>+ unsigned maximumProcessCount() const { return m_maximumProcessCount; }
+ void setMaximumProcessCount(unsigned maximumProcessCount) { m_maximumProcessCount = maximumProcessCount; }
</ins><span class="cx">
</span><del>- String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
- void setWebSQLDatabaseDirectory(const String& webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
</del><ins>+ WebKit::CacheModel cacheModel() const { return m_cacheModel; }
+ void setCacheModel(WebKit::CacheModel cacheModel) { m_cacheModel = cacheModel; }
</ins><span class="cx">
</span><del>- String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
- void setMediaKeysStorageDirectory(const String& mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
</del><ins>+ WTF::String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
+ void setIndexedDBDatabaseDirectory(const WTF::String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
</ins><span class="cx">
</span><del>- WebKit::WebProcessPoolConfiguration webProcessPoolConfiguration() const;
</del><ins>+ WTF::String injectedBundlePath() const { return m_injectedBundlePath; }
+ void setInjectedBundlePath(const WTF::String& injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
</ins><span class="cx">
</span><ins>+ 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); }
+
</ins><span class="cx"> private:
</span><del>- ProcessPoolConfiguration();
-
- String m_indexedDBDatabaseDirectory;
- String m_injectedBundlePath;
- String m_localStorageDirectory;
- String m_webSQLDatabaseDirectory;
- String m_mediaKeysStorageDirectory;
</del><ins>+ 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;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -69,6 +69,12 @@
</span><span class="cx">
</span><span class="cx"> return configuration;
</span><span class="cx"> }
</span><ins>+
+String WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation(const String& directoryName)
+{
+ // FIXME: Implement.
+ return String();
+}
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -43,6 +43,8 @@
</span><span class="cx">
</span><span class="cx"> WebKit::WebsiteDataStore& websiteDataStore() { return *m_websiteDataStore; }
</span><span class="cx">
</span><ins>+ static String websiteDataDirectoryFileSystemRepresentation(const String& directoryName);
+
</ins><span class="cx"> private:
</span><span class="cx"> WebsiteDataStore(WebKit::WebsiteDataStore::Configuration);
</span><span class="cx"> WebsiteDataStore();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -78,20 +78,21 @@
</span><span class="cx">
</span><span class="cx"> WKContextRef WKContextCreate()
</span><span class="cx"> {
</span><del>- return WKContextCreateWithConfiguration(adoptWK(WKContextConfigurationCreate()).get());
</del><ins>+ auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+ return toAPI(&WebProcessPool::create(configuration).leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WKContextRef WKContextCreateWithInjectedBundlePath(WKStringRef pathRef)
</span><span class="cx"> {
</span><del>- auto configuration = adoptWK(WKContextConfigurationCreate());
- WKContextConfigurationSetInjectedBundlePath(configuration.get(), pathRef);
</del><ins>+ auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+ configuration->setInjectedBundlePath(toWTFString(pathRef));
</ins><span class="cx">
</span><del>- return WKContextCreateWithConfiguration(configuration.get());
</del><ins>+ return toAPI(&WebProcessPool::create(configuration).leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WKContextRef WKContextCreateWithConfiguration(WKContextConfigurationRef configuration)
</span><span class="cx"> {
</span><del>- return toAPI(WebProcessPool::create(toImpl(configuration)->webProcessPoolConfiguration()).leakRef());
</del><ins>+ return toAPI(&WebProcessPool::create(*toImpl(configuration)).leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WKContextSetClient(WKContextRef contextRef, const WKContextClientBase* wkClient)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx">
</span><span class="cx"> WKContextConfigurationRef WKContextConfigurationCreate()
</span><span class="cx"> {
</span><del>- return toAPI(API::ProcessPoolConfiguration::create().leakRef());
</del><ins>+ return toAPI(&API::ProcessPoolConfiguration::create().leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> WKStringRef WKContextConfigurationCopyIndexedDBDatabaseDirectory(WKContextConfigurationRef configuration)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaAPIWebsiteDataStoreCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -26,17 +26,45 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "APIWebsiteDataStore.h"
</span><span class="cx">
</span><del>-// FIXME: This function is currently in WKProcessPool. It should be moved to this file instead.
-NSURL *websiteDataDirectoryURL(NSString *directoryName);
</del><ins>+#include "SandboxUtilities.h"
</ins><span class="cx">
</span><span class="cx"> namespace API {
</span><span class="cx">
</span><ins>+String WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation(const String& directoryName)
+{
+ static dispatch_once_t onceToken;
+ static NSURL *websiteDataURL;
+
+ dispatch_once(&onceToken, ^{
+ NSURL *url = [[NSFileManager defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nullptr create:NO error:nullptr];
+ if (!url)
+ RELEASE_ASSERT_NOT_REACHED();
+
+ url = [url URLByAppendingPathComponent:@"WebKit" isDirectory:YES];
+
+ if (!WebKit::processHasContainer()) {
+ NSString *bundleIdentifier = [NSBundle mainBundle].bundleIdentifier;
+ if (!bundleIdentifier)
+ bundleIdentifier = [NSProcessInfo processInfo].processName;
+ url = [url URLByAppendingPathComponent:bundleIdentifier isDirectory:YES];
+ }
+
+ websiteDataURL = [[url URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES] retain];
+ });
+
+ NSURL *url = [websiteDataURL 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;
+}
+
</ins><span class="cx"> WebKit::WebsiteDataStore::Configuration WebsiteDataStore::defaultDataStoreConfiguration()
</span><span class="cx"> {
</span><span class="cx"> // FIXME: Fill everything in.
</span><span class="cx"> WebKit::WebsiteDataStore::Configuration configuration;
</span><span class="cx">
</span><del>- configuration.localStorageDirectory = websiteDataDirectoryURL(@"LocalStorage").absoluteURL.path.fileSystemRepresentation;
</del><ins>+ configuration.localStorageDirectory = websiteDataDirectoryFileSystemRepresentation("LocalStorage");
</ins><span class="cx">
</span><span class="cx"> return configuration;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKProcessGroupmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><span class="cx"> #import "APINavigationData.h"
</span><ins>+#import "APIProcessPoolConfiguration.h"
</ins><span class="cx"> #import "ObjCObjectGraph.h"
</span><span class="cx"> #import "WKAPICast.h"
</span><span class="cx"> #import "WKBrowsingContextControllerInternal.h"
</span><span class="lines">@@ -189,20 +190,18 @@
</span><span class="cx"> InitWebCoreThreadSystemInterface();
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- WebProcessPoolConfiguration configuration;
- configuration.injectedBundlePath = bundleURL ? String(bundleURL.path) : String();
</del><ins>+ auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+ configuration->setInjectedBundlePath(bundleURL ? String(bundleURL.path) : String());
+#if PLATFORM(IOS)
+ configuration->setUseNetworkProcess(true);
+ configuration->setProcessModel(ProcessModelMultipleSecondaryProcesses);
+#endif
</ins><span class="cx">
</span><del>- WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
</del><ins>+ _processPool = WebProcessPool::create(configuration);
</ins><span class="cx">
</span><del>- _processPool = WebProcessPool::create(WTF::move(configuration));
-
</del><span class="cx"> setUpConnectionClient(self, toAPI(_processPool.get()));
</span><span class="cx"> setUpInectedBundleClient(self, toAPI(_processPool.get()));
</span><span class="cx"> setUpHistoryClient(self, toAPI(_processPool.get()));
</span><del>-#if PLATFORM(IOS)
- _processPool->setUsesNetworkProcess(true);
- _processPool->setProcessModel(ProcessModelMultipleSecondaryProcesses);
-#endif
</del><span class="cx">
</span><span class="cx"> return self;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> #import "WebProcessMessages.h"
</span><span class="cx"> #import "WebProcessPool.h"
</span><span class="cx"> #import "_WKDownloadDelegate.h"
</span><del>-#import "_WKProcessPoolConfiguration.h"
</del><ins>+#import "_WKProcessPoolConfigurationInternal.h"
</ins><span class="cx"> #import <WebCore/CFNetworkSPI.h>
</span><span class="cx"> #import <WebCore/CertificateInfo.h>
</span><span class="cx"> #import <wtf/RetainPtr.h>
</span><span class="lines">@@ -49,9 +49,6 @@
</span><span class="cx"> #import "WKGeolocationProviderIOS.h"
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-// FIXME: Move this from WKProcessPool to APIWebsiteDataStoreCocoa.
-NSURL *websiteDataDirectoryURL(NSString *directoryName);
-
</del><span class="cx"> @implementation WKProcessPool {
</span><span class="cx"> WebKit::WeakObjCPtr<id <_WKDownloadDelegate>> _downloadDelegate;
</span><span class="cx">
</span><span class="lines">@@ -74,12 +71,12 @@
</span><span class="cx">
</span><span class="cx"> - (NSString *)description
</span><span class="cx"> {
</span><del>- return [NSString stringWithFormat:@"<%@: %p; configuration = %@>", NSStringFromClass(self.class), self, _configuration.get()];
</del><ins>+ return [NSString stringWithFormat:@"<%@: %p; configuration = %@>", NSStringFromClass(self.class), self, wrapper(_processPool->configuration())];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (_WKProcessPoolConfiguration *)_configuration
</span><span class="cx"> {
</span><del>- return [[_configuration copy] autorelease];
</del><ins>+ return wrapper(_processPool->configuration().copy().leakRef());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (API::Object&)_apiObject
</span><span class="lines">@@ -116,74 +113,18 @@
</span><span class="cx"> return [url URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-NSURL *websiteDataDirectoryURL(NSString *directoryName)
-{
- static dispatch_once_t onceToken;
- static NSURL *websiteDataURL;
-
- dispatch_once(&onceToken, ^{
- NSURL *url = [[NSFileManager defaultManager] URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:nullptr create:NO error:nullptr];
- if (!url)
- RELEASE_ASSERT_NOT_REACHED();
-
- url = [url URLByAppendingPathComponent:@"WebKit" isDirectory:YES];
-
- if (!WebKit::processHasContainer()) {
- NSString *bundleIdentifier = [NSBundle mainBundle].bundleIdentifier;
- if (!bundleIdentifier)
- bundleIdentifier = [NSProcessInfo processInfo].processName;
- url = [url URLByAppendingPathComponent:bundleIdentifier isDirectory:YES];
- }
-
- websiteDataURL = [[url URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES] retain];
- });
-
- NSURL *url = [websiteDataURL URLByAppendingPathComponent:directoryName isDirectory:YES];
- if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nullptr])
- LOG_ERROR("Failed to create directory %@", url);
-
- return url;
-}
-
</del><span class="cx"> - (instancetype)_initWithConfiguration:(_WKProcessPoolConfiguration *)configuration
</span><span class="cx"> {
</span><span class="cx"> if (!(self = [super init]))
</span><span class="cx"> return nil;
</span><span class="cx">
</span><del>- _configuration = adoptNS([configuration copy]);
-
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> // FIXME: Remove once <rdar://problem/15256572> is fixed.
</span><span class="cx"> InitWebCoreThreadSystemInterface();
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- WebKit::WebProcessPoolConfiguration processPoolConfiguration;
</del><ins>+ API::Object::constructInWrapper<WebKit::WebProcessPool>(self, *configuration->_processPoolConfiguration);
</ins><span class="cx">
</span><del>- 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);
-
</del><span class="cx"> return self;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -46,8 +46,6 @@
</span><span class="cx">
</span><span class="cx"> @interface WKProcessPool () <WKObject> {
</span><span class="cx"> @package
</span><del>- RetainPtr<_WKProcessPoolConfiguration> _configuration;
-
</del><span class="cx"> API::ObjectStorage<WebKit::WebProcessPool> _processPool;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoa_WKProcessPoolConfigurationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -24,55 +24,98 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> #import "config.h"
</span><del>-#import "_WKProcessPoolConfiguration.h"
</del><ins>+#import "_WKProcessPoolConfigurationInternal.h"
</ins><span class="cx">
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx">
</span><span class="cx"> #import <wtf/RetainPtr.h>
</span><span class="cx">
</span><del>-@implementation _WKProcessPoolConfiguration {
- RetainPtr<NSURL> _injectedBundleURL;
- RetainPtr<NSArray> _cachePartitionedURLSchemes;
</del><ins>+@implementation _WKProcessPoolConfiguration
+
+- (instancetype)init
+{
+ if (!(self = [super init]))
+ return nil;
+
+ API::Object::constructInWrapper<API::ProcessPoolConfiguration>(self);
+
+ return self;
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+- (void)dealloc
+{
+ _processPoolConfiguration->~ProcessPoolConfiguration();
+
+ [super dealloc];
+}
+
</ins><span class="cx"> - (NSURL *)injectedBundleURL
</span><span class="cx"> {
</span><del>- return _injectedBundleURL.get();
</del><ins>+ return [NSURL fileURLWithPath:_processPoolConfiguration->injectedBundlePath()];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)setInjectedBundleURL:(NSURL *)injectedBundleURL
</span><span class="cx"> {
</span><del>- _injectedBundleURL = adoptNS([injectedBundleURL copy]);
</del><ins>+ if (injectedBundleURL && !injectedBundleURL.isFileURL)
+ [NSException raise:NSInvalidArgumentException format:@"Injected Bundle URL must be a file URL"];
+
+ _processPoolConfiguration->setInjectedBundlePath(injectedBundleURL.path);
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+- (NSUInteger)maximumProcessCount
+{
+ return _processPoolConfiguration->maximumProcessCount();
+}
+
+- (void)setMaximumProcessCount:(NSUInteger)maximumProcessCount
+{
+ _processPoolConfiguration->setMaximumProcessCount(maximumProcessCount);
+}
+
</ins><span class="cx"> - (NSArray *)cachePartitionedURLSchemes
</span><span class="cx"> {
</span><del>- return _cachePartitionedURLSchemes.get();
</del><ins>+ 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;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)setCachePartitionedURLSchemes:(NSArray *)cachePartitionedURLSchemes
</span><span class="cx"> {
</span><del>- _cachePartitionedURLSchemes = adoptNS([[NSArray alloc] initWithArray:cachePartitionedURLSchemes copyItems:YES]);
</del><ins>+ Vector<String> schemes;
+ for (id urlScheme in cachePartitionedURLSchemes) {
+ if ([urlScheme isKindOfClass:[NSString class]])
+ schemes.append(String((NSString *)urlScheme));
+ }
+
+ _processPoolConfiguration->setCachePartitionedURLSchemes(WTF::move(schemes));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (NSString *)description
</span><span class="cx"> {
</span><del>- NSString *description = [NSString stringWithFormat:@"<%@: %p; maximumProcessCount = %lu", NSStringFromClass(self.class), self, static_cast<unsigned long>(_maximumProcessCount)];
- if (_injectedBundleURL)
- return [description stringByAppendingFormat:@"; injectedBundleURL: \"%@\">", _injectedBundleURL.get()];
</del><ins>+ NSString *description = [NSString stringWithFormat:@"<%@: %p; maximumProcessCount = %lu", NSStringFromClass(self.class), self, static_cast<unsigned long>([self maximumProcessCount])];
</ins><span class="cx">
</span><ins>+ if (!_processPoolConfiguration->injectedBundlePath().isEmpty())
+ return [description stringByAppendingFormat:@"; injectedBundleURL: \"%@\">", [self injectedBundleURL]];
+
</ins><span class="cx"> return [description stringByAppendingString:@">"];
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (id)copyWithZone:(NSZone *)zone
</span><span class="cx"> {
</span><del>- _WKProcessPoolConfiguration *configuration = [(_WKProcessPoolConfiguration *)[[self class] allocWithZone:zone] init];
</del><ins>+ return wrapper(_processPoolConfiguration->copy().leakRef());
+}
</ins><span class="cx">
</span><del>- configuration.maximumProcessCount = self.maximumProcessCount;
- configuration.injectedBundleURL = self.injectedBundleURL;
- configuration.cachePartitionedURLSchemes = self.cachePartitionedURLSchemes;
</del><ins>+#pragma mark WKObject protocol implementation
</ins><span class="cx">
</span><del>- return configuration;
</del><ins>+- (API::Object&)_apiObject
+{
+ return *_processPoolConfiguration;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoa_WKProcessPoolConfigurationInternalh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h (0 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * 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
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIgtkWebKitWebContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -21,6 +21,7 @@
</span><span class="cx"> #include "WebKitWebContext.h"
</span><span class="cx">
</span><span class="cx"> #include "APIDownloadClient.h"
</span><ins>+#include "APIProcessPoolConfiguration.h"
</ins><span class="cx"> #include "APIString.h"
</span><span class="cx"> #include "WebBatteryManagerProxy.h"
</span><span class="cx"> #include "WebCertificateInfo.h"
</span><span class="lines">@@ -257,15 +258,16 @@
</span><span class="cx"> G_OBJECT_CLASS(webkit_web_context_parent_class)->constructed(object);
</span><span class="cx">
</span><span class="cx"> GUniquePtr<char> bundleFilename(g_build_filename(injectedBundleDirectory(), "libwebkit2gtkinjectedbundle.so", nullptr));
</span><del>- WebProcessPoolConfiguration webContextConfiguration;
- webContextConfiguration.injectedBundlePath = WebCore::filenameToString(bundleFilename.get());
- WebProcessPool::applyPlatformSpecificConfigurationDefaults(webContextConfiguration);
</del><ins>+
+ auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+ configuration->setInjectedBundlePath(WebCore::filenameToString(bundleFilename.get()));
+
</ins><span class="cx"> WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(object);
</span><span class="cx"> WebKitWebContextPrivate* priv = webContext->priv;
</span><span class="cx"> if (!priv->localStorageDirectory.isNull())
</span><del>- webContextConfiguration.localStorageDirectory = WebCore::filenameToString(priv->localStorageDirectory.data());
</del><ins>+ configuration->setLocalStorageDirectory(WebCore::filenameToString(priv->localStorageDirectory.data()));
</ins><span class="cx">
</span><del>- priv->context = WebProcessPool::create(WTF::move(webContextConfiguration));
</del><ins>+ priv->context = WebProcessPool::create(configuration.get());
</ins><span class="cx">
</span><span class="cx"> priv->requestManager = priv->context->supplement<WebSoupCustomProtocolRequestManager>();
</span><span class="cx"> priv->context->setCacheModel(CacheModelPrimaryWebBrowser);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory()
</ins><span class="cx"> {
</span><span class="cx"> NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
</span><span class="cx"> if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
</span><span class="lines">@@ -342,33 +342,24 @@
</span><span class="cx"> return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory()
</ins><span class="cx"> {
</span><span class="cx"> // Indexed databases exist in a subdirectory of the "database directory path."
</span><span class="cx"> // Currently, the top level of that directory contains entities related to WebSQL databases.
</span><span class="cx"> // We should fix this, and move WebSQL into a subdirectory (https://bugs.webkit.org/show_bug.cgi?id=124807)
</span><span class="cx"> // In the meantime, an entity name prefixed with three underscores will not conflict with any WebSQL entities.
</span><del>- return pathByAppendingComponent(platformDefaultWebSQLDatabaseDirectory(), "___IndexedDB");
</del><ins>+ return pathByAppendingComponent(legacyPlatformDefaultWebSQLDatabaseDirectory(), "___IndexedDB");
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultIconDatabasePath() const
</del><ins>+String WebProcessPool::legacyPlatformDefaultLocalStorageDirectory()
</ins><span class="cx"> {
</span><del>- // 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()
-{
</del><span class="cx"> NSString *localStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebStorageDirectoryDefaultsKey];
</span><span class="cx"> if (!localStorageDirectory || ![localStorageDirectory isKindOfClass:[NSString class]])
</span><span class="cx"> localStorageDirectory = @"~/Library/WebKit/LocalStorage";
</span><span class="cx"> return stringByResolvingSymlinksInPath([localStorageDirectory stringByStandardizingPath]);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory()
</ins><span class="cx"> {
</span><span class="cx"> NSString *mediaKeysStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebKitMediaKeysStorageDirectoryDefaultsKey];
</span><span class="cx"> if (!mediaKeysStorageDirectory || ![mediaKeysStorageDirectory isKindOfClass:[NSString class]])
</span><span class="lines">@@ -376,6 +367,16 @@
</span><span class="cx"> return stringByResolvingSymlinksInPath([mediaKeysStorageDirectory stringByStandardizingPath]);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+
+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]);
+}
+
</ins><span class="cx"> bool WebProcessPool::omitPDFSupport()
</span><span class="cx"> {
</span><span class="cx"> // Since this is a "secret default" we don't bother registering it.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx">
</span><ins>+#include "APIProcessPoolConfiguration.h"
</ins><span class="cx"> #include "APIURLRequest.h"
</span><span class="cx"> #include "WebFramePolicyListenerProxy.h"
</span><span class="cx"> #include "WebFrameProxy.h"
</span><span class="lines">@@ -365,16 +366,12 @@
</span><span class="cx"> {
</span><span class="cx"> // Having our own process pool removes us from the main process pool and
</span><span class="cx"> // guarantees no process sharing for our user interface.
</span><ins>+ static WebProcessPool* processPool = []{
+ auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions();
+ configuration->setProcessModel(ProcessModelMultipleSecondaryProcesses);
+ return &WebProcessPool::create(configuration.get()).leakRef();
+ }();
</ins><span class="cx">
</span><del>- static WebProcessPool* processPool;
- if (!processPool) {
- WebProcessPoolConfiguration configuration;
- WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
-
- processPool = (WebProcessPool::create(WTF::move(configuration))).leakRef();
- processPool->setProcessModel(ProcessModelMultipleSecondaryProcesses);
- }
-
</del><span class="cx"> return *processPool;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include "APIArray.h"
</span><span class="cx"> #include "APIDownloadClient.h"
</span><span class="cx"> #include "APILegacyContextHistoryClient.h"
</span><ins>+#include "APIProcessPoolConfiguration.h"
</ins><span class="cx"> #include "CustomProtocolManagerMessages.h"
</span><span class="cx"> #include "DownloadProxy.h"
</span><span class="cx"> #include "DownloadProxyMessages.h"
</span><span class="lines">@@ -112,31 +113,10 @@
</span><span class="cx">
</span><span class="cx"> DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, processPoolCounter, ("WebProcessPool"));
</span><span class="cx">
</span><del>-void WebProcessPool::applyPlatformSpecificConfigurationDefaults(WebProcessPoolConfiguration& configuration)
</del><ins>+Ref<WebProcessPool> WebProcessPool::create(API::ProcessPoolConfiguration& configuration)
</ins><span class="cx"> {
</span><del>- // 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)
-{
</del><span class="cx"> InitializeWebKit2();
</span><del>- return adoptRef(new WebProcessPool(WTF::move(configuration)));
</del><ins>+ return adoptRef(*new WebProcessPool(configuration));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static Vector<WebProcessPool*>& processPools()
</span><span class="lines">@@ -150,22 +130,23 @@
</span><span class="cx"> return processPools();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static WebsiteDataStore::Configuration websiteDataStoreConfiguration(const WebProcessPoolConfiguration& processPoolConfiguration)
</del><ins>+static WebsiteDataStore::Configuration websiteDataStoreConfiguration(API::ProcessPoolConfiguration& processPoolConfiguration)
</ins><span class="cx"> {
</span><span class="cx"> WebsiteDataStore::Configuration configuration;
</span><span class="cx">
</span><del>- configuration.localStorageDirectory = processPoolConfiguration.localStorageDirectory;
</del><ins>+ configuration.localStorageDirectory = processPoolConfiguration.localStorageDirectory();
</ins><span class="cx">
</span><span class="cx"> return configuration;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-WebProcessPool::WebProcessPool(WebProcessPoolConfiguration configuration)
- : m_processModel(ProcessModelSharedSecondaryProcess)
- , m_webProcessCountLimit(UINT_MAX)
</del><ins>+WebProcessPool::WebProcessPool(API::ProcessPoolConfiguration& configuration)
+ : m_configuration(configuration.copy())
+ , m_processModel(m_configuration->processModel())
+ , m_webProcessCountLimit(!m_configuration->maximumProcessCount() ? UINT_MAX : m_configuration->maximumProcessCount())
</ins><span class="cx"> , m_haveInitialEmptyProcess(false)
</span><span class="cx"> , m_processWithPageCache(0)
</span><span class="cx"> , m_defaultPageGroup(WebPageGroup::createNonNull())
</span><del>- , m_injectedBundlePath(configuration.injectedBundlePath)
</del><ins>+ , m_injectedBundlePath(m_configuration->injectedBundlePath())
</ins><span class="cx"> , m_downloadClient(std::make_unique<API::DownloadClient>())
</span><span class="cx"> , m_historyClient(std::make_unique<API::LegacyContextHistoryClient>())
</span><span class="cx"> , m_visitedLinkProvider(VisitedLinkProvider::create())
</span><span class="lines">@@ -173,22 +154,22 @@
</span><span class="cx"> , m_plugInAutoStartProvider(this)
</span><span class="cx"> , m_alwaysUsesComplexTextCodePath(false)
</span><span class="cx"> , m_shouldUseFontSmoothing(true)
</span><del>- , m_cacheModel(CacheModelDocumentViewer)
</del><ins>+ , m_cacheModel(m_configuration->cacheModel())
</ins><span class="cx"> , m_memorySamplerEnabled(false)
</span><span class="cx"> , m_memorySamplerInterval(1400.0)
</span><del>- , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration(configuration)))
- , m_storageManager(StorageManager::create(configuration.localStorageDirectory))
</del><ins>+ , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration(m_configuration.get())))
+ , m_storageManager(StorageManager::create(m_configuration->localStorageDirectory()))
</ins><span class="cx"> #if USE(SOUP)
</span><span class="cx"> , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
</span><span class="cx"> #endif
</span><del>- , m_webSQLDatabaseDirectory(WTF::move(configuration.webSQLDatabaseDirectory))
- , m_indexedDBDatabaseDirectory(WTF::move(configuration.indexedDBDatabaseDirectory))
- , m_mediaKeysStorageDirectory(WTF::move(configuration.mediaKeysStorageDirectory))
</del><ins>+ , m_webSQLDatabaseDirectory(configuration.webSQLDatabaseDirectory())
+ , m_indexedDBDatabaseDirectory(configuration.indexedDBDatabaseDirectory())
+ , m_mediaKeysStorageDirectory(configuration.mediaKeysStorageDirectory())
</ins><span class="cx"> , m_shouldUseTestingNetworkSession(false)
</span><span class="cx"> , m_processTerminationEnabled(true)
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx"> , m_canHandleHTTPSServerTrustEvaluation(true)
</span><del>- , m_usesNetworkProcess(false)
</del><ins>+ , m_usesNetworkProcess(m_configuration->useNetworkProcess())
</ins><span class="cx"> #endif
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx"> , m_ignoreTLSErrors(true)
</span><span class="lines">@@ -197,6 +178,11 @@
</span><span class="cx"> , m_userObservablePageCounter([this](bool) { updateProcessSuppressionState(); })
</span><span class="cx"> , m_processSuppressionDisabledForPageCounter([this](bool) { updateProcessSuppressionState(); })
</span><span class="cx"> {
</span><ins>+#if ENABLE(CACHE_PARTITIONING)
+ for (const auto& urlScheme : m_configuration->cachePartitionedURLSchemes())
+ m_schemesToRegisterAsCachePartitioned.add(urlScheme);
+#endif
+
</ins><span class="cx"> platformInitialize();
</span><span class="cx">
</span><span class="cx"> addMessageReceiver(Messages::WebProcessPool::messageReceiverName(), *this);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -71,6 +71,7 @@
</span><span class="cx"> namespace API {
</span><span class="cx"> class DownloadClient;
</span><span class="cx"> class LegacyContextHistoryClient;
</span><ins>+class ProcessPoolConfiguration;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -97,27 +98,19 @@
</span><span class="cx"> int webProcessThroughputQOS();
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-struct WebProcessPoolConfiguration {
- String injectedBundlePath;
- String localStorageDirectory;
- String webSQLDatabaseDirectory;
- String indexedDBDatabaseDirectory;
- String mediaKeysStorageDirectory;
-};
-
-class WebProcessPool : public API::ObjectImpl<API::Object::Type::ProcessPool>, private IPC::MessageReceiver
</del><ins>+class WebProcessPool final : public API::ObjectImpl<API::Object::Type::ProcessPool>, private IPC::MessageReceiver
</ins><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> , private PluginInfoStoreClient
</span><span class="cx"> #endif
</span><span class="cx"> {
</span><span class="cx"> public:
</span><del>- static void applyPlatformSpecificConfigurationDefaults(WebProcessPoolConfiguration&);
</del><ins>+ static Ref<WebProcessPool> create(API::ProcessPoolConfiguration&);
</ins><span class="cx">
</span><del>- WebProcessPool(WebProcessPoolConfiguration);
-
- static PassRefPtr<WebProcessPool> create(WebProcessPoolConfiguration);
</del><ins>+ explicit WebProcessPool(API::ProcessPoolConfiguration&);
</ins><span class="cx"> virtual ~WebProcessPool();
</span><span class="cx">
</span><ins>+ API::ProcessPoolConfiguration& configuration() { return m_configuration.get(); }
+
</ins><span class="cx"> static const Vector<WebProcessPool*>& allProcessPools();
</span><span class="cx">
</span><span class="cx"> template <typename T>
</span><span class="lines">@@ -355,6 +348,12 @@
</span><span class="cx"> return m_processSuppressionDisabledForPageCounter.token<ProcessSuppressionDisabledTokenType>();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ // FIXME: Move these to API::WebsiteDataStore.
+ static String legacyPlatformDefaultLocalStorageDirectory();
+ static String legacyPlatformDefaultIndexedDBDatabaseDirectory();
+ static String legacyPlatformDefaultWebSQLDatabaseDirectory();
+ static String legacyPlatformDefaultMediaKeysStorageDirectory();
+
</ins><span class="cx"> private:
</span><span class="cx"> void platformInitialize();
</span><span class="cx">
</span><span class="lines">@@ -388,11 +387,6 @@
</span><span class="cx">
</span><span class="cx"> String platformDefaultIconDatabasePath() const;
</span><span class="cx">
</span><del>- static String platformDefaultLocalStorageDirectory();
- static String platformDefaultIndexedDBDatabaseDirectory();
- static String platformDefaultWebSQLDatabaseDirectory();
- static String platformDefaultMediaKeysStorageDirectory();
-
</del><span class="cx"> String diskCacheDirectory() const;
</span><span class="cx"> String platformDefaultDiskCacheDirectory() const;
</span><span class="cx">
</span><span class="lines">@@ -422,6 +416,8 @@
</span><span class="cx"> virtual void pluginInfoStoreDidLoadPlugins(PluginInfoStore*) override;
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ Ref<API::ProcessPoolConfiguration> m_configuration;
+
</ins><span class="cx"> IPC::MessageReceiverMap m_messageReceiverMap;
</span><span class="cx">
</span><span class="cx"> ProcessModel m_processModel;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcesseflWebContextEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -100,12 +100,12 @@
</span><span class="cx"> notImplemented();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory()
</ins><span class="cx"> {
</span><span class="cx"> return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/Databases";
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory()
</ins><span class="cx"> {
</span><span class="cx"> notImplemented();
</span><span class="cx"> return String();
</span><span class="lines">@@ -116,12 +116,12 @@
</span><span class="cx"> return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/IconDatabase/" + WebCore::IconDatabase::defaultDatabaseFilename();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultLocalStorageDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultLocalStorageDirectory()
</ins><span class="cx"> {
</span><span class="cx"> return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/LocalStorage";
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory()
</ins><span class="cx"> {
</span><span class="cx"> return String::fromUTF8(efreet_data_home_get()) + "/WebKitEfl/MediaKeys";
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessgtkWebProcessPoolGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -112,13 +112,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory()
</ins><span class="cx"> {
</span><span class="cx"> GUniquePtr<gchar> databaseDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "databases", nullptr));
</span><span class="cx"> return WebCore::filenameToString(databaseDirectory.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory()
</ins><span class="cx"> {
</span><span class="cx"> notImplemented();
</span><span class="cx"> return String();
</span><span class="lines">@@ -130,13 +130,13 @@
</span><span class="cx"> return WebCore::filenameToString(databaseDirectory.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultLocalStorageDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultLocalStorageDirectory()
</ins><span class="cx"> {
</span><span class="cx"> GUniquePtr<gchar> storageDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "localstorage", nullptr));
</span><span class="cx"> return WebCore::filenameToString(storageDirectory.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
</del><ins>+String WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory()
</ins><span class="cx"> {
</span><span class="cx"> GUniquePtr<gchar> mediaKeysStorageDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "mediakeys", nullptr));
</span><span class="cx"> return WebCore::filenameToString(mediaKeysStorageDirectory.get());
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (178684 => 178685)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1087,6 +1087,7 @@
</span><span class="cx">                 7C89D2BC1A6B0F5B003A5FDE /* _WKUserContentFilterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2BB1A6B0F5B003A5FDE /* _WKUserContentFilterInternal.h */; };
</span><span class="cx">                 7C89D2BF1A6B11EF003A5FDE /* WKUserContentFilterRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2BD1A6B11EF003A5FDE /* WKUserContentFilterRef.cpp */; };
</span><span class="cx">                 7C89D2C01A6B11EF003A5FDE /* WKUserContentFilterRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2BE1A6B11EF003A5FDE /* WKUserContentFilterRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                7C89D2D71A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */; };
</ins><span class="cx">                 7C8EB11718DB6A19007917C2 /* WKPreferencesPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C8EB11618DB6A19007917C2 /* WKPreferencesPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 7C9D1537184584DA009D3918 /* WKBrowsingContextGroupInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C9D1536184584DA009D3918 /* WKBrowsingContextGroupInternal.h */; };
</span><span class="cx">                 7CA254EB182993CE00FC8A41 /* WKBrowsingContextPolicyDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CA254EA182993CE00FC8A41 /* WKBrowsingContextPolicyDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -3220,6 +3221,7 @@
</span><span class="cx">                 7C89D2BB1A6B0F5B003A5FDE /* _WKUserContentFilterInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKUserContentFilterInternal.h; sourceTree = "<group>"; };
</span><span class="cx">                 7C89D2BD1A6B11EF003A5FDE /* WKUserContentFilterRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKUserContentFilterRef.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 7C89D2BE1A6B11EF003A5FDE /* WKUserContentFilterRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserContentFilterRef.h; sourceTree = "<group>"; };
</span><ins>+                7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKProcessPoolConfigurationInternal.h; sourceTree = "<group>"; };
</ins><span class="cx">                 7C8EB11618DB6A19007917C2 /* WKPreferencesPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreferencesPrivate.h; sourceTree = "<group>"; };
</span><span class="cx">                 7C9D1536184584DA009D3918 /* WKBrowsingContextGroupInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBrowsingContextGroupInternal.h; sourceTree = "<group>"; };
</span><span class="cx">                 7CA254EA182993CE00FC8A41 /* WKBrowsingContextPolicyDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBrowsingContextPolicyDelegate.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -5172,6 +5174,7 @@
</span><span class="cx">                                 37A64E5618F38F4600EB30F1 /* _WKFormInputSession.h */,
</span><span class="cx">                                 1A43E828188F3CDC009E4D30 /* _WKProcessPoolConfiguration.h */,
</span><span class="cx">                                 1A43E827188F3CDC009E4D30 /* _WKProcessPoolConfiguration.mm */,
</span><ins>+                                7C89D2D61A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h */,
</ins><span class="cx">                                 376C51181957452E0007B0FA /* _WKSecurityOrigin.h */,
</span><span class="cx">                                 376C51171957452E0007B0FA /* _WKSecurityOrigin.mm */,
</span><span class="cx">                                 376C511B195748C20007B0FA /* _WKSecurityOriginInternal.h */,
</span><span class="lines">@@ -7462,6 +7465,7 @@
</span><span class="cx">                                 1AB7D61A1288B9D900CFD08C /* DownloadProxyMessages.h in Headers */,
</span><span class="cx">                                 C517388112DF8F4F00EE3F47 /* DragControllerAction.h in Headers */,
</span><span class="cx">                                 BC8452A81162C80900CAB9B5 /* DrawingArea.h in Headers */,
</span><ins>+                                7C89D2D71A6C6BE6003A5FDE /* _WKProcessPoolConfigurationInternal.h in Headers */,
</ins><span class="cx">                                 0FB659231208B4DB0044816C /* DrawingAreaInfo.h in Headers */,
</span><span class="cx">                                 7C89D2C01A6B11EF003A5FDE /* WKUserContentFilterRef.h in Headers */,
</span><span class="cx">                                 1A64229A12DD029200CAAE2C /* DrawingAreaMessages.h in Headers */,
</span></span></pre>
</div>
</div>
</body>
</html>