<!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>[243723] tags/Safari-608.1.13.4</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/243723">243723</a></dd>
<dt>Author</dt> <dd>alancoon@apple.com</dd>
<dt>Date</dt> <dd>2019-04-01 16:54:14 -0700 (Mon, 01 Apr 2019)</dd>
</dl>

<h3>Log Message</h3>
<pre>Cherry-pick <a href="http://trac.webkit.org/projects/webkit/changeset/243671">r243671</a>. rdar://problem/47859936

    Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
    https://bugs.webkit.org/show_bug.cgi?id=196407
    <rdar://problem/47859936>

    Reviewed by Brent Fulgham.

    Source/WebCore:

    Test: http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html

    This patch removes old code for the batching into "statistics updated" calls.
    Since the move of Resource Load Statistics to the network process, all such
    collection is done directly through dedicated calls to the network process.

    The remaining functionality was renamed to make it more clear, i.e.
    ResourceLoadObserver::notifyObserver() renamed to
    ResourceLoadObserver::updateCentralStatisticsStore().

    * loader/ResourceLoadObserver.cpp:
    (WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
    (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
    (WebCore::ResourceLoadObserver::logSubresourceLoading):
    (WebCore::ResourceLoadObserver::logWebSocketLoading):
    (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
    (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
    (WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
    (WebCore::ResourceLoadObserver::clearState):
    (WebCore::ResourceLoadObserver::setNotificationCallback): Deleted.
    (WebCore::ResourceLoadObserver::ResourceLoadObserver): Deleted.
    (WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded): Deleted.
    (WebCore::ResourceLoadObserver::notifyObserver): Deleted.
    * loader/ResourceLoadObserver.h:
    * testing/Internals.cpp:
    (WebCore::Internals::notifyResourceLoadObserver):

    Source/WebKit:

    The two WebResourceLoadStatisticsStore IPC endpoints were left behind when we
    moved Resource Load Statistics from the UI process to the network process. One
    of the endpoints is the message RequestStorageAccessUnderOpener which underpins
    our compatibility fix for federated logins using popups. This patch redirects
    these IPC calls to the network process and cleans up some assumptions around
    them.

    * CMakeLists.txt:
        Removed the old IPC receiver.
    * DerivedSources.make:
        Removed the old IPC receiver.
    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
    (WebKit::WebResourceLoadStatisticsStore::requestUpdate): Deleted.
        This is no longer needed since there is a dedicated update mechanism
        that actually sends the update.
    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
    * NetworkProcess/NetworkConnectionToWebProcess.cpp:
    (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
    (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
        Two new IPC receivers to pipe the calls to the network process.
    (WebKit::NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate): Deleted.
        NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated now serves
        this purpose.
    * NetworkProcess/NetworkConnectionToWebProcess.h:
    * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
    * UIProcess/WebResourceLoadStatisticsStore.messages.in: Removed.
        Removed the old IPC receiver.
    * UIProcess/WebsiteData/WebsiteDataStore.cpp:
    * WebKit.xcodeproj/project.pbxproj:
    * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
    (WKBundleResourceLoadStatisticsNotifyObserver):
        Function name update.
    * WebProcess/WebProcess.cpp:
        Now calls IPC to the network process instead of the UI process.

    LayoutTests:

    * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
    * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
    * http/tests/storageAccess/resources/get-cookies.php:
    * http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243671 268f45cc-cd09-0410-ab3c-d52691b4dbfc</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#tagsSafari6081134LayoutTestsChangeLog">tags/Safari-608.1.13.4/LayoutTests/ChangeLog</a></li>
<li><a href="#tagsSafari6081134LayoutTestshttptestsstorageAccessdenystorageaccessunderopenerexpectedtxt">tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-expected.txt</a></li>
<li><a href="#tagsSafari6081134LayoutTestshttptestsstorageAccessdenystorageaccessunderopenerifautodismissexpectedtxt">tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt</a></li>
<li><a href="#tagsSafari6081134LayoutTestshttptestsstorageAccessresourcesgetcookiesphp">tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/get-cookies.php</a></li>
<li><a href="#tagsSafari6081134SourceWebCoreChangeLog">tags/Safari-608.1.13.4/Source/WebCore/ChangeLog</a></li>
<li><a href="#tagsSafari6081134SourceWebCoreloaderResourceLoadObservercpp">tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.cpp</a></li>
<li><a href="#tagsSafari6081134SourceWebCoreloaderResourceLoadObserverh">tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.h</a></li>
<li><a href="#tagsSafari6081134SourceWebCoretestingInternalscpp">tags/Safari-608.1.13.4/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#tagsSafari6081134SourceWebKitCMakeListstxt">tags/Safari-608.1.13.4/Source/WebKit/CMakeLists.txt</a></li>
<li><a href="#tagsSafari6081134SourceWebKitChangeLog">tags/Safari-608.1.13.4/Source/WebKit/ChangeLog</a></li>
<li><a href="#tagsSafari6081134SourceWebKitDerivedSourcesmake">tags/Safari-608.1.13.4/Source/WebKit/DerivedSources.make</a></li>
<li><a href="#tagsSafari6081134SourceWebKitNetworkProcessClassifierWebResourceLoadStatisticsStorecpp">tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp</a></li>
<li><a href="#tagsSafari6081134SourceWebKitNetworkProcessClassifierWebResourceLoadStatisticsStoreh">tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h</a></li>
<li><a href="#tagsSafari6081134SourceWebKitNetworkProcessNetworkConnectionToWebProcesscpp">tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp</a></li>
<li><a href="#tagsSafari6081134SourceWebKitNetworkProcessNetworkConnectionToWebProcessh">tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h</a></li>
<li><a href="#tagsSafari6081134SourceWebKitNetworkProcessNetworkConnectionToWebProcessmessagesin">tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in</a></li>
<li><a href="#tagsSafari6081134SourceWebKitUIProcessWebsiteDataWebsiteDataStorecpp">tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp</a></li>
<li><a href="#tagsSafari6081134SourceWebKitWebKitxcodeprojprojectpbxproj">tags/Safari-608.1.13.4/Source/WebKit/WebKit.xcodeproj/project.pbxproj</a></li>
<li><a href="#tagsSafari6081134SourceWebKitWebProcessInjectedBundleAPIcWKBundlecpp">tags/Safari-608.1.13.4/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp</a></li>
<li><a href="#tagsSafari6081134SourceWebKitWebProcessWebProcesscpp">tags/Safari-608.1.13.4/Source/WebKit/WebProcess/WebProcess.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#tagsSafari6081134LayoutTestshttptestsstorageAccessgrantstorageaccessunderopeneratpopupusergestureexpectedtxt">tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt</a></li>
<li><a href="#tagsSafari6081134LayoutTestshttptestsstorageAccessgrantstorageaccessunderopeneratpopupusergesturehtml">tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html</a></li>
<li><a href="#tagsSafari6081134LayoutTestshttptestsstorageAccessresourcesproduceusergesturesetcookieandreportbackhtml">tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#tagsSafari6081134SourceWebKitUIProcessWebResourceLoadStatisticsStoremessagesin">tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.messages.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="tagsSafari6081134LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/LayoutTests/ChangeLog (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/ChangeLog     2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/LayoutTests/ChangeLog        2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -1,3 +1,106 @@
</span><ins>+2019-04-01  Alan Coon  <alancoon@apple.com>
+
+        Cherry-pick r243671. rdar://problem/47859936
+
+    Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
+    https://bugs.webkit.org/show_bug.cgi?id=196407
+    <rdar://problem/47859936>
+    
+    Reviewed by Brent Fulgham.
+    
+    Source/WebCore:
+    
+    Test: http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html
+    
+    This patch removes old code for the batching into "statistics updated" calls.
+    Since the move of Resource Load Statistics to the network process, all such
+    collection is done directly through dedicated calls to the network process.
+    
+    The remaining functionality was renamed to make it more clear, i.e.
+    ResourceLoadObserver::notifyObserver() renamed to
+    ResourceLoadObserver::updateCentralStatisticsStore().
+    
+    * loader/ResourceLoadObserver.cpp:
+    (WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
+    (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
+    (WebCore::ResourceLoadObserver::logSubresourceLoading):
+    (WebCore::ResourceLoadObserver::logWebSocketLoading):
+    (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+    (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
+    (WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
+    (WebCore::ResourceLoadObserver::clearState):
+    (WebCore::ResourceLoadObserver::setNotificationCallback): Deleted.
+    (WebCore::ResourceLoadObserver::ResourceLoadObserver): Deleted.
+    (WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded): Deleted.
+    (WebCore::ResourceLoadObserver::notifyObserver): Deleted.
+    * loader/ResourceLoadObserver.h:
+    * testing/Internals.cpp:
+    (WebCore::Internals::notifyResourceLoadObserver):
+    
+    Source/WebKit:
+    
+    The two WebResourceLoadStatisticsStore IPC endpoints were left behind when we
+    moved Resource Load Statistics from the UI process to the network process. One
+    of the endpoints is the message RequestStorageAccessUnderOpener which underpins
+    our compatibility fix for federated logins using popups. This patch redirects
+    these IPC calls to the network process and cleans up some assumptions around
+    them.
+    
+    * CMakeLists.txt:
+        Removed the old IPC receiver.
+    * DerivedSources.make:
+        Removed the old IPC receiver.
+    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+    (WebKit::WebResourceLoadStatisticsStore::requestUpdate): Deleted.
+        This is no longer needed since there is a dedicated update mechanism
+        that actually sends the update.
+    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
+    * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+    (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
+    (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
+        Two new IPC receivers to pipe the calls to the network process.
+    (WebKit::NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate): Deleted.
+        NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated now serves
+        this purpose.
+    * NetworkProcess/NetworkConnectionToWebProcess.h:
+    * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+    * UIProcess/WebResourceLoadStatisticsStore.messages.in: Removed.
+        Removed the old IPC receiver.
+    * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+    * WebKit.xcodeproj/project.pbxproj:
+    * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+    (WKBundleResourceLoadStatisticsNotifyObserver):
+        Function name update.
+    * WebProcess/WebProcess.cpp:
+        Now calls IPC to the network process instead of the UI process.
+    
+    LayoutTests:
+    
+    * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
+    * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
+    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
+    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
+    * http/tests/storageAccess/resources/get-cookies.php:
+    * http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-03-29  John Wilander  <wilander@apple.com>
+
+            Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
+            https://bugs.webkit.org/show_bug.cgi?id=196407
+            <rdar://problem/47859936>
+
+            Reviewed by Brent Fulgham.
+
+            * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
+            * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
+            * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
+            * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
+            * http/tests/storageAccess/resources/get-cookies.php:
+            * http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.
+
</ins><span class="cx"> 2019-03-22  Ryan Haddad  <ryanhaddad@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r243356.
</span></span></pre></div>
<a id="tagsSafari6081134LayoutTestshttptestsstorageAccessdenystorageaccessunderopenerexpectedtxt"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-expected.txt (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-expected.txt        2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-expected.txt   2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -14,5 +14,4 @@
</span><span class="cx"> --------
</span><span class="cx"> Should not receive first-party cookie.
</span><span class="cx"> Did not receive cookie named 'firstPartyCookie'.
</span><del>-Did not receive cookie named ''.
</del><span class="cx"> Client-side document.cookie:
</span></span></pre></div>
<a id="tagsSafari6081134LayoutTestshttptestsstorageAccessdenystorageaccessunderopenerifautodismissexpectedtxt"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt        2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt   2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -14,5 +14,4 @@
</span><span class="cx"> --------
</span><span class="cx"> Should not receive first-party cookie.
</span><span class="cx"> Did not receive cookie named 'firstPartyCookie'.
</span><del>-Did not receive cookie named ''.
</del><span class="cx"> Client-side document.cookie:
</span></span></pre></div>
<a id="tagsSafari6081134LayoutTestshttptestsstorageAccessgrantstorageaccessunderopeneratpopupusergestureexpectedtxt"></a>
<div class="addfile"><h4>Added: tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt (0 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt                         (rev 0)
+++ tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt    2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Tests that a cross-origin window from a prevalent domain with previous user interaction gets storage access under its opener if it gets user interaction.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Cookie created.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
+
+--------
+Frame: '<!--frame1-->'
+--------
+Should receive first-party cookie.
+Received cookie named 'firstPartyCookie'.
+Client-side document.cookie: firstPartyCookie=value
</ins></span></pre></div>
<a id="tagsSafari6081134LayoutTestshttptestsstorageAccessgrantstorageaccessunderopeneratpopupusergesturehtml"></a>
<div class="addfile"><h4>Added: tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html (0 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html                         (rev 0)
+++ tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html    2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -0,0 +1,69 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+    <script src="/js-test-resources/js-test.js"></script>
+    <script src="/resourceLoadStatistics/resources/util.js"></script>
+</head>
+<body onload="run()">
+<script>
+    description("Tests that a cross-origin window from a prevalent domain with previous user interaction gets storage access under its opener if it gets user interaction.");
+    jsTestIsAsync = true;
+
+    function finishTest() {
+        setEnableFeature(false, finishJSTest);
+    }
+
+    function openIframe(url, onLoadHandler) {
+        const element = document.createElement("iframe");
+        element.src = url;
+        if (onLoadHandler) {
+            element.onload = onLoadHandler;
+        }
+        document.body.appendChild(element);
+    }
+
+    function receiveMessage(event) {
+        if (event.origin === "http://localhost:8000") {
+            if (event.data.indexOf("PASS") !== -1)
+                testPassed(event.data.replace("PASS ", ""));
+            else
+                testFailed(event.data);
+        } else
+            testFailed("Received a message from an unexpected origin: " + event.origin);
+
+        newWin.close();
+        openIframe(thirdPartyBaseUrl + subPathToGetCookies + "&message=Should receive first-party cookie.", finishTest);
+    }
+
+    const thirdPartyOrigin = "http://localhost:8000";
+    const resourcePath = "/storageAccess/resources";
+    const thirdPartyBaseUrl = thirdPartyOrigin + resourcePath;
+    const firstPartyCookieName = "firstPartyCookie";
+    const subPathToGetCookies = "/get-cookies.php?name1=" + firstPartyCookieName;
+    var newWin;
+
+    function run() {
+        setEnableFeature(true, function() {
+            window.addEventListener("message", receiveMessage, false);
+
+            testRunner.setCanOpenWindows();
+
+            testRunner.setStatisticsPrevalentResource(thirdPartyOrigin, true, function() {
+                if (!testRunner.isStatisticsPrevalentResource(thirdPartyOrigin))
+                    testFailed("Host did not get set as prevalent resource.");
+                testRunner.setStatisticsHasHadUserInteraction(thirdPartyOrigin, true, function() {
+                    if (!testRunner.isStatisticsHasHadUserInteraction(thirdPartyOrigin))
+                        testFailed("Host did not get logged for user interaction.");
+                    testRunner.dumpChildFramesAsText();
+                    testRunner.setCloseRemainingWindowsWhenComplete(true);
+
+                    testRunner.statisticsUpdateCookieBlocking(function () {
+                        newWin = window.open(thirdPartyOrigin + "/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html", "testWindow");
+                    });
+                });
+            });
+        });
+    }
+</script>
+</body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="tagsSafari6081134LayoutTestshttptestsstorageAccessresourcesgetcookiesphp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/get-cookies.php (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/get-cookies.php    2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/get-cookies.php       2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -5,10 +5,12 @@
</span><span class="cx"> } else {
</span><span class="cx">     echo "Received cookie named '" . $_GET["name1"] . "'.<br>";
</span><span class="cx"> }
</span><del>-if(!isset($_COOKIE[$_GET["name2"]])) {
-    echo "Did not receive cookie named '" . $_GET["name2"] . "'.<br>";
-} else {
-    echo "Received cookie named '" . $_GET["name2"] . "'.<br>";
</del><ins>+if(!empty($_GET["name2"])) {
+    if(!isset($_COOKIE[$_GET["name2"]])) {
+        echo "Did not receive cookie named '" . $_GET["name2"] . "'.<br>";
+    } else {
+        echo "Received cookie named '" . $_GET["name2"] . "'.<br>";
+    }
</ins><span class="cx"> }
</span><span class="cx"> if(!empty($_GET["name3"])) {
</span><span class="cx">     if(!isset($_COOKIE[$_GET["name3"]])) {
</span></span></pre></div>
<a id="tagsSafari6081134LayoutTestshttptestsstorageAccessresourcesproduceusergesturesetcookieandreportbackhtml"></a>
<div class="addfile"><h4>Added: tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html (0 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html                               (rev 0)
+++ tags/Safari-608.1.13.4/LayoutTests/http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html  2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -0,0 +1,31 @@
</span><ins>+<!DOCTYPE html>
+<html>
+<head>
+    <script src="/js-test-resources/ui-helper.js"></script>
+    <script>
+        let intervalID;
+        function setCookieAndPostMessage() {
+            internals.withUserGesture(function() {
+                intervalID = setInterval(function() {
+                    var promise = document.hasStorageAccess();
+                    promise.then(
+                        function (hasAccess) {
+                            if (hasAccess) {
+                                clearInterval(intervalID);
+                                document.cookie = "firstPartyCookie=value";
+                                window.opener.postMessage("PASS Cookie created.", "http://127.0.0.1:8000");
+                            }
+                        },
+                        function (reason) {
+                            window.opener.postMessage("FAIL Promise was rejected, reason: " + reason, "http://127.0.0.1:8000");
+                        }
+                    );
+                }, 100);
+
+            });
+        }
+    </script>
+</head>
+<body onload="setCookieAndPostMessage()">
+</body>
+</html>
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebCore/ChangeLog (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebCore/ChangeLog  2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebCore/ChangeLog     2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -1,3 +1,126 @@
</span><ins>+2019-04-01  Alan Coon  <alancoon@apple.com>
+
+        Cherry-pick r243671. rdar://problem/47859936
+
+    Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
+    https://bugs.webkit.org/show_bug.cgi?id=196407
+    <rdar://problem/47859936>
+    
+    Reviewed by Brent Fulgham.
+    
+    Source/WebCore:
+    
+    Test: http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html
+    
+    This patch removes old code for the batching into "statistics updated" calls.
+    Since the move of Resource Load Statistics to the network process, all such
+    collection is done directly through dedicated calls to the network process.
+    
+    The remaining functionality was renamed to make it more clear, i.e.
+    ResourceLoadObserver::notifyObserver() renamed to
+    ResourceLoadObserver::updateCentralStatisticsStore().
+    
+    * loader/ResourceLoadObserver.cpp:
+    (WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
+    (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
+    (WebCore::ResourceLoadObserver::logSubresourceLoading):
+    (WebCore::ResourceLoadObserver::logWebSocketLoading):
+    (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+    (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
+    (WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
+    (WebCore::ResourceLoadObserver::clearState):
+    (WebCore::ResourceLoadObserver::setNotificationCallback): Deleted.
+    (WebCore::ResourceLoadObserver::ResourceLoadObserver): Deleted.
+    (WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded): Deleted.
+    (WebCore::ResourceLoadObserver::notifyObserver): Deleted.
+    * loader/ResourceLoadObserver.h:
+    * testing/Internals.cpp:
+    (WebCore::Internals::notifyResourceLoadObserver):
+    
+    Source/WebKit:
+    
+    The two WebResourceLoadStatisticsStore IPC endpoints were left behind when we
+    moved Resource Load Statistics from the UI process to the network process. One
+    of the endpoints is the message RequestStorageAccessUnderOpener which underpins
+    our compatibility fix for federated logins using popups. This patch redirects
+    these IPC calls to the network process and cleans up some assumptions around
+    them.
+    
+    * CMakeLists.txt:
+        Removed the old IPC receiver.
+    * DerivedSources.make:
+        Removed the old IPC receiver.
+    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+    (WebKit::WebResourceLoadStatisticsStore::requestUpdate): Deleted.
+        This is no longer needed since there is a dedicated update mechanism
+        that actually sends the update.
+    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
+    * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+    (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
+    (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
+        Two new IPC receivers to pipe the calls to the network process.
+    (WebKit::NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate): Deleted.
+        NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated now serves
+        this purpose.
+    * NetworkProcess/NetworkConnectionToWebProcess.h:
+    * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+    * UIProcess/WebResourceLoadStatisticsStore.messages.in: Removed.
+        Removed the old IPC receiver.
+    * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+    * WebKit.xcodeproj/project.pbxproj:
+    * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+    (WKBundleResourceLoadStatisticsNotifyObserver):
+        Function name update.
+    * WebProcess/WebProcess.cpp:
+        Now calls IPC to the network process instead of the UI process.
+    
+    LayoutTests:
+    
+    * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
+    * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
+    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
+    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
+    * http/tests/storageAccess/resources/get-cookies.php:
+    * http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-03-29  John Wilander  <wilander@apple.com>
+
+            Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
+            https://bugs.webkit.org/show_bug.cgi?id=196407
+            <rdar://problem/47859936>
+
+            Reviewed by Brent Fulgham.
+
+            Test: http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html
+
+            This patch removes old code for the batching into "statistics updated" calls.
+            Since the move of Resource Load Statistics to the network process, all such
+            collection is done directly through dedicated calls to the network process.
+
+            The remaining functionality was renamed to make it more clear, i.e.
+            ResourceLoadObserver::notifyObserver() renamed to
+            ResourceLoadObserver::updateCentralStatisticsStore().
+
+            * loader/ResourceLoadObserver.cpp:
+            (WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
+            (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
+            (WebCore::ResourceLoadObserver::logSubresourceLoading):
+            (WebCore::ResourceLoadObserver::logWebSocketLoading):
+            (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+            (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
+            (WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
+            (WebCore::ResourceLoadObserver::clearState):
+            (WebCore::ResourceLoadObserver::setNotificationCallback): Deleted.
+            (WebCore::ResourceLoadObserver::ResourceLoadObserver): Deleted.
+            (WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded): Deleted.
+            (WebCore::ResourceLoadObserver::notifyObserver): Deleted.
+            * loader/ResourceLoadObserver.h:
+            * testing/Internals.cpp:
+            (WebCore::Internals::notifyResourceLoadObserver):
+
</ins><span class="cx"> 2019-03-22  Ryan Haddad  <ryanhaddad@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r243356.
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebCoreloaderResourceLoadObservercpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.cpp    2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.cpp       2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -53,13 +53,13 @@
</span><span class="cx">     return resourceLoadObserver;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceLoadObserver::setNotificationCallback(WTF::Function<void (Vector<ResourceLoadStatistics>&&)>&& notificationCallback)
</del><ins>+void ResourceLoadObserver::setStatisticsUpdatedCallback(WTF::Function<void(Vector<ResourceLoadStatistics>&&)>&& notificationCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_notificationCallback);
</span><span class="cx">     m_notificationCallback = WTFMove(notificationCallback);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback(WTF::Function<void(const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, const RegistrableDomain& openerDomain)>&& callback)
</del><ins>+void ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback(WTF::Function<void(PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, const RegistrableDomain& openerDomain)>&& callback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_requestStorageAccessUnderOpenerCallback);
</span><span class="cx">     m_requestStorageAccessUnderOpenerCallback = WTFMove(callback);
</span><span class="lines">@@ -89,11 +89,6 @@
</span><span class="cx">     m_logSubresourceRedirectNotificationCallback = WTFMove(callback);
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-ResourceLoadObserver::ResourceLoadObserver()
-    : m_notificationTimer(*this, &ResourceLoadObserver::notifyObserver)
-{
-}
-
</del><span class="cx"> static inline bool is3xxRedirect(const ResourceResponse& response)
</span><span class="cx"> {
</span><span class="cx">     return response.httpStatusCode() >= 300 && response.httpStatusCode() <= 399;
</span><span class="lines">@@ -133,13 +128,11 @@
</span><span class="cx">     if (targetDomain == topFrameDomain || (isRedirect && targetDomain == redirectedFromDomain))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    bool shouldCallNotificationCallback = false;
</del><span class="cx">     {
</span><span class="cx">         auto& targetStatistics = ensureResourceStatisticsForRegistrableDomain(targetDomain);
</span><span class="cx">         auto lastSeen = ResourceLoadStatistics::reduceTimeResolution(WallTime::now());
</span><span class="cx">         targetStatistics.lastSeen = lastSeen;
</span><del>-        if (targetStatistics.subresourceUnderTopFrameDomains.add(topFrameDomain).isNewEntry)
-            shouldCallNotificationCallback = true;
</del><ins>+        targetStatistics.subresourceUnderTopFrameDomains.add(topFrameDomain);
</ins><span class="cx"> 
</span><span class="cx">         m_logSubresourceLoadingNotificationCallback(page->sessionID(), targetDomain, topFrameDomain, lastSeen);
</span><span class="cx">     }
</span><span class="lines">@@ -146,18 +139,12 @@
</span><span class="cx"> 
</span><span class="cx">     if (isRedirect) {
</span><span class="cx">         auto& redirectingOriginStatistics = ensureResourceStatisticsForRegistrableDomain(redirectedFromDomain);
</span><del>-        bool isNewRedirectToEntry = redirectingOriginStatistics.subresourceUniqueRedirectsTo.add(targetDomain).isNewEntry;
</del><ins>+        redirectingOriginStatistics.subresourceUniqueRedirectsTo.add(targetDomain);
</ins><span class="cx">         auto& targetStatistics = ensureResourceStatisticsForRegistrableDomain(targetDomain);
</span><del>-        bool isNewRedirectFromEntry = targetStatistics.subresourceUniqueRedirectsFrom.add(redirectedFromDomain).isNewEntry;
</del><ins>+        targetStatistics.subresourceUniqueRedirectsFrom.add(redirectedFromDomain);
</ins><span class="cx"> 
</span><del>-        if (isNewRedirectToEntry || isNewRedirectFromEntry)
-            shouldCallNotificationCallback = true;
-
</del><span class="cx">         m_logSubresourceRedirectNotificationCallback(page->sessionID(), redirectedFromDomain, targetDomain);
</span><span class="cx">     }
</span><del>-
-    if (shouldCallNotificationCallback)
-        scheduleNotificationIfNeeded();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceLoadObserver::logWebSocketLoading(const URL& targetURL, const URL& mainFrameURL, PAL::SessionID sessionID)
</span><span class="lines">@@ -181,8 +168,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto& targetStatistics = ensureResourceStatisticsForRegistrableDomain(targetDomain);
</span><span class="cx">     targetStatistics.lastSeen = lastSeen;
</span><del>-    if (targetStatistics.subresourceUnderTopFrameDomains.add(topFrameDomain).isNewEntry)
-        scheduleNotificationIfNeeded();
</del><ins>+    targetStatistics.subresourceUnderTopFrameDomains.add(topFrameDomain);
</ins><span class="cx"> 
</span><span class="cx">     m_logWebSocketLoadingNotificationCallback(sessionID, targetDomain, topFrameDomain, lastSeen);
</span><span class="cx"> }
</span><span class="lines">@@ -215,7 +201,7 @@
</span><span class="cx">             if (auto* openerDocument = opener->document()) {
</span><span class="cx">                 if (auto* openerFrame = openerDocument->frame()) {
</span><span class="cx">                     if (auto openerPageID = openerFrame->loader().client().pageID())
</span><del>-                        requestStorageAccessUnderOpener(topFrameDomain, openerPageID.value(), *openerDocument);
</del><ins>+                        requestStorageAccessUnderOpener(document.sessionID(), topFrameDomain, openerPageID.value(), *openerDocument);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -224,9 +210,6 @@
</span><span class="cx">     m_logUserInteractionNotificationCallback(document.sessionID(), topFrameDomain);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    m_notificationTimer.stop();
-    notifyObserver();
-
</del><span class="cx"> #if ENABLE(RESOURCE_LOAD_STATISTICS) && !RELEASE_LOG_DISABLED
</span><span class="cx">     if (shouldLogUserInteraction()) {
</span><span class="cx">         auto counter = ++m_loggingCounter;
</span><span class="lines">@@ -250,7 +233,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(RESOURCE_LOAD_STATISTICS)
</span><del>-void ResourceLoadObserver::requestStorageAccessUnderOpener(const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, Document& openerDocument)
</del><ins>+void ResourceLoadObserver::requestStorageAccessUnderOpener(PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, Document& openerDocument)
</ins><span class="cx"> {
</span><span class="cx">     auto openerUrl = openerDocument.url();
</span><span class="cx">     RegistrableDomain openerDomain { openerUrl };
</span><span class="lines">@@ -257,7 +240,7 @@
</span><span class="cx">     if (domainInNeedOfStorageAccess != openerDomain
</span><span class="cx">         && !openerDocument.hasRequestedPageSpecificStorageAccessWithUserInteraction(domainInNeedOfStorageAccess)
</span><span class="cx">         && !equalIgnoringASCIICase(openerUrl.string(), WTF::blankURL())) {
</span><del>-        m_requestStorageAccessUnderOpenerCallback(domainInNeedOfStorageAccess, openerPageID, openerDomain);
</del><ins>+        m_requestStorageAccessUnderOpenerCallback(sessionID, domainInNeedOfStorageAccess, openerPageID, openerDomain);
</ins><span class="cx">         // Remember user interaction-based requests since they don't need to be repeated.
</span><span class="cx">         openerDocument.setHasRequestedPageSpecificStorageAccessWithUserInteraction(domainInNeedOfStorageAccess);
</span><span class="cx">     }
</span><span class="lines">@@ -382,22 +365,8 @@
</span><span class="cx">     return addResult.iterator->value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ResourceLoadObserver::scheduleNotificationIfNeeded()
</del><ins>+void ResourceLoadObserver::updateCentralStatisticsStore()
</ins><span class="cx"> {
</span><del>-    ASSERT(m_notificationCallback);
-    if (m_resourceStatisticsMap.isEmpty()) {
-        m_notificationTimer.stop();
-        return;
-    }
-
-    if (!m_notificationTimer.isActive())
-        m_notificationTimer.startOneShot(minimumNotificationInterval);
-}
-
-void ResourceLoadObserver::notifyObserver()
-{
-    ASSERT(m_notificationCallback);
-    m_notificationTimer.stop();
</del><span class="cx">     m_notificationCallback(takeStatistics());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -424,7 +393,6 @@
</span><span class="cx"> 
</span><span class="cx"> void ResourceLoadObserver::clearState()
</span><span class="cx"> {
</span><del>-    m_notificationTimer.stop();
</del><span class="cx">     m_resourceStatisticsMap.clear();
</span><span class="cx">     m_lastReportedUserInteractionMap.clear();
</span><span class="cx"> }
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebCoreloaderResourceLoadObserverh"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.h (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.h      2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebCore/loader/ResourceLoadObserver.h 2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -72,14 +72,14 @@
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT String statisticsForURL(const URL&);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void setNotificationCallback(WTF::Function<void (Vector<ResourceLoadStatistics>&&)>&&);
-    WEBCORE_EXPORT void setRequestStorageAccessUnderOpenerCallback(Function<void(const RegistrableDomain&, uint64_t, const RegistrableDomain&)>&&);
</del><ins>+    WEBCORE_EXPORT void setStatisticsUpdatedCallback(WTF::Function<void(Vector<ResourceLoadStatistics>&&)>&&);
+    WEBCORE_EXPORT void setRequestStorageAccessUnderOpenerCallback(Function<void(PAL::SessionID, const RegistrableDomain&, uint64_t, const RegistrableDomain&)>&&);
</ins><span class="cx">     WEBCORE_EXPORT void setLogUserInteractionNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&)>&&);
</span><span class="cx">     WEBCORE_EXPORT void setLogWebSocketLoadingNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)>&&);
</span><span class="cx">     WEBCORE_EXPORT void setLogSubresourceLoadingNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)>&&);
</span><span class="cx">     WEBCORE_EXPORT void setLogSubresourceRedirectNotificationCallback(Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&)>&&);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void notifyObserver();
</del><ins>+    WEBCORE_EXPORT void updateCentralStatisticsStore();
</ins><span class="cx">     WEBCORE_EXPORT void clearState();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(RESOURCE_LOAD_STATISTICS) && !RELEASE_LOG_DISABLED
</span><span class="lines">@@ -88,28 +88,23 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    ResourceLoadObserver();
-
</del><span class="cx">     bool shouldLog(bool usesEphemeralSession) const;
</span><span class="cx">     ResourceLoadStatistics& ensureResourceStatisticsForRegistrableDomain(const RegistrableDomain&);
</span><span class="cx"> 
</span><del>-    void scheduleNotificationIfNeeded();
</del><span class="cx">     Vector<ResourceLoadStatistics> takeStatistics();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(RESOURCE_LOAD_STATISTICS)
</span><del>-    void requestStorageAccessUnderOpener(const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, Document& openerDocument);
</del><ins>+    void requestStorageAccessUnderOpener(PAL::SessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, Document& openerDocument);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     HashMap<RegistrableDomain, ResourceLoadStatistics> m_resourceStatisticsMap;
</span><span class="cx">     HashMap<RegistrableDomain, WTF::WallTime> m_lastReportedUserInteractionMap;
</span><span class="cx">     Function<void(Vector<ResourceLoadStatistics>&&)> m_notificationCallback;
</span><del>-    Function<void(const RegistrableDomain&, uint64_t, const RegistrableDomain&)> m_requestStorageAccessUnderOpenerCallback;
</del><ins>+    Function<void(PAL::SessionID, const RegistrableDomain&, uint64_t, const RegistrableDomain&)> m_requestStorageAccessUnderOpenerCallback;
</ins><span class="cx">     Function<void(PAL::SessionID, const RegistrableDomain&)> m_logUserInteractionNotificationCallback;
</span><span class="cx">     Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)> m_logWebSocketLoadingNotificationCallback;
</span><span class="cx">     Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&, WallTime)> m_logSubresourceLoadingNotificationCallback;
</span><span class="cx">     Function<void(PAL::SessionID, const RegistrableDomain&, const RegistrableDomain&)> m_logSubresourceRedirectNotificationCallback;
</span><del>-
-    Timer m_notificationTimer;
</del><span class="cx"> #if ENABLE(RESOURCE_LOAD_STATISTICS) && !RELEASE_LOG_DISABLED
</span><span class="cx">     uint64_t m_loggingCounter { 0 };
</span><span class="cx">     bool m_shouldLogUserInteraction { false };
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebCore/testing/Internals.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebCore/testing/Internals.cpp      2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebCore/testing/Internals.cpp 2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -4918,7 +4918,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Internals::notifyResourceLoadObserver()
</span><span class="cx"> {
</span><del>-    ResourceLoadObserver::shared().notifyObserver();
</del><ins>+    ResourceLoadObserver::shared().updateCentralStatisticsStore();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned Internals::primaryScreenDisplayID()
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitCMakeListstxt"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/CMakeLists.txt (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/CMakeLists.txt      2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/CMakeLists.txt 2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -144,7 +144,6 @@
</span><span class="cx">     UIProcess/WebPasteboardProxy.messages.in
</span><span class="cx">     UIProcess/WebProcessPool.messages.in
</span><span class="cx">     UIProcess/WebProcessProxy.messages.in
</span><del>-    UIProcess/WebResourceLoadStatisticsStore.messages.in
</del><span class="cx"> 
</span><span class="cx">     UIProcess/Automation/WebAutomationSession.messages.in
</span><span class="cx"> 
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/ChangeLog (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/ChangeLog   2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/ChangeLog      2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -1,3 +1,134 @@
</span><ins>+2019-04-01  Alan Coon  <alancoon@apple.com>
+
+        Cherry-pick r243671. rdar://problem/47859936
+
+    Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
+    https://bugs.webkit.org/show_bug.cgi?id=196407
+    <rdar://problem/47859936>
+    
+    Reviewed by Brent Fulgham.
+    
+    Source/WebCore:
+    
+    Test: http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html
+    
+    This patch removes old code for the batching into "statistics updated" calls.
+    Since the move of Resource Load Statistics to the network process, all such
+    collection is done directly through dedicated calls to the network process.
+    
+    The remaining functionality was renamed to make it more clear, i.e.
+    ResourceLoadObserver::notifyObserver() renamed to
+    ResourceLoadObserver::updateCentralStatisticsStore().
+    
+    * loader/ResourceLoadObserver.cpp:
+    (WebCore::ResourceLoadObserver::setStatisticsUpdatedCallback):
+    (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
+    (WebCore::ResourceLoadObserver::logSubresourceLoading):
+    (WebCore::ResourceLoadObserver::logWebSocketLoading):
+    (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
+    (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
+    (WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
+    (WebCore::ResourceLoadObserver::clearState):
+    (WebCore::ResourceLoadObserver::setNotificationCallback): Deleted.
+    (WebCore::ResourceLoadObserver::ResourceLoadObserver): Deleted.
+    (WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded): Deleted.
+    (WebCore::ResourceLoadObserver::notifyObserver): Deleted.
+    * loader/ResourceLoadObserver.h:
+    * testing/Internals.cpp:
+    (WebCore::Internals::notifyResourceLoadObserver):
+    
+    Source/WebKit:
+    
+    The two WebResourceLoadStatisticsStore IPC endpoints were left behind when we
+    moved Resource Load Statistics from the UI process to the network process. One
+    of the endpoints is the message RequestStorageAccessUnderOpener which underpins
+    our compatibility fix for federated logins using popups. This patch redirects
+    these IPC calls to the network process and cleans up some assumptions around
+    them.
+    
+    * CMakeLists.txt:
+        Removed the old IPC receiver.
+    * DerivedSources.make:
+        Removed the old IPC receiver.
+    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+    (WebKit::WebResourceLoadStatisticsStore::requestUpdate): Deleted.
+        This is no longer needed since there is a dedicated update mechanism
+        that actually sends the update.
+    * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
+    * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+    (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
+    (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
+        Two new IPC receivers to pipe the calls to the network process.
+    (WebKit::NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate): Deleted.
+        NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated now serves
+        this purpose.
+    * NetworkProcess/NetworkConnectionToWebProcess.h:
+    * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+    * UIProcess/WebResourceLoadStatisticsStore.messages.in: Removed.
+        Removed the old IPC receiver.
+    * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+    * WebKit.xcodeproj/project.pbxproj:
+    * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+    (WKBundleResourceLoadStatisticsNotifyObserver):
+        Function name update.
+    * WebProcess/WebProcess.cpp:
+        Now calls IPC to the network process instead of the UI process.
+    
+    LayoutTests:
+    
+    * http/tests/storageAccess/deny-storage-access-under-opener-expected.txt:
+    * http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt:
+    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-expected.txt: Added.
+    * http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html: Added.
+    * http/tests/storageAccess/resources/get-cookies.php:
+    * http/tests/storageAccess/resources/produce-user-gesture-set-cookie-and-report-back.html: Added.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-03-29  John Wilander  <wilander@apple.com>
+
+            Move WebResourceLoadStatisticsStore IPC calls from the UI process to the network process
+            https://bugs.webkit.org/show_bug.cgi?id=196407
+            <rdar://problem/47859936>
+
+            Reviewed by Brent Fulgham.
+
+            The two WebResourceLoadStatisticsStore IPC endpoints were left behind when we
+            moved Resource Load Statistics from the UI process to the network process. One
+            of the endpoints is the message RequestStorageAccessUnderOpener which underpins
+            our compatibility fix for federated logins using popups. This patch redirects
+            these IPC calls to the network process and cleans up some assumptions around
+            them.
+
+            * CMakeLists.txt:
+                Removed the old IPC receiver.
+            * DerivedSources.make:
+                Removed the old IPC receiver.
+            * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
+            (WebKit::WebResourceLoadStatisticsStore::requestUpdate): Deleted.
+                This is no longer needed since there is a dedicated update mechanism
+                that actually sends the update.
+            * NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
+            * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+            (WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):
+            (WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
+                Two new IPC receivers to pipe the calls to the network process.
+            (WebKit::NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate): Deleted.
+                NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated now serves
+                this purpose.
+            * NetworkProcess/NetworkConnectionToWebProcess.h:
+            * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+            * UIProcess/WebResourceLoadStatisticsStore.messages.in: Removed.
+                Removed the old IPC receiver.
+            * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+            * WebKit.xcodeproj/project.pbxproj:
+            * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+            (WKBundleResourceLoadStatisticsNotifyObserver):
+                Function name update.
+            * WebProcess/WebProcess.cpp:
+                Now calls IPC to the network process instead of the UI process.
+
</ins><span class="cx"> 2019-03-29  Babak Shafiei  <bshafiei@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Cherry-pick r243640. rdar://problem/49339242
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/DerivedSources.make (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/DerivedSources.make 2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/DerivedSources.make    2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -178,7 +178,6 @@
</span><span class="cx">     WebRTCMonitor \
</span><span class="cx">     WebRTCResolver \
</span><span class="cx">     WebRTCSocket \
</span><del>-    WebResourceLoadStatisticsStore \
</del><span class="cx">     WebResourceLoader \
</span><span class="cx">     WebSWClientConnection \
</span><span class="cx">     WebSWContextManagerConnection \
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitNetworkProcessClassifierWebResourceLoadStatisticsStorecpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp        2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp   2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx"> #include "WebProcessMessages.h"
</span><span class="cx"> #include "WebProcessPool.h"
</span><span class="cx"> #include "WebProcessProxy.h"
</span><del>-#include "WebResourceLoadStatisticsStoreMessages.h"
</del><span class="cx"> #include "WebResourceLoadStatisticsTelemetry.h"
</span><span class="cx"> #include "WebsiteDataFetchOption.h"
</span><span class="cx"> #include <WebCore/CookieJar.h>
</span><span class="lines">@@ -251,11 +250,6 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebResourceLoadStatisticsStore::requestUpdate()
-{
-    resourceLoadStatisticsUpdated({ });
-}
-
</del><span class="cx"> void WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics>&& origins)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitNetworkProcessClassifierWebResourceLoadStatisticsStoreh"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h  2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h     2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     AllButCookies
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class WebResourceLoadStatisticsStore final : public ThreadSafeRefCounted<WebResourceLoadStatisticsStore, WTF::DestructionThread::Main>, public IPC::MessageReceiver {
</del><ins>+class WebResourceLoadStatisticsStore final : public ThreadSafeRefCounted<WebResourceLoadStatisticsStore, WTF::DestructionThread::Main> {
</ins><span class="cx"> public:
</span><span class="cx">     using ResourceLoadStatistics = WebCore::ResourceLoadStatistics;
</span><span class="cx">     using RegistrableDomain = WebCore::RegistrableDomain;
</span><span class="lines">@@ -120,7 +120,6 @@
</span><span class="cx">     bool hasStorageAccessForFrame(const SubFrameDomain&, const TopFrameDomain&, FrameID, PageID);
</span><span class="cx">     void requestStorageAccess(const SubFrameDomain&, const TopFrameDomain&, Optional<FrameID>, PageID, CompletionHandler<void(StorageAccessStatus)>&&);
</span><span class="cx">     void requestStorageAccessGranted(const SubFrameDomain&, const TopFrameDomain&, FrameID, PageID, CompletionHandler<void(bool)>&&);
</span><del>-    void requestUpdate();
</del><span class="cx">     void setLastSeen(const RegistrableDomain&, Seconds, CompletionHandler<void()>&&);
</span><span class="cx">     void setPrevalentResource(const RegistrableDomain&, CompletionHandler<void()>&&);
</span><span class="cx">     void setVeryPrevalentResource(const RegistrableDomain&, CompletionHandler<void()>&&);
</span><span class="lines">@@ -178,6 +177,9 @@
</span><span class="cx">     void sendDiagnosticMessageWithValue(const String& message, const String& description, unsigned value, unsigned sigDigits, WebCore::ShouldSample) const;
</span><span class="cx">     void notifyPageStatisticsTelemetryFinished(unsigned totalPrevalentResources, unsigned totalPrevalentResourcesWithUserInteraction, unsigned top3SubframeUnderTopFrameOrigins) const;
</span><span class="cx"> 
</span><ins>+    void resourceLoadStatisticsUpdated(Vector<ResourceLoadStatistics>&&);
+    void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, uint64_t openerPageID, OpenerDomain&&);
+
</ins><span class="cx"> private:
</span><span class="cx">     explicit WebResourceLoadStatisticsStore(NetworkSession&, const String&, ShouldIncludeLocalhost);
</span><span class="cx"> 
</span><span class="lines">@@ -184,13 +186,6 @@
</span><span class="cx">     void postTask(WTF::Function<void()>&&);
</span><span class="cx">     static void postTaskReply(WTF::Function<void()>&&);
</span><span class="cx"> 
</span><del>-    // IPC::MessageReceiver.
-    void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
-
-    // IPC message handlers.
-    void resourceLoadStatisticsUpdated(Vector<ResourceLoadStatistics>&& origins);
-    void requestStorageAccessUnderOpener(DomainInNeedOfStorageAccess&&, uint64_t openerPageID, OpenerDomain&&);
-
</del><span class="cx">     void performDailyTasks();
</span><span class="cx"> 
</span><span class="cx">     StorageAccessStatus storageAccessStatus(const String& subFramePrimaryDomain, const String& topFramePrimaryDomain);
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitNetworkProcessNetworkConnectionToWebProcesscpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp    2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp       2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -653,7 +653,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NetworkConnectionToWebProcess::requestResourceLoadStatisticsUpdate()
</del><ins>+void NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics>&& statistics)
</ins><span class="cx"> {
</span><span class="cx">     for (auto& networkSession : networkProcess().networkSessions().values()) {
</span><span class="cx">         if (networkSession->sessionID().isEphemeral())
</span><span class="lines">@@ -660,7 +660,7 @@
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics())
</span><del>-            resourceLoadStatistics->requestUpdate();
</del><ins>+            resourceLoadStatistics->resourceLoadStatisticsUpdated(WTFMove(statistics));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -673,6 +673,14 @@
</span><span class="cx"> {
</span><span class="cx">     networkProcess().requestStorageAccessGranted(sessionID, subFrameDomain, topFrameDomain, frameID, pageID, WTFMove(completionHandler));
</span><span class="cx"> }
</span><ins>+
+void NetworkConnectionToWebProcess::requestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain&& openerDomain)
+{
+    if (auto networkSession = networkProcess().networkSession(sessionID)) {
+        if (auto* resourceLoadStatistics = networkSession->resourceLoadStatistics())
+            resourceLoadStatistics->requestStorageAccessUnderOpener(WTFMove(domainInNeedOfStorageAccess), openerPageID, WTFMove(openerDomain));
+    }
+}
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains)
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitNetworkProcessNetworkConnectionToWebProcessh"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h      2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -218,9 +218,10 @@
</span><span class="cx">     void logWebSocketLoading(PAL::SessionID, const RegistrableDomain& targetDomain, const RegistrableDomain& topFrameDomain, WallTime lastSeen);
</span><span class="cx">     void logSubresourceLoading(PAL::SessionID, const RegistrableDomain& targetDomain, const RegistrableDomain& topFrameDomain, WallTime lastSeen);
</span><span class="cx">     void logSubresourceRedirect(PAL::SessionID, const RegistrableDomain& sourceDomain, const RegistrableDomain& targetDomain);
</span><del>-    void requestResourceLoadStatisticsUpdate();
</del><ins>+    void resourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics>&&);
</ins><span class="cx">     void hasStorageAccess(PAL::SessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(bool)>&&);
</span><span class="cx">     void requestStorageAccess(PAL::SessionID, const RegistrableDomain& subFrameDomain, const RegistrableDomain& topFrameDomain, uint64_t frameID, uint64_t pageID, CompletionHandler<void(bool)>&&);
</span><ins>+    void requestStorageAccessUnderOpener(PAL::SessionID, WebCore::RegistrableDomain&& domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain&& openerDomain);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void addOriginAccessWhitelistEntry(const String& sourceOrigin, const String& destinationProtocol, const String& destinationHost, bool allowDestinationSubdomains);
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitNetworkProcessNetworkConnectionToWebProcessmessagesin"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in    2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in       2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -62,9 +62,10 @@
</span><span class="cx">     LogWebSocketLoading(PAL::SessionID sessionID, WebCore::RegistrableDomain targetDomain, WebCore::RegistrableDomain topFrameDomain, WallTime lastSeen)
</span><span class="cx">     LogSubresourceLoading(PAL::SessionID sessionID, WebCore::RegistrableDomain targetDomain, WebCore::RegistrableDomain topFrameDomain, WallTime lastSeen)
</span><span class="cx">     LogSubresourceRedirect(PAL::SessionID sessionID, WebCore::RegistrableDomain sourceDomain, WebCore::RegistrableDomain targetDomain)
</span><del>-    RequestResourceLoadStatisticsUpdate();
</del><ins>+    ResourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics> statistics)
</ins><span class="cx">     HasStorageAccess(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain, uint64_t frameID, uint64_t pageID) -> (bool hasStorageAccess) Async
</span><span class="cx">     RequestStorageAccess(PAL::SessionID sessionID, WebCore::RegistrableDomain subFrameDomain, WebCore::RegistrableDomain topFrameDomain, uint64_t frameID, uint64_t pageID) -> (bool accessGranted) Async
</span><ins>+    RequestStorageAccessUnderOpener(PAL::SessionID sessionID, WebCore::RegistrableDomain domainInNeedOfStorageAccess, uint64_t openerPageID, WebCore::RegistrableDomain openerDomain)
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     AddOriginAccessWhitelistEntry(String sourceOrigin, String destinationProtocol, String destinationHost, bool allowDestinationSubdomains);
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitUIProcessWebResourceLoadStatisticsStoremessagesin"></a>
<div class="delfile"><h4>Deleted: tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.messages.in (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.messages.in        2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.messages.in   2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -1,30 +0,0 @@
</span><del>-# Copyright (C) 2016 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.
-
-#if ENABLE(RESOURCE_LOAD_STATISTICS)
-
-messages -> WebResourceLoadStatisticsStore {
-    RequestStorageAccessUnderOpener(WebCore::RegistrableDomain domainReceivingUserInteraction, uint64_t openerPageID, WebCore::RegistrableDomain openerDomain)
-    ResourceLoadStatisticsUpdated(Vector<WebCore::ResourceLoadStatistics> origins)
-}
-
-#endif
</del></span></pre></div>
<a id="tagsSafari6081134SourceWebKitUIProcessWebsiteDataWebsiteDataStorecpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp  2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp     2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -40,7 +40,6 @@
</span><span class="cx"> #include "WebProcessMessages.h"
</span><span class="cx"> #include "WebProcessPool.h"
</span><span class="cx"> #include "WebResourceLoadStatisticsStore.h"
</span><del>-#include "WebResourceLoadStatisticsStoreMessages.h"
</del><span class="cx"> #include "WebsiteData.h"
</span><span class="cx"> #include "WebsiteDataStoreClient.h"
</span><span class="cx"> #include "WebsiteDataStoreParameters.h"
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitWebKitxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/WebKit.xcodeproj/project.pbxproj (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/WebKit.xcodeproj/project.pbxproj    2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/WebKit.xcodeproj/project.pbxproj       2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -1122,8 +1122,6 @@
</span><span class="cx">          7A772C8D1DDD4A25000F34F1 /* com.apple.WebKit.plugin-common.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = 7A1506721DD56298001F4B58 /* com.apple.WebKit.plugin-common.sb */; };
</span><span class="cx">          7A78FF32224191960096483E /* WKStorageAccessAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A78FF2E224191750096483E /* WKStorageAccessAlert.h */; };
</span><span class="cx">          7A78FF332241919B0096483E /* WKStorageAccessAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7A78FF2F224191760096483E /* WKStorageAccessAlert.mm */; };
</span><del>-               7A791EFA1C7CFCF100C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A791EF91C7CFB3700C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp */; };
-               7A791EFB1C7CFD0100C4C52B /* WebResourceLoadStatisticsStoreMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A791EF81C7CFB1000C4C52B /* WebResourceLoadStatisticsStoreMessages.h */; };
</del><span class="cx">           7A821F4C1E2F673900604577 /* LegacyCustomProtocolManagerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A821F4B1E2F664800604577 /* LegacyCustomProtocolManagerClient.h */; };
</span><span class="cx">          7A821F501E2F7A7500604577 /* APICustomProtocolManagerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A821F4F1E2F7A5C00604577 /* APICustomProtocolManagerClient.h */; };
</span><span class="cx">          7A8A9D581EF119B0009801AE /* APIInjectedBundleClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A8A9D571EF119AA009801AE /* APIInjectedBundleClient.h */; };
</span><span class="lines">@@ -3584,8 +3582,6 @@
</span><span class="cx">          7A5E39491D5BD8A700B4B7CE /* com.macromedia.Flash Player ESR.plugin.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "com.macromedia.Flash Player ESR.plugin.sb"; sourceTree = "<group>"; };
</span><span class="cx">          7A78FF2E224191750096483E /* WKStorageAccessAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKStorageAccessAlert.h; sourceTree = "<group>"; };
</span><span class="cx">          7A78FF2F224191760096483E /* WKStorageAccessAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKStorageAccessAlert.mm; sourceTree = "<group>"; };
</span><del>-               7A791EF81C7CFB1000C4C52B /* WebResourceLoadStatisticsStoreMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebResourceLoadStatisticsStoreMessages.h; path = DerivedSources/WebKit2/WebResourceLoadStatisticsStoreMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
-               7A791EF91C7CFB3700C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebResourceLoadStatisticsStoreMessageReceiver.cpp; path = DerivedSources/WebKit2/WebResourceLoadStatisticsStoreMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
</del><span class="cx">           7A821F491E2F65DD00604577 /* LegacyCustomProtocolManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LegacyCustomProtocolManagerProxy.cpp; path = CustomProtocols/LegacyCustomProtocolManagerProxy.cpp; sourceTree = "<group>"; };
</span><span class="cx">          7A821F4B1E2F664800604577 /* LegacyCustomProtocolManagerClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyCustomProtocolManagerClient.h; sourceTree = "<group>"; };
</span><span class="cx">          7A821F4D1E2F679E00604577 /* LegacyCustomProtocolManagerClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LegacyCustomProtocolManagerClient.mm; sourceTree = "<group>"; };
</span><span class="lines">@@ -3594,7 +3590,6 @@
</span><span class="cx">          7A8A9D571EF119AA009801AE /* APIInjectedBundleClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIInjectedBundleClient.h; sourceTree = "<group>"; };
</span><span class="cx">          7A8A9D591EF13020009801AE /* APIInjectedBundleBundleClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIInjectedBundleBundleClient.h; sourceTree = "<group>"; };
</span><span class="cx">          7A8A9D5B1EF1458E009801AE /* APIInjectedBundlePageResourceLoadClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIInjectedBundlePageResourceLoadClient.h; sourceTree = "<group>"; };
</span><del>-               7A9CD8C21C779AD600D9F6C7 /* WebResourceLoadStatisticsStore.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebResourceLoadStatisticsStore.messages.in; sourceTree = "<group>"; };
</del><span class="cx">           7AB6EA441EEAAE2300037B2B /* APIIconDatabaseClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIIconDatabaseClient.h; sourceTree = "<group>"; };
</span><span class="cx">          7AB6EA461EEAB6B000037B2B /* APIGeolocationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIGeolocationProvider.h; sourceTree = "<group>"; };
</span><span class="cx">          7ACE82E7221CAE06000DA94C /* ResourceLoadStatisticsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResourceLoadStatisticsStore.h; path = Classifier/ResourceLoadStatisticsStore.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -7614,7 +7609,6 @@
</span><span class="cx">                          BC111B0D112F5E4F00337BAB /* WebProcessProxy.cpp */,
</span><span class="cx">                          BC032DCF10F4389F0058C15A /* WebProcessProxy.h */,
</span><span class="cx">                          BCEE7AB312817095009827DA /* WebProcessProxy.messages.in */,
</span><del>-                               7A9CD8C21C779AD600D9F6C7 /* WebResourceLoadStatisticsStore.messages.in */,
</del><span class="cx">                           51D124241E6D3CC3002B2820 /* WebURLSchemeHandler.cpp */,
</span><span class="cx">                          51D124251E6D3CC3002B2820 /* WebURLSchemeHandler.h */,
</span><span class="cx">                          51E8B68D1E712873001B7132 /* WebURLSchemeTask.cpp */,
</span><span class="lines">@@ -8667,8 +8661,6 @@
</span><span class="cx">                          BCEE7ACD12817988009827DA /* WebProcessProxyMessages.h */,
</span><span class="cx">                          51F060DD1654317500F3281B /* WebResourceLoaderMessageReceiver.cpp */,
</span><span class="cx">                          51F060DE1654317500F3281B /* WebResourceLoaderMessages.h */,
</span><del>-                               7A791EF91C7CFB3700C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp */,
-                               7A791EF81C7CFB1000C4C52B /* WebResourceLoadStatisticsStoreMessages.h */,
</del><span class="cx">                           51F060DD1654317500F3281F /* WebRTCMonitorMessageReceiver.cpp */,
</span><span class="cx">                          51F060DD1654317500F3282C /* WebRTCResolverMessageReceiver.cpp */,
</span><span class="cx">                          51F060DD1654317500F3281C /* WebRTCSocketMessageReceiver.cpp */,
</span><span class="lines">@@ -9687,7 +9679,6 @@
</span><span class="cx">                          510AFFBA16542048001BA05E /* WebResourceLoader.h in Headers */,
</span><span class="cx">                          51F060E01654317F00F3281B /* WebResourceLoaderMessages.h in Headers */,
</span><span class="cx">                          7AFBD36321E50F39005DBACB /* WebResourceLoadStatisticsStore.h in Headers */,
</span><del>-                               7A791EFB1C7CFD0100C4C52B /* WebResourceLoadStatisticsStoreMessages.h in Headers */,
</del><span class="cx">                           413075B01DE85F580039EC69 /* WebRTCMonitor.h in Headers */,
</span><span class="cx">                          41FAF5F51E3C0649001AE678 /* WebRTCResolver.h in Headers */,
</span><span class="cx">                          41DC459F1E3DBDA500B11F51 /* WebRTCSocket.h in Headers */,
</span><span class="lines">@@ -11198,7 +11189,6 @@
</span><span class="cx">                          7CE4D2271A4916C200C7F152 /* WebProcessPoolMessageReceiver.cpp in Sources */,
</span><span class="cx">                          BCEE7AD012817988009827DA /* WebProcessProxyMessageReceiver.cpp in Sources */,
</span><span class="cx">                          51F060E11654318500F3281B /* WebResourceLoaderMessageReceiver.cpp in Sources */,
</span><del>-                               7A791EFA1C7CFCF100C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp in Sources */,
</del><span class="cx">                           51F060E11654318500F3281F /* WebRTCMonitorMessageReceiver.cpp in Sources */,
</span><span class="cx">                          51F060E11654318500F3282C /* WebRTCResolverMessageReceiver.cpp in Sources */,
</span><span class="cx">                          51F060E11654318500F3281C /* WebRTCSocketMessageReceiver.cpp in Sources */,
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitWebProcessInjectedBundleAPIcWKBundlecpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp        2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp   2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WKBundleResourceLoadStatisticsNotifyObserver(WKBundleRef)
</span><span class="cx"> {
</span><del>-    WebCore::ResourceLoadObserver::shared().notifyObserver();
</del><ins>+    WebCore::ResourceLoadObserver::shared().updateCentralStatisticsStore();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="tagsSafari6081134SourceWebKitWebProcessWebProcesscpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-608.1.13.4/Source/WebKit/WebProcess/WebProcess.cpp (243722 => 243723)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-608.1.13.4/Source/WebKit/WebProcess/WebProcess.cpp   2019-04-01 23:38:45 UTC (rev 243722)
+++ tags/Safari-608.1.13.4/Source/WebKit/WebProcess/WebProcess.cpp      2019-04-01 23:54:14 UTC (rev 243723)
</span><span class="lines">@@ -65,7 +65,6 @@
</span><span class="cx"> #include "WebProcessMessages.h"
</span><span class="cx"> #include "WebProcessPoolMessages.h"
</span><span class="cx"> #include "WebProcessProxyMessages.h"
</span><del>-#include "WebResourceLoadStatisticsStoreMessages.h"
</del><span class="cx"> #include "WebSWContextManagerConnection.h"
</span><span class="cx"> #include "WebSWContextManagerConnectionMessages.h"
</span><span class="cx"> #include "WebServiceWorkerProvider.h"
</span><span class="lines">@@ -215,14 +214,12 @@
</span><span class="cx">     m_plugInAutoStartOriginHashes.add(PAL::SessionID::defaultSessionID(), HashMap<unsigned, WallTime>());
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(RESOURCE_LOAD_STATISTICS)
</span><del>-    ResourceLoadObserver::shared().setNotificationCallback([this] (Vector<ResourceLoadStatistics>&& statistics) {
-        parentProcessConnection()->send(Messages::WebResourceLoadStatisticsStore::ResourceLoadStatisticsUpdated(WTFMove(statistics)), 0);
-
-        ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::RequestResourceLoadStatisticsUpdate(), 0);
</del><ins>+    ResourceLoadObserver::shared().setStatisticsUpdatedCallback([this] (Vector<ResourceLoadStatistics>&& statistics) {
+        ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::ResourceLoadStatisticsUpdated(WTFMove(statistics)), 0);
</ins><span class="cx">     });
</span><span class="cx"> 
</span><del>-    ResourceLoadObserver::shared().setRequestStorageAccessUnderOpenerCallback([this] (const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, const RegistrableDomain& openerDomain) {
-        parentProcessConnection()->send(Messages::WebResourceLoadStatisticsStore::RequestStorageAccessUnderOpener(domainInNeedOfStorageAccess, openerPageID, openerDomain), 0);
</del><ins>+    ResourceLoadObserver::shared().setRequestStorageAccessUnderOpenerCallback([this] (PAL::SessionID sessionID, const RegistrableDomain& domainInNeedOfStorageAccess, uint64_t openerPageID, const RegistrableDomain& openerDomain) {
+        ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::RequestStorageAccessUnderOpener(sessionID, domainInNeedOfStorageAccess, openerPageID, openerDomain), 0);
</ins><span class="cx">     });
</span><span class="cx"> #endif
</span><span class="cx">     
</span></span></pre>
</div>
</div>

</body>
</html>