<!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>[181707] 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/181707">181707</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2015-03-18 12:54:40 -0700 (Wed, 18 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add WKContextGetWebsiteDataStore API
https://bugs.webkit.org/show_bug.cgi?id=142832
rdar://problem/16544715

Reviewed by Sam Weinig.

Also add WKWebsiteDataStoreRef which is toll-free bridged to _WKWebsiteDataStore.

* Shared/API/c/WKBase.h:
Add new declaration.

* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::create):
* UIProcess/API/APIWebsiteDataStore.h:
Add a new function that takes a configuration.

* UIProcess/API/C/WKAPICast.h:
Add cast.

* UIProcess/API/C/WKContext.cpp:
(WKContextGetWebsiteDataStore):
Return the context's website data store.

* UIProcess/API/C/WKContext.h:
Add new declaration.

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp: Added.
* UIProcess/API/C/WKWebsiteDataStoreRef.h: Added.
Add new files.

* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
(WebKit::WebKeyValueStorageManager::deleteAllEntries):
Update now that WebProcessPool holds on to an API::WebsiteDataStore.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createWebPage):
* UIProcess/WebProcessPool.h:
WebProcessPool should hold on to an API::WebsiteDataStore instead of a WebKit::WebsiteDataStore.

* WebKit2.xcodeproj/project.pbxproj:
Add new files.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIcWKBaseh">trunk/Source/WebKit2/Shared/API/c/WKBase.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="#trunkSourceWebKit2UIProcessAPICWKAPICasth">trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContexth">trunk/Source/WebKit2/UIProcess/API/C/WKContext.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebKeyValueStorageManagercpp">trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.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="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKWebsiteDataStoreRefcpp">trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKWebsiteDataStoreRefh">trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/ChangeLog        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -1,3 +1,51 @@
</span><ins>+2015-03-18  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Add WKContextGetWebsiteDataStore API
+        https://bugs.webkit.org/show_bug.cgi?id=142832
+        rdar://problem/16544715
+
+        Reviewed by Sam Weinig.
+
+        Also add WKWebsiteDataStoreRef which is toll-free bridged to _WKWebsiteDataStore.
+
+        * Shared/API/c/WKBase.h:
+        Add new declaration.
+
+        * UIProcess/API/APIWebsiteDataStore.cpp:
+        (API::WebsiteDataStore::create):
+        * UIProcess/API/APIWebsiteDataStore.h:
+        Add a new function that takes a configuration.
+
+        * UIProcess/API/C/WKAPICast.h:
+        Add cast.
+
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextGetWebsiteDataStore):
+        Return the context's website data store.
+
+        * UIProcess/API/C/WKContext.h:
+        Add new declaration.
+
+        * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: Added.
+        * UIProcess/API/C/WKWebsiteDataStoreRef.h: Added.
+        Add new files.
+
+        * UIProcess/WebKeyValueStorageManager.cpp:
+        (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
+        (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
+        (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
+        (WebKit::WebKeyValueStorageManager::deleteAllEntries):
+        Update now that WebProcessPool holds on to an API::WebsiteDataStore.
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::WebProcessPool):
+        (WebKit::WebProcessPool::createWebPage):
+        * UIProcess/WebProcessPool.h:
+        WebProcessPool should hold on to an API::WebsiteDataStore instead of a WebKit::WebsiteDataStore.
+
+        * WebKit2.xcodeproj/project.pbxproj:
+        Add new files.
+
</ins><span class="cx"> 2015-03-18  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Cannot invoke action menus anymore
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIcWKBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/c/WKBase.h (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/c/WKBase.h        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/Shared/API/c/WKBase.h        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -139,6 +139,7 @@
</span><span class="cx"> typedef const struct OpaqueWKUserScript* WKUserScriptRef;
</span><span class="cx"> typedef const struct OpaqueWKVibration* WKVibrationRef;
</span><span class="cx"> typedef const struct OpaqueWKViewportAttributes* WKViewportAttributesRef;
</span><ins>+typedef const struct OpaqueWKWebsiteDataStore* WKWebsiteDataStoreRef;
</ins><span class="cx"> 
</span><span class="cx"> /* WebKit2 Bundle types */
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -42,6 +42,11 @@
</span><span class="cx">     return adoptRef(new WebsiteDataStore);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+RefPtr&lt;WebsiteDataStore&gt; WebsiteDataStore::create(WebKit::WebsiteDataStore::Configuration configuration)
+{
+    return adoptRef(new WebsiteDataStore(WTF::move(configuration)));
+}
+
</ins><span class="cx"> WebsiteDataStore::WebsiteDataStore()
</span><span class="cx">     : m_websiteDataStore(WebKit::WebsiteDataStore::createNonPersistent())
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static RefPtr&lt;WebsiteDataStore&gt; defaultDataStore();
</span><span class="cx">     static RefPtr&lt;WebsiteDataStore&gt; createNonPersistentDataStore();
</span><ins>+    static RefPtr&lt;WebsiteDataStore&gt; create(WebKit::WebsiteDataStore::Configuration);
</ins><span class="cx">     virtual ~WebsiteDataStore();
</span><span class="cx"> 
</span><span class="cx">     bool isNonPersistent();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKAPICasth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -63,6 +63,7 @@
</span><span class="cx"> class UserContentExtension;
</span><span class="cx"> class UserContentExtensionStore;
</span><span class="cx"> class UserScript;
</span><ins>+class WebsiteDataStore;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -139,6 +140,7 @@
</span><span class="cx"> WK_ADD_API_MAPPING(WKGrammarDetailRef, WebGrammarDetail)
</span><span class="cx"> WK_ADD_API_MAPPING(WKHitTestResultRef, WebHitTestResult)
</span><span class="cx"> WK_ADD_API_MAPPING(WKIconDatabaseRef, WebIconDatabase)
</span><ins>+WK_ADD_API_MAPPING(WKInspectorRef, WebInspectorProxy)
</ins><span class="cx"> WK_ADD_API_MAPPING(WKKeyValueStorageManagerRef, WebKeyValueStorageManager)
</span><span class="cx"> WK_ADD_API_MAPPING(WKMediaCacheManagerRef, WebMediaCacheManagerProxy)
</span><span class="cx"> WK_ADD_API_MAPPING(WKNavigationActionRef, API::NavigationAction)
</span><span class="lines">@@ -169,7 +171,7 @@
</span><span class="cx"> WK_ADD_API_MAPPING(WKUserScriptRef, API::UserScript)
</span><span class="cx"> WK_ADD_API_MAPPING(WKVibrationRef, WebVibrationProxy)
</span><span class="cx"> WK_ADD_API_MAPPING(WKViewportAttributesRef, WebViewportAttributes)
</span><del>-WK_ADD_API_MAPPING(WKInspectorRef, WebInspectorProxy)
</del><ins>+WK_ADD_API_MAPPING(WKWebsiteDataStoreRef, API::WebsiteDataStore)
</ins><span class="cx"> 
</span><span class="cx"> /* Enum conversions */
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -414,6 +414,11 @@
</span><span class="cx">     return toAPI(toImpl(contextRef)-&gt;supplement&lt;WebCookieManagerProxy&gt;());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+WKWebsiteDataStoreRef WKContextGetWebsiteDataStore(WKContextRef context)
+{
+    return toAPI(&amp;toImpl(context)-&gt;websiteDataStore());
+}
+
</ins><span class="cx"> WKApplicationCacheManagerRef WKContextGetApplicationCacheManager(WKContextRef contextRef)
</span><span class="cx"> {
</span><span class="cx">     return toAPI(toImpl(contextRef)-&gt;supplement&lt;WebApplicationCacheManagerProxy&gt;());
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.h (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.h        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.h        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -131,6 +131,8 @@
</span><span class="cx"> WK_EXPORT void WKContextStartMemorySampler(WKContextRef context, WKDoubleRef interval);
</span><span class="cx"> WK_EXPORT void WKContextStopMemorySampler(WKContextRef context);
</span><span class="cx"> 
</span><ins>+WK_EXPORT WKWebsiteDataStoreRef WKContextGetWebsiteDataStore(WKContextRef context);
+
</ins><span class="cx"> WK_EXPORT WKApplicationCacheManagerRef WKContextGetApplicationCacheManager(WKContextRef context);
</span><span class="cx"> WK_EXPORT WKBatteryManagerRef WKContextGetBatteryManager(WKContextRef context);
</span><span class="cx"> WK_EXPORT WKCookieManagerRef WKContextGetCookieManager(WKContextRef context);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKWebsiteDataStoreRefcppfromrev181706trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStoreh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (from rev 181706, trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h) (0 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.cpp                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.cpp        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -0,0 +1,35 @@
</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.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WKWebsiteDataStoreRef.h&quot;
+
+#include &quot;APIWebsiteDataStore.h&quot;
+#include &quot;WKAPICast.h&quot;
+
+WKTypeID WKWebsiteDataStoreGetTypeID()
+{
+    return WebKit::toAPI(API::WebsiteDataStore::APIType);
+}
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKWebsiteDataStoreRefhfromrev181706trunkSourceWebKit2UIProcessAPIAPIWebsiteDataStoreh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.h (from rev 181706, trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h) (0 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.h                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.h        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -0,0 +1,41 @@
</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.
+ */
+
+#ifndef WKWebsiteDataStoreRef_h
+#define WKWebsiteDataStoreRef_h
+
+#include &lt;WebKit/WKBase.h&gt;
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#endif
+
+WK_EXPORT WKTypeID WKWebsiteDataStoreGetTypeID();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WKWebsiteDataStoreRef_h */
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebKeyValueStorageManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -28,11 +28,11 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><ins>+#include &quot;APIWebsiteDataStore.h&quot;
</ins><span class="cx"> #include &quot;LocalStorageDetails.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><span class="cx"> #include &quot;StorageManager.h&quot;
</span><span class="cx"> #include &quot;WebProcessPool.h&quot;
</span><del>-#include &quot;WebsiteDataStore.h&quot;
</del><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::getKeyValueStorageOrigins(std::function&lt;void (API::Array*, CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    StorageManager* storageManager = processPool()-&gt;websiteDataStore().storageManager();
</del><ins>+    StorageManager* storageManager = processPool()-&gt;websiteDataStore().websiteDataStore().storageManager();
</ins><span class="cx">     if (!storageManager) {
</span><span class="cx">         RunLoop::main().dispatch([callbackFunction] {
</span><span class="cx">             callbackFunction(API::Array::create().get(), CallbackBase::Error::None);
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::getStorageDetailsByOrigin(std::function&lt;void (API::Array*, CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    StorageManager* storageManager = processPool()-&gt;websiteDataStore().storageManager();
</del><ins>+    StorageManager* storageManager = processPool()-&gt;websiteDataStore().websiteDataStore().storageManager();
</ins><span class="cx">     if (!storageManager) {
</span><span class="cx">         RunLoop::main().dispatch([callbackFunction] {
</span><span class="cx">             callbackFunction(API::Array::create().get(), CallbackBase::Error::None);
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::deleteEntriesForOrigin(API::SecurityOrigin* origin)
</span><span class="cx"> {
</span><del>-    StorageManager* storageManager = processPool()-&gt;websiteDataStore().storageManager();
</del><ins>+    StorageManager* storageManager = processPool()-&gt;websiteDataStore().websiteDataStore().storageManager();
</ins><span class="cx">     if (!storageManager)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::deleteAllEntries()
</span><span class="cx"> {
</span><del>-    StorageManager* storageManager = processPool()-&gt;websiteDataStore().storageManager();
</del><ins>+    StorageManager* storageManager = processPool()-&gt;websiteDataStore().websiteDataStore().storageManager();
</ins><span class="cx">     if (!storageManager)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx">     , m_cacheModel(m_configuration-&gt;cacheModel())
</span><span class="cx">     , m_memorySamplerEnabled(false)
</span><span class="cx">     , m_memorySamplerInterval(1400.0)
</span><del>-    , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration(m_configuration.get())))
</del><ins>+    , m_websiteDataStore(API::WebsiteDataStore::create(websiteDataStoreConfiguration(m_configuration.get())))
</ins><span class="cx"> #if USE(SOUP)
</span><span class="cx">     , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
</span><span class="cx"> #endif
</span><span class="lines">@@ -850,7 +850,7 @@
</span><span class="cx">         configuration.visitedLinkProvider = m_visitedLinkProvider.ptr();
</span><span class="cx">     if (!configuration.websiteDataStore) {
</span><span class="cx">         ASSERT(!configuration.sessionID.isValid());
</span><del>-        configuration.websiteDataStore = m_websiteDataStore.get();
</del><ins>+        configuration.websiteDataStore = &amp;m_websiteDataStore-&gt;websiteDataStore();
</ins><span class="cx">         configuration.sessionID = configuration.preferences-&gt;privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIDictionary.h&quot;
</span><span class="cx"> #include &quot;APIObject.h&quot;
</span><ins>+#include &quot;APIWebsiteDataStore.h&quot;
</ins><span class="cx"> #include &quot;DownloadProxyMap.h&quot;
</span><span class="cx"> #include &quot;GenericCallback.h&quot;
</span><span class="cx"> #include &quot;MessageReceiver.h&quot;
</span><span class="lines">@@ -164,7 +165,7 @@
</span><span class="cx">     // Disconnect the process from the context.
</span><span class="cx">     void disconnectProcess(WebProcessProxy*);
</span><span class="cx"> 
</span><del>-    WebsiteDataStore&amp; websiteDataStore() const { return *m_websiteDataStore; }
</del><ins>+    API::WebsiteDataStore&amp; websiteDataStore() const { return *m_websiteDataStore; }
</ins><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, WebPageConfiguration);
</span><span class="cx"> 
</span><span class="lines">@@ -483,7 +484,7 @@
</span><span class="cx">     RefPtr&lt;WebPluginSiteDataManager&gt; m_pluginSiteDataManager;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    RefPtr&lt;WebsiteDataStore&gt; m_websiteDataStore;
</del><ins>+    RefPtr&lt;API::WebsiteDataStore&gt; m_websiteDataStore;
</ins><span class="cx"> 
</span><span class="cx">     typedef HashMap&lt;const char*, RefPtr&lt;WebContextSupplement&gt;, PtrHash&lt;const char*&gt;&gt; WebContextSupplementMap;
</span><span class="cx">     WebContextSupplementMap m_supplements;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (181706 => 181707)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-03-18 19:07:30 UTC (rev 181706)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-03-18 19:54:40 UTC (rev 181707)
</span><span class="lines">@@ -274,6 +274,8 @@
</span><span class="cx">                 1A53C2A21A323004004E8C70 /* InjectedBundleCSSStyleDeclarationHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4ED3261A3119D90079BD49 /* InjectedBundleCSSStyleDeclarationHandle.cpp */; };
</span><span class="cx">                 1A53C2A91A32572B004E8C70 /* WebsiteDataStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A53C2A41A32569F004E8C70 /* WebsiteDataStore.cpp */; };
</span><span class="cx">                 1A53C2AA1A325730004E8C70 /* WebsiteDataStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A53C2A51A32569F004E8C70 /* WebsiteDataStore.h */; };
</span><ins>+                1A57109E1ABA0027002FABBE /* WKWebsiteDataStoreRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A57109C1ABA0027002FABBE /* WKWebsiteDataStoreRef.cpp */; };
+                1A57109F1ABA0027002FABBE /* WKWebsiteDataStoreRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A57109D1ABA0027002FABBE /* WKWebsiteDataStoreRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 1A5B1C501898606F004FCF9B /* WKNavigation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */; };
</span><span class="cx">                 1A5B1C511898606F004FCF9B /* WKNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A5B1C4F1898606F004FCF9B /* WKNavigation.h */; settings = {ATTRIBUTES = (Public, ); }; };
</span><span class="cx">                 1A5B1C5418987EDF004FCF9B /* WebDocumentLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A5B1C5218987EDF004FCF9B /* WebDocumentLoader.cpp */; };
</span><span class="lines">@@ -2382,6 +2384,8 @@
</span><span class="cx">                 1A52C0F61A38CDC70016160A /* WebStorageNamespaceProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageNamespaceProvider.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A53C2A41A32569F004E8C70 /* WebsiteDataStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsiteDataStore.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A53C2A51A32569F004E8C70 /* WebsiteDataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsiteDataStore.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                1A57109C1ABA0027002FABBE /* WKWebsiteDataStoreRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKWebsiteDataStoreRef.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                1A57109D1ABA0027002FABBE /* WKWebsiteDataStoreRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebsiteDataStoreRef.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNavigation.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A5B1C4F1898606F004FCF9B /* WKNavigation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigation.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A5B1C5218987EDF004FCF9B /* WebDocumentLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebDocumentLoader.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -6428,6 +6432,8 @@
</span><span class="cx">                                 7C89D2BE1A6B11EF003A5FDE /* WKUserContentFilterRef.h */,
</span><span class="cx">                                 7C89D2A11A678875003A5FDE /* WKUserScriptRef.cpp */,
</span><span class="cx">                                 7C89D2A21A678875003A5FDE /* WKUserScriptRef.h */,
</span><ins>+                                1A57109C1ABA0027002FABBE /* WKWebsiteDataStoreRef.cpp */,
+                                1A57109D1ABA0027002FABBE /* WKWebsiteDataStoreRef.h */,
</ins><span class="cx">                         );
</span><span class="cx">                         path = C;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -7876,6 +7882,7 @@
</span><span class="cx">                                 514D9F5719119D35000063A7 /* ServicesController.h in Headers */,
</span><span class="cx">                                 1AFDE65A1954A42B00C48FFA /* SessionState.h in Headers */,
</span><span class="cx">                                 8372DB251A674C8F00C697C5 /* WKPageDiagnosticLoggingClient.h in Headers */,
</span><ins>+                                1A57109F1ABA0027002FABBE /* WKWebsiteDataStoreRef.h in Headers */,
</ins><span class="cx">                                 1A002D49196B345D00B9AD44 /* SessionStateCoding.h in Headers */,
</span><span class="cx">                                 753E3E0E1887398900188496 /* SessionTracker.h in Headers */,
</span><span class="cx">                                 1A6420E512DCE2FF00CAAE2C /* ShareableBitmap.h in Headers */,
</span><span class="lines">@@ -9623,6 +9630,7 @@
</span><span class="cx">                                 1AB16AE9164B3A8800290D62 /* RemoteLayerTreeContext.mm in Sources */,
</span><span class="cx">                                 2D29ECD1192F2C2E00984B78 /* RemoteLayerTreeDisplayRefreshMonitor.mm in Sources */,
</span><span class="cx">                                 1AB16ADD1648598400290D62 /* RemoteLayerTreeDrawingArea.mm in Sources */,
</span><ins>+                                1A57109E1ABA0027002FABBE /* WKWebsiteDataStoreRef.cpp in Sources */,
</ins><span class="cx">                                 1AB16AE11648656D00290D62 /* RemoteLayerTreeDrawingAreaProxy.mm in Sources */,
</span><span class="cx">                                 0FF24A2D1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 1AA3D75B1651B44F008713D0 /* RemoteLayerTreeHost.mm in Sources */,
</span></span></pre>
</div>
</div>

</body>
</html>