<!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>[213759] trunk/Source</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/213759">213759</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2017-03-11 08:44:00 -0800 (Sat, 11 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Cleanup &quot;addCookie&quot; and its sole user.
https://bugs.webkit.org/show_bug.cgi?id=169486

Reviewed by Brian Burg.

Source/WebCore:

No new tests (Refactor, no behavior change)

* WebCore.xcodeproj/project.pbxproj:

* loader/CookieJar.cpp:
(WebCore::addCookie): Deleted.
* loader/CookieJar.h:

* platform/Cookie.h:
(WebCore::Cookie::Cookie):
(WebCore::CookieHash::hash):
(WebCore::CookieHash::equal):
(WebCore::Cookie::encode):
(WebCore::Cookie::decode):

* platform/CookiesStrategy.h:

* platform/network/NetworkStorageSession.h:

* platform/network/PlatformCookieJar.h:

* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::addCookie): Deleted.

* platform/network/cocoa/CookieCocoa.mm: Copied from Source/WebCore/loader/CookieJar.h.
(WebCore::Cookie::operator NSHTTPCookie *):

* platform/network/cocoa/NetworkStorageSessionCocoa.mm: Copied from Source/WebCore/loader/CookieJar.h.
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::nsCookieStorage):

* platform/network/curl/CookieJarCurl.cpp:
(WebCore::addCookie): Deleted.

* platform/network/mac/CookieJarMac.mm:
(WebCore::deleteCookiesForHostnames):
(WebCore::deleteAllCookiesModifiedSince):
(WebCore::addCookie): Deleted.
(WebCore::cookieStorage): Deleted.

* platform/network/soup/CookieJarSoup.cpp:
(WebCore::toSoupCookie): Deleted.
(WebCore::addCookie): Deleted.

* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::toSoupCookie):
(WebCore::NetworkStorageSession::setCookies):

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::addCookie): Deleted.

Source/WebKit2:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::addCookie): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder&lt;Cookie&gt;::encode): Deleted.
(IPC::ArgumentCoder&lt;Cookie&gt;::decode): Deleted.
* Shared/WebCoreArgumentCoders.h:

* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::addSingleCookie):

* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::setCookies):
(WebKit::WebCookieManagerProxy::addCookie): Deleted.
* UIProcess/WebCookieManagerProxy.h:

* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::setCookies):
(WebKit::WebCookieManager::addCookie): Deleted.
* WebProcess/Cookies/WebCookieManager.h:
* WebProcess/Cookies/WebCookieManager.messages.in:

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::addCookie): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreloaderCookieJarcpp">trunk/Source/WebCore/loader/CookieJar.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderCookieJarh">trunk/Source/WebCore/loader/CookieJar.h</a></li>
<li><a href="#trunkSourceWebCoreplatformCookieh">trunk/Source/WebCore/platform/Cookie.h</a></li>
<li><a href="#trunkSourceWebCoreplatformCookiesStrategyh">trunk/Source/WebCore/platform/CookiesStrategy.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkNetworkStorageSessionh">trunk/Source/WebCore/platform/network/NetworkStorageSession.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkPlatformCookieJarh">trunk/Source/WebCore/platform/network/PlatformCookieJar.h</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfCookieJarCFNetcpp">trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcfNetworkStorageSessionCFNetcpp">trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcurlCookieJarCurlcpp">trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacCookieJarMacmm">trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworksoupCookieJarSoupcpp">trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworksoupNetworkStorageSessionSoupcpp">trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesh">trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesmm">trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcesscpp">trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcessh">trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcessmessagesin">trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in</a></li>
<li><a href="#trunkSourceWebKit2SharedWebCoreArgumentCoderscpp">trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedWebCoreArgumentCodersh">trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAutomationWebAutomationSessioncpp">trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebCookieManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebCookieManagerProxyh">trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessCookiesWebCookieManagercpp">trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessCookiesWebCookieManagerh">trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessCookiesWebCookieManagermessagesin">trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiesh">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformnetworkcocoaCookieCocoamm">trunk/Source/WebCore/platform/network/cocoa/CookieCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcocoaNetworkStorageSessionCocoamm">trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/ChangeLog        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -1,3 +1,58 @@
</span><ins>+2017-03-11  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Cleanup &quot;addCookie&quot; and its sole user.
+        https://bugs.webkit.org/show_bug.cgi?id=169486
+
+        Reviewed by Brian Burg.
+
+        No new tests (Refactor, no behavior change)
+
+        * WebCore.xcodeproj/project.pbxproj:
+
+        * loader/CookieJar.cpp:
+        (WebCore::addCookie): Deleted.
+        * loader/CookieJar.h:
+
+        * platform/Cookie.h:
+        (WebCore::Cookie::Cookie):
+        (WebCore::CookieHash::hash):
+        (WebCore::CookieHash::equal):
+        (WebCore::Cookie::encode):
+        (WebCore::Cookie::decode):
+
+        * platform/CookiesStrategy.h:
+
+        * platform/network/NetworkStorageSession.h:
+
+        * platform/network/PlatformCookieJar.h:
+
+        * platform/network/cf/CookieJarCFNet.cpp:
+        (WebCore::addCookie): Deleted.
+
+        * platform/network/cocoa/CookieCocoa.mm: Copied from Source/WebCore/loader/CookieJar.h.
+        (WebCore::Cookie::operator NSHTTPCookie *):
+
+        * platform/network/cocoa/NetworkStorageSessionCocoa.mm: Copied from Source/WebCore/loader/CookieJar.h.
+        (WebCore::NetworkStorageSession::setCookies):
+        (WebCore::NetworkStorageSession::nsCookieStorage):
+
+        * platform/network/curl/CookieJarCurl.cpp:
+        (WebCore::addCookie): Deleted.
+
+        * platform/network/mac/CookieJarMac.mm:
+        (WebCore::deleteCookiesForHostnames):
+        (WebCore::deleteAllCookiesModifiedSince):
+        (WebCore::addCookie): Deleted.
+        (WebCore::cookieStorage): Deleted.
+
+        * platform/network/soup/CookieJarSoup.cpp:
+        (WebCore::toSoupCookie): Deleted.
+        (WebCore::addCookie): Deleted.
+
+        * platform/network/soup/NetworkStorageSessionSoup.cpp:
+        (WebCore::toSoupCookie):
+        (WebCore::NetworkStorageSession::setCookies):
+
</ins><span class="cx"> 2017-03-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix watch and tv builds after r213294
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -2278,6 +2278,8 @@
</span><span class="cx">                 51C81B8A0C4422F70019ECE3 /* FTPDirectoryParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 51C81B880C4422F70019ECE3 /* FTPDirectoryParser.h */; };
</span><span class="cx">                 51CBFC990D10E483002DBF51 /* CachedFramePlatformData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51CBFC980D10E483002DBF51 /* CachedFramePlatformData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 51D0C5160DAA90B7003B3831 /* JSStorageCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D0C5150DAA90B7003B3831 /* JSStorageCustom.cpp */; };
</span><ins>+                51D1248B1E73627F002B2820 /* NetworkStorageSessionCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51D1248A1E73625C002B2820 /* NetworkStorageSessionCocoa.mm */; };
+                51D1248D1E7364AA002B2820 /* CookieCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51D1248C1E736456002B2820 /* CookieCocoa.mm */; };
</ins><span class="cx">                 51D7236C1BB6174900478CA3 /* IDBResultData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D7236A1BB60BFE00478CA3 /* IDBResultData.cpp */; };
</span><span class="cx">                 51D7236D1BB6174900478CA3 /* IDBResultData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D7236B1BB60BFE00478CA3 /* IDBResultData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 51D7EFEA1BDE8F8C00E93E10 /* ThreadSafeDataBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 511FAEA91BDC989A00B4AFE4 /* ThreadSafeDataBuffer.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -9715,6 +9717,8 @@
</span><span class="cx">                 51C81B880C4422F70019ECE3 /* FTPDirectoryParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTPDirectoryParser.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51CBFC980D10E483002DBF51 /* CachedFramePlatformData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedFramePlatformData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D0C5150DAA90B7003B3831 /* JSStorageCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSStorageCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                51D1248A1E73625C002B2820 /* NetworkStorageSessionCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkStorageSessionCocoa.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
+                51D1248C1E736456002B2820 /* CookieCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CookieCocoa.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 51D7196C181106DF0016DC51 /* DOMWindowIndexedDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowIndexedDatabase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D7196D181106DF0016DC51 /* DOMWindowIndexedDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMWindowIndexedDatabase.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D7196E181106DF0016DC51 /* DOMWindowIndexedDatabase.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMWindowIndexedDatabase.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -19095,9 +19099,11 @@
</span><span class="cx">                 7E7DE1FE195CEF2D0035363B /* cocoa */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                51D1248C1E736456002B2820 /* CookieCocoa.mm */,
</ins><span class="cx">                                 3792917C1987678F00F4B661 /* CredentialCocoa.h */,
</span><span class="cx">                                 3792917B1987678F00F4B661 /* CredentialCocoa.mm */,
</span><span class="cx">                                 5C9B860B1C21E3C600110F36 /* NetworkLoadMetrics.mm */,
</span><ins>+                                51D1248A1E73625C002B2820 /* NetworkStorageSessionCocoa.mm */,
</ins><span class="cx">                                 372ADA37197F47B900FC501E /* ProtectionSpaceCocoa.h */,
</span><span class="cx">                                 372ADA39197F687600FC501E /* ProtectionSpaceCocoa.mm */,
</span><span class="cx">                                 7E7DE1FC195CEF260035363B /* ResourceRequestCocoa.mm */,
</span><span class="lines">@@ -30177,6 +30183,7 @@
</span><span class="cx">                                 CD52481A18E200ED0008A07D /* DisplaySleepDisabler.cpp in Sources */,
</span><span class="cx">                                 5D8C4DBF1428222C0026CE72 /* DisplaySleepDisablerCocoa.cpp in Sources */,
</span><span class="cx">                                 FD31609012B026F700C1A359 /* Distance.cpp in Sources */,
</span><ins>+                                51D1248B1E73627F002B2820 /* NetworkStorageSessionCocoa.mm in Sources */,
</ins><span class="cx">                                 A1E1154413015C3D0054AC8C /* DistantLightSource.cpp in Sources */,
</span><span class="cx">                                 B2F34FE90E82F82700F627CD /* DNSCFNet.cpp in Sources */,
</span><span class="cx">                                 F293B27E56C112F373FFF27E /* DNSResolveQueue.cpp in Sources */,
</span><span class="lines">@@ -32140,6 +32147,7 @@
</span><span class="cx">                                 BCAA90C30A7EBA60008B1229 /* Scrollbar.cpp in Sources */,
</span><span class="cx">                                 0F09087F1444FDB200028917 /* ScrollbarTheme.cpp in Sources */,
</span><span class="cx">                                 BC14028A0E83680800319717 /* ScrollbarThemeComposite.cpp in Sources */,
</span><ins>+                                51D1248D1E7364AA002B2820 /* CookieCocoa.mm in Sources */,
</ins><span class="cx">                                 44C991820F3D1E0D00586670 /* ScrollbarThemeIOS.mm in Sources */,
</span><span class="cx">                                 BCEF869F0E844E9D00A85CD5 /* ScrollbarThemeMac.mm in Sources */,
</span><span class="cx">                                 0FE71405142170B800DB33BA /* ScrollbarThemeMock.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderCookieJarcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/CookieJar.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/CookieJar.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/loader/CookieJar.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -83,9 +83,4 @@
</span><span class="cx">     platformStrategies()-&gt;cookiesStrategy()-&gt;deleteCookie(storageSession(document), url, cookieName);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void addCookie(const Document&amp; document, const URL&amp; url, const Cookie&amp; cookie)
-{
-    platformStrategies()-&gt;cookiesStrategy()-&gt;addCookie(storageSession(document), url, cookie);
</del><span class="cx"> }
</span><del>-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreloaderCookieJarh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/CookieJar.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/CookieJar.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/loader/CookieJar.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -45,6 +45,5 @@
</span><span class="cx"> WEBCORE_EXPORT String cookieRequestHeaderFieldValue(const Document&amp;, const URL&amp;);
</span><span class="cx"> WEBCORE_EXPORT bool getRawCookies(const Document&amp;, const URL&amp;, Vector&lt;Cookie&gt;&amp;);
</span><span class="cx"> WEBCORE_EXPORT void deleteCookie(const Document&amp;, const URL&amp;, const String&amp; cookieName);
</span><del>-WEBCORE_EXPORT void addCookie(const Document&amp;, const URL&amp;, const Cookie&amp;);
</del><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformCookieh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Cookie.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Cookie.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/Cookie.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -29,49 +29,95 @@
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><ins>+#ifdef __OBJC__
+#include &lt;objc/objc.h&gt;
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-    struct Cookie {
-        Cookie() { }
</del><ins>+struct Cookie {
+    Cookie() { }
</ins><span class="cx"> 
</span><del>-        Cookie(const String&amp; name, const String&amp; value, const String&amp; domain,
-                const String&amp; path, double expires, bool httpOnly, bool secure,
-                bool session)
-            : name(name)
-            , value(value)
-            , domain(domain)
-            , path(path)
-            , expires(expires)
-            , httpOnly(httpOnly)
-            , secure(secure)
-            , session(session)
-        {
-        }
</del><ins>+    Cookie(const String&amp; name, const String&amp; value, const String&amp; domain, const String&amp; path, double expires, bool httpOnly, bool secure, bool session)
+        : name(name)
+        , value(value)
+        , domain(domain)
+        , path(path)
+        , expires(expires)
+        , httpOnly(httpOnly)
+        , secure(secure)
+        , session(session)
+    {
+    }
</ins><span class="cx"> 
</span><del>-        String name;
-        String value;
-        String domain;
-        String path;
-        // Expiration date, expressed as milliseconds since the UNIX epoch.
-        double expires;
-        bool httpOnly;
-        bool secure;
-        bool session;
-    };
</del><ins>+    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
+    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, Cookie&amp;);
</ins><span class="cx"> 
</span><del>-    struct CookieHash {
-        static unsigned hash(const Cookie&amp; key)
-        { 
-            return StringHash::hash(key.name) + StringHash::hash(key.domain) + StringHash::hash(key.path) + key.secure;
-        }
</del><ins>+#ifdef __OBJC__
+    operator NSHTTPCookie *() const;
+#endif
</ins><span class="cx"> 
</span><del>-        static bool equal(const Cookie&amp; a, const Cookie&amp; b)
-        {
-            return a.name == b.name &amp;&amp; a.domain == b.domain &amp;&amp; a.path == b.path &amp;&amp; a.secure == b.secure;
-        }
-    };
</del><ins>+    String name;
+    String value;
+    String domain;
+    String path;
+    // Expiration date, expressed as milliseconds since the UNIX epoch.
+    double expires;
+    bool httpOnly;
+    bool secure;
+    bool session;
+};
+
+struct CookieHash {
+    static unsigned hash(const Cookie&amp; key)
+    { 
+        return StringHash::hash(key.name) + StringHash::hash(key.domain) + StringHash::hash(key.path) + key.secure;
+    }
+
+    static bool equal(const Cookie&amp; a, const Cookie&amp; b)
+    {
+        return a.name == b.name &amp;&amp; a.domain == b.domain &amp;&amp; a.path == b.path &amp;&amp; a.secure == b.secure;
+    }
+};
+
+template&lt;class Encoder&gt;
+void Cookie::encode(Encoder&amp; encoder) const
+{
+    encoder &lt;&lt; name;
+    encoder &lt;&lt; value;
+    encoder &lt;&lt; domain;
+    encoder &lt;&lt; path;
+    encoder &lt;&lt; expires;
+    encoder &lt;&lt; httpOnly;
+    encoder &lt;&lt; secure;
+    encoder &lt;&lt; session;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+template&lt;class Decoder&gt;
+bool Cookie::decode(Decoder&amp; decoder, Cookie&amp; cookie)
+{
+    if (!decoder.decode(cookie.name))
+        return false;
+    if (!decoder.decode(cookie.value))
+        return false;
+    if (!decoder.decode(cookie.domain))
+        return false;
+    if (!decoder.decode(cookie.path))
+        return false;
+    if (!decoder.decode(cookie.expires))
+        return false;
+    if (!decoder.decode(cookie.httpOnly))
+        return false;
+    if (!decoder.decode(cookie.secure))
+        return false;
+    if (!decoder.decode(cookie.session))
+        return false;
+
+    return true;
+}
+
+}
+
</ins><span class="cx"> namespace WTF {
</span><span class="cx">     template&lt;typename T&gt; struct DefaultHash;
</span><span class="cx">     template&lt;&gt; struct DefaultHash&lt;WebCore::Cookie&gt; {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformCookiesStrategyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/CookiesStrategy.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/CookiesStrategy.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/CookiesStrategy.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -45,7 +45,6 @@
</span><span class="cx">     virtual String cookieRequestHeaderFieldValue(SessionID, const URL&amp; firstParty, const URL&amp;) = 0;
</span><span class="cx">     virtual bool getRawCookies(const NetworkStorageSession&amp;, const URL&amp; firstParty, const URL&amp;, Vector&lt;Cookie&gt;&amp;) = 0;
</span><span class="cx">     virtual void deleteCookie(const NetworkStorageSession&amp;, const URL&amp;, const String&amp; cookieName) = 0;
</span><del>-    virtual void addCookie(const NetworkStorageSession&amp;, const URL&amp;, const Cookie&amp;) = 0;
</del><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     virtual ~CookiesStrategy() { }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkNetworkStorageSessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/NetworkStorageSession.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/NetworkStorageSession.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/NetworkStorageSession.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -41,6 +41,10 @@
</span><span class="cx"> typedef struct _SoupCookieJar SoupCookieJar;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#ifdef __OBJC__
+#include &lt;objc/objc.h&gt;
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class NetworkingContext;
</span><span class="lines">@@ -47,6 +51,8 @@
</span><span class="cx"> class ResourceRequest;
</span><span class="cx"> class SoupNetworkSession;
</span><span class="cx"> 
</span><ins>+struct Cookie;
+
</ins><span class="cx"> class NetworkStorageSession {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(NetworkStorageSession); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="lines">@@ -61,6 +67,10 @@
</span><span class="cx">     SessionID sessionID() const { return m_sessionID; }
</span><span class="cx">     CredentialStorage&amp; credentialStorage() { return m_credentialStorage; }
</span><span class="cx"> 
</span><ins>+#ifdef __OBJC__
+    NSHTTPCookieStorage *nsCookieStorage() const;
+#endif
+
</ins><span class="cx"> #if PLATFORM(COCOA) || USE(CFURLCONNECTION)
</span><span class="cx">     NetworkStorageSession(SessionID, RetainPtr&lt;CFURLStorageSessionRef&gt;);
</span><span class="cx"> 
</span><span class="lines">@@ -90,6 +100,8 @@
</span><span class="cx">     NetworkingContext* context() const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    WEBCORE_EXPORT void setCookies(const Vector&lt;Cookie&gt;&amp;, const URL&amp;, const URL&amp; mainDocumentURL);
+
</ins><span class="cx"> private:
</span><span class="cx">     static HashMap&lt;SessionID, std::unique_ptr&lt;NetworkStorageSession&gt;&gt;&amp; globalSessionMap();
</span><span class="cx">     SessionID m_sessionID;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkPlatformCookieJarh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/PlatformCookieJar.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/PlatformCookieJar.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/PlatformCookieJar.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> WEBCORE_EXPORT String cookieRequestHeaderFieldValue(const NetworkStorageSession&amp;, const URL&amp; firstParty, const URL&amp;);
</span><span class="cx"> WEBCORE_EXPORT bool getRawCookies(const NetworkStorageSession&amp;, const URL&amp; firstParty, const URL&amp;, Vector&lt;Cookie&gt;&amp;);
</span><span class="cx"> WEBCORE_EXPORT void deleteCookie(const NetworkStorageSession&amp;, const URL&amp;, const String&amp;);
</span><del>-WEBCORE_EXPORT void addCookie(const NetworkStorageSession&amp;, const URL&amp;, const Cookie&amp;);
</del><span class="cx"> WEBCORE_EXPORT void getHostnamesWithCookies(const NetworkStorageSession&amp;, HashSet&lt;String&gt;&amp; hostnames);
</span><span class="cx"> WEBCORE_EXPORT void deleteCookiesForHostnames(const NetworkStorageSession&amp;, const Vector&lt;String&gt;&amp; cookieHostNames);
</span><span class="cx"> WEBCORE_EXPORT void deleteAllCookies(const NetworkStorageSession&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfCookieJarCFNetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -218,12 +218,6 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void addCookie(const NetworkStorageSession&amp;, const URL&amp;, const Cookie&amp;)
-{
-    // FIXME: implement this command. &lt;https://webkit.org/b/156298&gt;
-    notImplemented();
-}
-
</del><span class="cx"> void getHostnamesWithCookies(const NetworkStorageSession&amp; session, HashSet&lt;String&gt;&amp; hostnames)
</span><span class="cx"> {
</span><span class="cx">     RetainPtr&lt;CFArrayRef&gt; cookiesCF = adoptCF(CFHTTPCookieStorageCopyCookies(session.cookieStorage().get()));
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcfNetworkStorageSessionCFNetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -166,4 +166,11 @@
</span><span class="cx"> 
</span><span class="cx"> #endif // HAVE(CFNETWORK_STORAGE_PARTITIONING)
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(COCOA)
+void NetworkStorageSession::setCookies(const Vector&lt;Cookie&gt;&amp;, const URL&amp;, const URL&amp;)
+{
+    // FIXME: Implement this. &lt;https://webkit.org/b/156298&gt;
</ins><span class="cx"> }
</span><ins>+#endif
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcocoaCookieCocoammfromrev213758trunkSourceWebCoreloaderCookieJarh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/network/cocoa/CookieCocoa.mm (from rev 213758, trunk/Source/WebCore/loader/CookieJar.h) (0 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cocoa/CookieCocoa.mm                                (rev 0)
+++ trunk/Source/WebCore/platform/network/cocoa/CookieCocoa.mm        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -0,0 +1,53 @@
</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. ``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
+ * 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 &quot;config.h&quot;
+#import &quot;Cookie.h&quot;
+
+#import &lt;wtf/BlockObjCExceptions.h&gt;
+
+namespace WebCore {
+
+Cookie::operator NSHTTPCookie *() const
+{
+    // FIXME: existing APIs do not provide a way to set httpOnly without parsing headers from scratch.
+
+    BEGIN_BLOCK_OBJC_EXCEPTIONS
+
+    return [NSHTTPCookie cookieWithProperties:@{
+        NSHTTPCookieName: name,
+        NSHTTPCookieValue: value,
+        NSHTTPCookieDomain: domain,
+        NSHTTPCookiePath: path,
+        NSHTTPCookieDomain: domain,
+        NSHTTPCookieSecure: @(secure),
+        NSHTTPCookieDiscard: @(session),
+        NSHTTPCookieExpires: [NSDate dateWithTimeIntervalSince1970:expires / 1000.0],
+        }];
+
+    END_BLOCK_OBJC_EXCEPTIONS
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcocoaNetworkStorageSessionCocoammfromrev213758trunkSourceWebCoreloaderCookieJarh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm (from rev 213758, trunk/Source/WebCore/loader/CookieJar.h) (0 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm                                (rev 0)
+++ trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -0,0 +1,55 @@
</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. ``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
+ * 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 &quot;config.h&quot;
+#import &quot;NetworkStorageSession.h&quot;
+
+#import &quot;Cookie.h&quot;
+#import &quot;URL.h&quot;
+#import &lt;wtf/BlockObjCExceptions.h&gt;
+
+namespace WebCore {
+
+void NetworkStorageSession::setCookies(const Vector&lt;Cookie&gt;&amp; cookies, const URL&amp; url, const URL&amp; mainDocumentURL)
+{
+    RetainPtr&lt;NSMutableArray&gt; nsCookies = adoptNS([[NSMutableArray alloc] initWithCapacity:cookies.size()]);
+    for (auto cookie : cookies)
+        [nsCookies addObject:(NSHTTPCookie *)cookie];
+
+    BEGIN_BLOCK_OBJC_EXCEPTIONS;
+    [nsCookieStorage() setCookies:nsCookies.get() forURL:(NSURL *)url mainDocumentURL:(NSURL *)mainDocumentURL];
+    END_BLOCK_OBJC_EXCEPTIONS;
+}
+
+NSHTTPCookieStorage *NetworkStorageSession::nsCookieStorage() const
+{
+    auto cfCookieStorage = cookieStorage();
+    if (!cfCookieStorage || [NSHTTPCookieStorage sharedHTTPCookieStorage]._cookieStorage == cfCookieStorage)
+        return [NSHTTPCookieStorage sharedHTTPCookieStorage];
+
+    return [[[NSHTTPCookieStorage alloc] _initWithCFHTTPCookieStorage:cfCookieStorage.get()] autorelease];
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcurlCookieJarCurlcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -332,12 +332,6 @@
</span><span class="cx">     // FIXME: Not yet implemented
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void addCookie(const NetworkStorageSession&amp;, const URL&amp;, const Cookie&amp;)
-{
-    // FIXME: implement this command. &lt;https://webkit.org/b/156296&gt;
-    notImplemented();
-}
-
</del><span class="cx"> void getHostnamesWithCookies(const NetworkStorageSession&amp;, HashSet&lt;String&gt;&amp; hostnames)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: Not yet implemented
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacCookieJarMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -31,10 +31,6 @@
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #import &lt;wtf/BlockObjCExceptions.h&gt;
</span><span class="cx"> 
</span><del>-namespace WebCore {
-static NSHTTPCookieStorage *cookieStorage(const NetworkStorageSession&amp;);
-}
-
</del><span class="cx"> #if !USE(CFURLCONNECTION)
</span><span class="cx"> 
</span><span class="cx"> #import &quot;Cookie.h&quot;
</span><span class="lines">@@ -260,38 +256,6 @@
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void addCookie(const NetworkStorageSession&amp; session, const URL&amp; url, const Cookie&amp; cookie)
-{
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-
-    RetainPtr&lt;CFHTTPCookieStorageRef&gt; cookieStorage = session.cookieStorage();
-
-    // FIXME: existing APIs do not provide a way to set httpOnly without parsing headers from scratch.
-
-    NSURL *originURL = url;
-    NSHTTPCookie *httpCookie = [NSHTTPCookie cookieWithProperties:@{
-        NSHTTPCookieName: cookie.name,
-        NSHTTPCookieValue: cookie.value,
-        NSHTTPCookieDomain: cookie.domain,
-        NSHTTPCookiePath: cookie.path,
-        NSHTTPCookieOriginURL: originURL,
-        NSHTTPCookieSecure: @(cookie.secure),
-        NSHTTPCookieDiscard: @(cookie.session),
-        NSHTTPCookieExpires: [NSDate dateWithTimeIntervalSince1970:cookie.expires / 1000.0],
-    }];
-
-#if !USE(CFURLCONNECTION)
-    if (!cookieStorage) {
-        [WebCore::cookieStorage(session) setCookie:httpCookie];
-        return;
-    }
-#endif // !USE(CFURLCONNECTION)
-
-    CFHTTPCookieStorageSetCookie(cookieStorage.get(), [httpCookie _CFHTTPCookie]);
-
-    END_BLOCK_OBJC_EXCEPTIONS;
-}
-
</del><span class="cx"> void getHostnamesWithCookies(const NetworkStorageSession&amp; session, HashSet&lt;String&gt;&amp; hostnames)
</span><span class="cx"> {
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><span class="lines">@@ -315,15 +279,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-static NSHTTPCookieStorage *cookieStorage(const NetworkStorageSession&amp; session)
-{
-    auto cookieStorage = session.cookieStorage();
-    if (!cookieStorage || [NSHTTPCookieStorage sharedHTTPCookieStorage]._cookieStorage == cookieStorage)
-        return [NSHTTPCookieStorage sharedHTTPCookieStorage];
-
-    return [[[NSHTTPCookieStorage alloc] _initWithCFHTTPCookieStorage:cookieStorage.get()] autorelease];
-}
-
</del><span class="cx"> void deleteCookiesForHostnames(const NetworkStorageSession&amp; session, const Vector&lt;String&gt;&amp; hostnames)
</span><span class="cx"> {
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><span class="lines">@@ -348,7 +303,7 @@
</span><span class="cx">             wkDeleteHTTPCookie(cookieStorage.get(), cookie.get());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    [WebCore::cookieStorage(session) _saveCookies];
</del><ins>+    [session.nsCookieStorage() _saveCookies];
</ins><span class="cx"> 
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> }
</span><span class="lines">@@ -361,7 +316,7 @@
</span><span class="cx">     NSTimeInterval timeInterval = std::chrono::duration_cast&lt;std::chrono::duration&lt;double&gt;&gt;(timePoint.time_since_epoch()).count();
</span><span class="cx">     NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
</span><span class="cx"> 
</span><del>-    NSHTTPCookieStorage *storage = cookieStorage(session);
</del><ins>+    auto *storage = session.nsCookieStorage();
</ins><span class="cx"> 
</span><span class="cx">     [storage removeCookiesSinceDate:date];
</span><span class="cx">     [storage _saveCookies];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworksoupCookieJarSoupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -144,33 +144,6 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static SoupDate* msToSoupDate(double ms)
-{
-    int year = msToYear(ms);
-    int dayOfYear = dayInYear(ms, year);
-    bool leapYear = isLeapYear(year);
-    return soup_date_new(year, monthFromDayInYear(dayOfYear, leapYear), dayInMonthFromDayInYear(dayOfYear, leapYear), msToHours(ms), msToMinutes(ms), static_cast&lt;int&gt;(ms / 1000) % 60);
-}
-
-static SoupCookie* toSoupCookie(const Cookie&amp; cookie)
-{
-    SoupCookie* soupCookie = soup_cookie_new(cookie.name.utf8().data(), cookie.value.utf8().data(),
-        cookie.domain.utf8().data(), cookie.path.utf8().data(), -1);
-    soup_cookie_set_http_only(soupCookie, cookie.httpOnly);
-    soup_cookie_set_secure(soupCookie, cookie.secure);
-    if (!cookie.session) {
-        SoupDate* date = msToSoupDate(cookie.expires);
-        soup_cookie_set_expires(soupCookie, date);
-        soup_date_free(date);
-    }
-    return soupCookie;
-}
-
-void addCookie(const NetworkStorageSession&amp; session, const URL&amp;, const Cookie&amp; cookie)
-{
-    soup_cookie_jar_add_cookie(session.cookieStorage(), toSoupCookie(cookie));
-}
-
</del><span class="cx"> void getHostnamesWithCookies(const NetworkStorageSession&amp; session, HashSet&lt;String&gt;&amp; hostnames)
</span><span class="cx"> {
</span><span class="cx">     GUniquePtr&lt;GSList&gt; cookies(soup_cookie_jar_all_cookies(session.cookieStorage()));
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworksoupNetworkStorageSessionSoupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -30,9 +30,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx"> 
</span><ins>+#include &quot;Cookie.h&quot;
</ins><span class="cx"> #include &quot;ResourceHandle.h&quot;
</span><span class="cx"> #include &quot;SoupNetworkSession.h&quot;
</span><span class="cx"> #include &lt;libsoup/soup.h&gt;
</span><ins>+#include &lt;wtf/DateMath.h&gt;
</ins><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #include &lt;wtf/glib/GUniquePtr.h&gt;
</span><span class="lines">@@ -274,6 +276,35 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static SoupDate* msToSoupDate(double ms)
+{
+    int year = msToYear(ms);
+    int dayOfYear = dayInYear(ms, year);
+    bool leapYear = isLeapYear(year);
+    return soup_date_new(year, monthFromDayInYear(dayOfYear, leapYear), dayInMonthFromDayInYear(dayOfYear, leapYear), msToHours(ms), msToMinutes(ms), static_cast&lt;int&gt;(ms / 1000) % 60);
+}
+
+static SoupCookie* toSoupCookie(const Cookie&amp; cookie)
+{
+    SoupCookie* soupCookie = soup_cookie_new(cookie.name.utf8().data(), cookie.value.utf8().data(),
+        cookie.domain.utf8().data(), cookie.path.utf8().data(), -1);
+    soup_cookie_set_http_only(soupCookie, cookie.httpOnly);
+    soup_cookie_set_secure(soupCookie, cookie.secure);
+    if (!cookie.session) {
+        SoupDate* date = msToSoupDate(cookie.expires);
+        soup_cookie_set_expires(soupCookie, date);
+        soup_date_free(date);
+    }
+    return soupCookie;
+}
+
+void NetworkStorageSession::setCookies(const Vector&lt;Cookie&gt;&amp; cookies, const URL&amp;, const URL&amp;)
+{
+    for (auto cookie : cookies)
+        soup_cookie_jar_add_cookie(cookieStorage(), toSoupCookie(cookie));
+}
+
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // USE(SOUP)
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit/mac/ChangeLog        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2017-03-11  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Cleanup &quot;addCookie&quot; and its sole user.
+        https://bugs.webkit.org/show_bug.cgi?id=169486
+
+        Reviewed by Brian Burg.
+
+        * WebCoreSupport/WebPlatformStrategies.h:
+        * WebCoreSupport/WebPlatformStrategies.mm:
+        (WebPlatformStrategies::addCookie): Deleted.
+
</ins><span class="cx"> 2017-03-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix watch and tv builds after r213294
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx">     String cookieRequestHeaderFieldValue(WebCore::SessionID, const WebCore::URL&amp; firstParty, const WebCore::URL&amp;) override;
</span><span class="cx">     bool getRawCookies(const WebCore::NetworkStorageSession&amp;, const WebCore::URL&amp; firstParty, const WebCore::URL&amp;, Vector&lt;WebCore::Cookie&gt;&amp;) override;
</span><span class="cx">     void deleteCookie(const WebCore::NetworkStorageSession&amp;, const WebCore::URL&amp;, const String&amp;) override;
</span><del>-    void addCookie(const WebCore::NetworkStorageSession&amp;, const WebCore::URL&amp;, const WebCore::Cookie&amp;) override;
</del><span class="cx"> 
</span><span class="cx">     // WebCore::PasteboardStrategy
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -110,11 +110,6 @@
</span><span class="cx">     WebCore::deleteCookie(session, url, cookieName);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPlatformStrategies::addCookie(const NetworkStorageSession&amp; session, const URL&amp; url, const Cookie&amp; cookie)
-{
-    WebCore::addCookie(session, url, cookie);
-}
-
</del><span class="cx"> void WebPlatformStrategies::getTypes(Vector&lt;String&gt;&amp; types, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     PlatformPasteboard(pasteboardName).getTypes(types);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/ChangeLog        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -1,3 +1,38 @@
</span><ins>+2017-03-11  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Cleanup &quot;addCookie&quot; and its sole user.
+        https://bugs.webkit.org/show_bug.cgi?id=169486
+
+        Reviewed by Brian Burg.
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::addCookie): Deleted.
+        * NetworkProcess/NetworkConnectionToWebProcess.h:
+        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::ArgumentCoder&lt;Cookie&gt;::encode): Deleted.
+        (IPC::ArgumentCoder&lt;Cookie&gt;::decode): Deleted.
+        * Shared/WebCoreArgumentCoders.h:
+
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::addSingleCookie):
+
+        * UIProcess/WebCookieManagerProxy.cpp:
+        (WebKit::WebCookieManagerProxy::setCookies):
+        (WebKit::WebCookieManagerProxy::addCookie): Deleted.
+        * UIProcess/WebCookieManagerProxy.h:
+
+        * WebProcess/Cookies/WebCookieManager.cpp:
+        (WebKit::WebCookieManager::setCookies):
+        (WebKit::WebCookieManager::addCookie): Deleted.
+        * WebProcess/Cookies/WebCookieManager.h:
+        * WebProcess/Cookies/WebCookieManager.messages.in:
+
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+        (WebKit::WebPlatformStrategies::addCookie): Deleted.
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
+
</ins><span class="cx"> 2017-03-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix watch and tv builds after r213294
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -279,11 +279,6 @@
</span><span class="cx">     WebCore::deleteCookie(storageSession(sessionID), url, cookieName);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkConnectionToWebProcess::addCookie(SessionID sessionID, const URL&amp; url, const Cookie&amp; cookie)
-{
-    WebCore::addCookie(storageSession(sessionID), url, cookie);
-}
-
</del><span class="cx"> void NetworkConnectionToWebProcess::registerFileBlobURL(const URL&amp; url, const String&amp; path, const SandboxExtension::Handle&amp; extensionHandle, const String&amp; contentType)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;SandboxExtension&gt; extension = SandboxExtension::create(extensionHandle);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -91,7 +91,6 @@
</span><span class="cx">     void cookieRequestHeaderFieldValue(WebCore::SessionID, const WebCore::URL&amp; firstParty, const WebCore::URL&amp;, String&amp; result);
</span><span class="cx">     void getRawCookies(WebCore::SessionID, const WebCore::URL&amp; firstParty, const WebCore::URL&amp;, Vector&lt;WebCore::Cookie&gt;&amp;);
</span><span class="cx">     void deleteCookie(WebCore::SessionID, const WebCore::URL&amp;, const String&amp; cookieName);
</span><del>-    void addCookie(WebCore::SessionID, const WebCore::URL&amp;, const WebCore::Cookie&amp;);
</del><span class="cx"> 
</span><span class="cx">     void registerFileBlobURL(const WebCore::URL&amp;, const String&amp; path, const SandboxExtension::Handle&amp;, const String&amp; contentType);
</span><span class="cx">     void registerBlobURL(const WebCore::URL&amp;, Vector&lt;WebCore::BlobPart&gt;&amp;&amp;, const String&amp; contentType);
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcessmessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx">     CookieRequestHeaderFieldValue(WebCore::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url) -&gt; (String result)
</span><span class="cx">     GetRawCookies(WebCore::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url) -&gt; (Vector&lt;WebCore::Cookie&gt; cookies)
</span><span class="cx">     DeleteCookie(WebCore::SessionID sessionID, WebCore::URL url, String cookieName)
</span><del>-    AddCookie(WebCore::SessionID sessionID, WebCore::URL url, struct WebCore::Cookie cookie)
</del><span class="cx"> 
</span><span class="cx">     RegisterFileBlobURL(WebCore::URL url, String path, WebKit::SandboxExtension::Handle extensionHandle, String contentType)
</span><span class="cx">     RegisterBlobURL(WebCore::URL url, Vector&lt;WebCore::BlobPart&gt; blobParts, String contentType)
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebCoreArgumentCoderscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include &lt;WebCore/AuthenticationChallenge.h&gt;
</span><span class="cx"> #include &lt;WebCore/BlobPart.h&gt;
</span><span class="cx"> #include &lt;WebCore/CertificateInfo.h&gt;
</span><del>-#include &lt;WebCore/Cookie.h&gt;
</del><span class="cx"> #include &lt;WebCore/Credential.h&gt;
</span><span class="cx"> #include &lt;WebCore/Cursor.h&gt;
</span><span class="cx"> #include &lt;WebCore/DatabaseDetails.h&gt;
</span><span class="lines">@@ -1284,41 +1283,6 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-
-void ArgumentCoder&lt;Cookie&gt;::encode(Encoder&amp; encoder, const Cookie&amp; cookie)
-{
-    encoder &lt;&lt; cookie.name;
-    encoder &lt;&lt; cookie.value;
-    encoder &lt;&lt; cookie.domain;
-    encoder &lt;&lt; cookie.path;
-    encoder &lt;&lt; cookie.expires;
-    encoder &lt;&lt; cookie.httpOnly;
-    encoder &lt;&lt; cookie.secure;
-    encoder &lt;&lt; cookie.session;
-}
-
-bool ArgumentCoder&lt;Cookie&gt;::decode(Decoder&amp; decoder, Cookie&amp; cookie)
-{
-    if (!decoder.decode(cookie.name))
-        return false;
-    if (!decoder.decode(cookie.value))
-        return false;
-    if (!decoder.decode(cookie.domain))
-        return false;
-    if (!decoder.decode(cookie.path))
-        return false;
-    if (!decoder.decode(cookie.expires))
-        return false;
-    if (!decoder.decode(cookie.httpOnly))
-        return false;
-    if (!decoder.decode(cookie.secure))
-        return false;
-    if (!decoder.decode(cookie.session))
-        return false;
-
-    return true;
-}
-
</del><span class="cx"> void ArgumentCoder&lt;DatabaseDetails&gt;::encode(Encoder&amp; encoder, const DatabaseDetails&amp; details)
</span><span class="cx"> {
</span><span class="cx">     encoder &lt;&lt; details.name();
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebCoreArgumentCodersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -83,7 +83,6 @@
</span><span class="cx"> class UserScript;
</span><span class="cx"> class URL;
</span><span class="cx"> struct CompositionUnderline;
</span><del>-struct Cookie;
</del><span class="cx"> struct DictationAlternative;
</span><span class="cx"> struct DictionaryPopupInfo;
</span><span class="cx"> struct EventTrackingRegions;
</span><span class="lines">@@ -405,11 +404,6 @@
</span><span class="cx">     static bool decode(Decoder&amp;, WebCore::CompositionUnderline&amp;);
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct ArgumentCoder&lt;WebCore::Cookie&gt; {
-    static void encode(Encoder&amp;, const WebCore::Cookie&amp;);
-    static bool decode(Decoder&amp;, WebCore::Cookie&amp;);
-};
-
</del><span class="cx"> template&lt;&gt; struct ArgumentCoder&lt;WebCore::DatabaseDetails&gt; {
</span><span class="cx">     static void encode(Encoder&amp;, const WebCore::DatabaseDetails&amp;);
</span><span class="cx">     static bool decode(Decoder&amp;, WebCore::DatabaseDetails&amp;);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAutomationWebAutomationSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -727,8 +727,11 @@
</span><span class="cx">         FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(MissingParameter, &quot;The parameter 'httpOnly' was not found.&quot;);
</span><span class="cx"> 
</span><span class="cx">     WebCookieManagerProxy* cookieManager = m_processPool-&gt;supplement&lt;WebCookieManagerProxy&gt;();
</span><del>-    cookieManager-&gt;addCookie(WebCore::SessionID::defaultSessionID(), cookie, activeURL.host());
</del><span class="cx"> 
</span><ins>+    // FIXME: Using activeURL here twice is basically saying &quot;this is always in the context of the main document&quot;
+    // which probably isn't accurate.
+    cookieManager-&gt;setCookies(WebCore::SessionID::defaultSessionID(), { cookie }, activeURL, activeURL);
+
</ins><span class="cx">     callback-&gt;sendSuccess();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebCookieManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -129,9 +129,9 @@
</span><span class="cx">     processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(sessionID, time));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebCookieManagerProxy::addCookie(WebCore::SessionID sessionID, const WebCore::Cookie&amp; cookie, const String&amp; hostname)
</del><ins>+void WebCookieManagerProxy::setCookies(WebCore::SessionID sessionID, const Vector&lt;WebCore::Cookie&gt;&amp; cookies, const WebCore::URL&amp; url, const WebCore::URL&amp; mainDocumentURL)
</ins><span class="cx"> {
</span><del>-    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::AddCookie(sessionID, cookie, hostname));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetCookies(sessionID, cookies, url, mainDocumentURL));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::startObservingCookieChanges(WebCore::SessionID sessionID)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebCookieManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -69,8 +69,9 @@
</span><span class="cx">     void deleteCookiesForHostname(WebCore::SessionID, const String&amp; hostname);
</span><span class="cx">     void deleteAllCookies(WebCore::SessionID);
</span><span class="cx">     void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point);
</span><del>-    void addCookie(WebCore::SessionID, const WebCore::Cookie&amp;, const String&amp; hostname);
</del><span class="cx"> 
</span><ins>+    void setCookies(WebCore::SessionID, const Vector&lt;WebCore::Cookie&gt;&amp;, const WebCore::URL&amp;, const WebCore::URL&amp; mainDocumentURL);
+
</ins><span class="cx">     void setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy);
</span><span class="cx">     void getHTTPCookieAcceptPolicy(std::function&lt;void (HTTPCookieAcceptPolicy, CallbackBase::Error)&gt;);
</span><span class="cx">     void setCookieStoragePartitioningEnabled(bool);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessCookiesWebCookieManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include &quot;WebCookieManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebCookieManagerProxyMessages.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><ins>+#include &lt;WebCore/Cookie.h&gt;
</ins><span class="cx"> #include &lt;WebCore/CookieStorage.h&gt;
</span><span class="cx"> #include &lt;WebCore/NetworkStorageSession.h&gt;
</span><span class="cx"> #include &lt;WebCore/PlatformCookieJar.h&gt;
</span><span class="lines">@@ -83,10 +84,10 @@
</span><span class="cx">         WebCore::deleteAllCookiesModifiedSince(*storageSession, time);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebCookieManager::addCookie(SessionID sessionID, const Cookie&amp; cookie, const String&amp; hostname)
</del><ins>+void WebCookieManager::setCookies(WebCore::SessionID sessionID, const Vector&lt;Cookie&gt;&amp; cookies, const URL&amp; url, const URL&amp; mainDocumentURL)
</ins><span class="cx"> {
</span><span class="cx">     if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
</span><del>-        WebCore::addCookie(*storageSession, URL(URL(), hostname), cookie);
</del><ins>+        storageSession-&gt;setCookies(cookies, url, mainDocumentURL);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManager::notifyCookiesDidChange(SessionID sessionID)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessCookiesWebCookieManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &lt;stdint.h&gt;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><ins>+#include &lt;wtf/Vector.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx"> #include &quot;SoupCookiePersistentStorageType.h&quot;
</span><span class="lines">@@ -40,6 +41,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><ins>+class URL;
</ins><span class="cx"> struct Cookie;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -69,8 +71,9 @@
</span><span class="cx">     void deleteCookiesForHostname(WebCore::SessionID, const String&amp;);
</span><span class="cx">     void deleteAllCookies(WebCore::SessionID);
</span><span class="cx">     void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point);
</span><del>-    void addCookie(WebCore::SessionID, const WebCore::Cookie&amp;, const String&amp; hostname);
</del><span class="cx"> 
</span><ins>+    void setCookies(WebCore::SessionID, const Vector&lt;WebCore::Cookie&gt;&amp;, const WebCore::URL&amp;, const WebCore::URL&amp; mainDocumentURL);
+
</ins><span class="cx">     void platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy);
</span><span class="cx">     void getHTTPCookieAcceptPolicy(uint64_t callbackID);
</span><span class="cx">     HTTPCookieAcceptPolicy platformGetHTTPCookieAcceptPolicy();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessCookiesWebCookieManagermessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -28,8 +28,9 @@
</span><span class="cx">     void DeleteCookiesForHostname(WebCore::SessionID sessionID, String hostname)
</span><span class="cx">     void DeleteAllCookies(WebCore::SessionID sessionID)
</span><span class="cx">     void DeleteAllCookiesModifiedSince(WebCore::SessionID sessionID, std::chrono::system_clock::time_point time)
</span><del>-    void AddCookie(WebCore::SessionID sessionID, struct WebCore::Cookie cookie, String hostname)
</del><span class="cx"> 
</span><ins>+    void SetCookies(WebCore::SessionID sessionID, Vector&lt;WebCore::Cookie&gt; cookies, WebCore::URL url, WebCore::URL mainDocumentURL);
+
</ins><span class="cx">     void SetHTTPCookieAcceptPolicy(uint32_t policy)
</span><span class="cx">     void GetHTTPCookieAcceptPolicy(uint64_t callbackID)
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -155,11 +155,6 @@
</span><span class="cx">     WebProcess::singleton().networkConnection().connection().send(Messages::NetworkConnectionToWebProcess::DeleteCookie(session.sessionID(), url, cookieName), 0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPlatformStrategies::addCookie(const NetworkStorageSession&amp; session, const URL&amp; url, const Cookie&amp; cookie)
-{
-    WebProcess::singleton().networkConnection().connection().send(Messages::NetworkConnectionToWebProcess::AddCookie(session.sessionID(), url, cookie), 0);
-}
-
</del><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> // PasteboardStrategy
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h (213758 => 213759)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h        2017-03-11 13:57:13 UTC (rev 213758)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h        2017-03-11 16:44:00 UTC (rev 213759)
</span><span class="lines">@@ -56,7 +56,6 @@
</span><span class="cx">     String cookieRequestHeaderFieldValue(WebCore::SessionID, const WebCore::URL&amp; firstParty, const WebCore::URL&amp;) override;
</span><span class="cx">     bool getRawCookies(const WebCore::NetworkStorageSession&amp;, const WebCore::URL&amp; firstParty, const WebCore::URL&amp;, Vector&lt;WebCore::Cookie&gt;&amp;) override;
</span><span class="cx">     void deleteCookie(const WebCore::NetworkStorageSession&amp;, const WebCore::URL&amp;, const String&amp;) override;
</span><del>-    void addCookie(const WebCore::NetworkStorageSession&amp;, const WebCore::URL&amp;, const WebCore::Cookie&amp;) override;
</del><span class="cx"> 
</span><span class="cx">     // WebCore::PasteboardStrategy
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre>
</div>
</div>

</body>
</html>