<!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>[210923] 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/210923">210923</a></dd>
<dt>Author</dt> <dd>akling@apple.com</dd>
<dt>Date</dt> <dd>2017-01-19 07:56:13 -0800 (Thu, 19 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>ScriptExecutionContext::topOrigin() should return a reference.
&lt;https://webkit.org/b/167190&gt;

Reviewed by Sam Weinig.

Source/WebCore:

There is always a topOrigin() SecurityOrigin, so make it return a reference
and remove some unnecessary null-checks exposed by this change.

* Modules/applepay/ApplePaySession.cpp:
(WebCore::canCallApplePaySessionAPIs):
* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::getSupportedConfiguration):
(WebCore::CDM::getConsentStatus):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/mediastream/MediaDevicesEnumerationRequest.cpp:
(WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin):
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::topLevelDocumentOrigin):
(WebCore::canCallGetUserMedia):
* dom/Document.h:
* dom/ScriptExecutionContext.h:
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setDomainForCachePartition):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessDatabase):
(WebCore::SecurityOrigin::canAccessSessionStorage):
(WebCore::SecurityOrigin::canAccessPluginStorage):
(WebCore::SecurityOrigin::canAccessApplicationCache):
* storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::localStorageArea):
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
* workers/DedicatedWorkerGlobalScope.h:
* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
* workers/DedicatedWorkerThread.h:
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
* workers/WorkerGlobalScope.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
* workers/WorkerThread.h:

Source/WebKit/mac:

* Misc/WebCache.mm:
(+[WebCache addImageToCache:forURL:forFrame:]):
(+[WebCache removeImageFromCacheForURL:forFrame:]):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesapplepayApplePaySessioncpp">trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesencryptedmediaCDMcpp">trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBFactorycpp">trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDevicesEnumerationRequestcpp">trunk/Source/WebCore/Modules/mediastream/MediaDevicesEnumerationRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamUserMediaRequestcpp">trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContexth">trunk/Source/WebCore/dom/ScriptExecutionContext.h</a></li>
<li><a href="#trunkSourceWebCorehtmlDOMURLcpp">trunk/Source/WebCore/html/DOMURL.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp">trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheGroupcpp">trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderarchivecfLegacyWebArchivecpp">trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp</a></li>
<li><a href="#trunkSourceWebCoreloadercacheCachedResourceRequestcpp">trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSecurityOriginh">trunk/Source/WebCore/page/SecurityOrigin.h</a></li>
<li><a href="#trunkSourceWebCorestorageStorageNamespaceProvidercpp">trunk/Source/WebCore/storage/StorageNamespaceProvider.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeh">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerThreadcpp">trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerThreadh">trunk/Source/WebCore/workers/DedicatedWorkerThread.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopecpp">trunk/Source/WebCore/workers/WorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopeh">trunk/Source/WebCore/workers/WorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerThreadcpp">trunk/Source/WebCore/workers/WorkerThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerThreadh">trunk/Source/WebCore/workers/WorkerThread.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacMiscWebCachemm">trunk/Source/WebKit/mac/Misc/WebCache.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/ChangeLog        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -1,3 +1,67 @@
</span><ins>+2017-01-19  Andreas Kling  &lt;akling@apple.com&gt;
+
+        ScriptExecutionContext::topOrigin() should return a reference.
+        &lt;https://webkit.org/b/167190&gt;
+
+        Reviewed by Sam Weinig.
+
+        There is always a topOrigin() SecurityOrigin, so make it return a reference
+        and remove some unnecessary null-checks exposed by this change.
+
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::canCallApplePaySessionAPIs):
+        * Modules/encryptedmedia/CDM.cpp:
+        (WebCore::CDM::getSupportedConfiguration):
+        (WebCore::CDM::getConsentStatus):
+        * Modules/indexeddb/IDBFactory.cpp:
+        (WebCore::IDBFactory::openInternal):
+        (WebCore::IDBFactory::deleteDatabase):
+        * Modules/mediastream/MediaDevicesEnumerationRequest.cpp:
+        (WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin):
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::topLevelDocumentOrigin):
+        (WebCore::canCallGetUserMedia):
+        * dom/Document.h:
+        * dom/ScriptExecutionContext.h:
+        * html/DOMURL.cpp:
+        (WebCore::DOMURL::revokeObjectURL):
+        * inspector/InspectorIndexedDBAgent.cpp:
+        (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::cachedResource):
+        * loader/appcache/ApplicationCacheGroup.cpp:
+        (WebCore::ApplicationCacheGroup::selectCache):
+        (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
+        (WebCore::ApplicationCacheGroup::update):
+        * loader/archive/cf/LegacyWebArchive.cpp:
+        (WebCore::LegacyWebArchive::create):
+        * loader/cache/CachedResourceRequest.cpp:
+        (WebCore::CachedResourceRequest::setDomainForCachePartition):
+        * page/SecurityOrigin.h:
+        (WebCore::SecurityOrigin::canAccessDatabase):
+        (WebCore::SecurityOrigin::canAccessSessionStorage):
+        (WebCore::SecurityOrigin::canAccessPluginStorage):
+        (WebCore::SecurityOrigin::canAccessApplicationCache):
+        * storage/StorageNamespaceProvider.cpp:
+        (WebCore::StorageNamespaceProvider::localStorageArea):
+        * testing/Internals.cpp:
+        (WebCore::Internals::isLoadingFromMemoryCache):
+        * workers/DedicatedWorkerGlobalScope.cpp:
+        (WebCore::DedicatedWorkerGlobalScope::create):
+        (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
+        * workers/DedicatedWorkerGlobalScope.h:
+        * workers/DedicatedWorkerThread.cpp:
+        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
+        (WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
+        * workers/DedicatedWorkerThread.h:
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+        * workers/WorkerGlobalScope.h:
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
+        (WebCore::WorkerThread::WorkerThread):
+        * workers/WorkerThread.h:
+
</ins><span class="cx"> 2017-01-19  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Provide API to set proxy settings
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesapplepayApplePaySessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -378,7 +378,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto&amp; topDocument = document.topDocument();
</span><span class="cx">     if (&amp;document != &amp;topDocument) {
</span><del>-        auto&amp; topOrigin = *topDocument.topOrigin();
</del><ins>+        auto&amp; topOrigin = topDocument.topOrigin();
</ins><span class="cx"> 
</span><span class="cx">         if (!document.securityOrigin().isSameSchemeHostPort(topOrigin))
</span><span class="cx">             return Exception { INVALID_ACCESS_ERR, &quot;Trying to call an ApplePaySession API from a document with an different security origin than its top-level frame.&quot; };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesencryptedmediaCDMcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -413,11 +413,9 @@
</span><span class="cx">         return std::nullopt;
</span><span class="cx"> 
</span><span class="cx">     SecurityOrigin&amp; origin = document-&gt;securityOrigin();
</span><del>-    SecurityOrigin* topOrigin = document-&gt;topOrigin();
-    if (!topOrigin)
-        return std::nullopt;
</del><ins>+    SecurityOrigin&amp; topOrigin = document-&gt;topOrigin();
</ins><span class="cx"> 
</span><del>-    if ((accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required || accumulatedConfiguration.persistentState == MediaKeysRequirement::Required) &amp;&amp; !origin.canAccessLocalStorage(topOrigin))
</del><ins>+    if ((accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required || accumulatedConfiguration.persistentState == MediaKeysRequirement::Required) &amp;&amp; !origin.canAccessLocalStorage(&amp;topOrigin))
</ins><span class="cx">         return std::nullopt;
</span><span class="cx"> 
</span><span class="cx">     return WTFMove(accumulatedConfiguration);
</span><span class="lines">@@ -548,11 +546,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         SecurityOrigin&amp; origin = document-&gt;securityOrigin();
</span><del>-        SecurityOrigin* topOrigin = document-&gt;topOrigin();
-        if (!topOrigin) {
-            callback(ConsentStatus::ConsentDenied, WTFMove(accumulatedConfiguration), WTFMove(restrictions));
-            return;
-        }
</del><ins>+        SecurityOrigin&amp; topOrigin = document-&gt;topOrigin();
</ins><span class="cx"> 
</span><span class="cx">         // 3.1.1.2 Get Supported Configuration and Consent, ctd.
</span><span class="cx">         // 21. If accumulated configuration's distinctiveIdentifier value is &quot;required&quot; and the Distinctive Identifier(s) associated
</span><span class="lines">@@ -592,7 +586,7 @@
</span><span class="cx">         // 3.2.1. Update restrictions to reflect the configurations for which consent was denied.
</span><span class="cx">         // 3.2.1. Return ConsentDenied and restrictions.
</span><span class="cx">         // NOTE: assume implied consent if the combination of origin and topOrigin allows it.
</span><del>-        if (accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required &amp;&amp; !origin.canAccessLocalStorage(topOrigin)) {
</del><ins>+        if (accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required &amp;&amp; !origin.canAccessLocalStorage(&amp;topOrigin)) {
</ins><span class="cx">             restrictions.distinctiveIdentifierDenied = true;
</span><span class="cx">             callback(ConsentStatus::ConsentDenied, WTFMove(accumulatedConfiguration), WTFMove(restrictions));
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBFactorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -94,8 +94,7 @@
</span><span class="cx">         return Exception { SECURITY_ERR, ASCIILiteral(&quot;IDBFactory.open() called in an invalid security context&quot;) };
</span><span class="cx"> 
</span><span class="cx">     ASSERT(context.securityOrigin());
</span><del>-    ASSERT(context.topOrigin());
-    IDBDatabaseIdentifier databaseIdentifier(name, *context.securityOrigin(), *context.topOrigin());
</del><ins>+    IDBDatabaseIdentifier databaseIdentifier(name, *context.securityOrigin(), context.topOrigin());
</ins><span class="cx">     if (!databaseIdentifier.isValid())
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;IDBFactory.open() called with an invalid security origin&quot;) };
</span><span class="cx"> 
</span><span class="lines">@@ -115,8 +114,7 @@
</span><span class="cx">         return Exception { SECURITY_ERR, ASCIILiteral(&quot;IDBFactory.deleteDatabase() called in an invalid security context&quot;) };
</span><span class="cx"> 
</span><span class="cx">     ASSERT(context.securityOrigin());
</span><del>-    ASSERT(context.topOrigin());
-    IDBDatabaseIdentifier databaseIdentifier(name, *context.securityOrigin(), *context.topOrigin());
</del><ins>+    IDBDatabaseIdentifier databaseIdentifier(name, *context.securityOrigin(), context.topOrigin());
</ins><span class="cx">     if (!databaseIdentifier.isValid())
</span><span class="cx">         return Exception { TypeError, ASCIILiteral(&quot;IDBFactory.deleteDatabase() called with an invalid security origin&quot;) };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDevicesEnumerationRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesEnumerationRequest.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDevicesEnumerationRequest.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevicesEnumerationRequest.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">             return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return scriptExecutionContext()-&gt;topOrigin();
</del><ins>+    return &amp;scriptExecutionContext()-&gt;topOrigin();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MediaDevicesEnumerationRequest::contextDestroyed()
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamUserMediaRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_scriptExecutionContext)
</span><span class="cx">         return nullptr;
</span><del>-    return m_scriptExecutionContext-&gt;topOrigin();
</del><ins>+    return &amp;m_scriptExecutionContext-&gt;topOrigin();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isSecure(DocumentLoader&amp; documentLoader)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto&amp; topDocument = document.topDocument();
</span><span class="cx">     if (&amp;document != &amp;topDocument) {
</span><del>-        auto&amp; topOrigin = *topDocument.topOrigin();
</del><ins>+        auto&amp; topOrigin = topDocument.topOrigin();
</ins><span class="cx"> 
</span><span class="cx">         if (!document.securityOrigin().isSameSchemeHostPort(topOrigin)) {
</span><span class="cx">             errorMessage = &quot;Trying to call getUserMedia from a document with a different security origin than its top-level frame.&quot;;
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/dom/Document.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -5362,11 +5362,6 @@
</span><span class="cx">         page-&gt;console().addMessage(source, level, message, sourceURL, lineNumber, columnNumber, WTFMove(callStack), state, requestIdentifier);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-SecurityOrigin* Document::topOrigin() const
-{
-    return &amp;topDocument().securityOrigin();
-}
-
</del><span class="cx"> void Document::postTask(Task&amp;&amp; task)
</span><span class="cx"> {
</span><span class="cx">     callOnMainThread([documentReference = m_weakFactory.createWeakPtr(), task = WTFMove(task)]() mutable {
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/dom/Document.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -912,7 +912,7 @@
</span><span class="cx">     WEBCORE_EXPORT void setDesignMode(const String&amp;);
</span><span class="cx"> 
</span><span class="cx">     Document* parentDocument() const;
</span><del>-    Document&amp; topDocument() const;
</del><ins>+    WEBCORE_EXPORT Document&amp; topDocument() const;
</ins><span class="cx">     
</span><span class="cx">     ScriptRunner* scriptRunner() { return m_scriptRunner.get(); }
</span><span class="cx">     ScriptModuleLoader* moduleLoader() { return m_moduleLoader.get(); }
</span><span class="lines">@@ -1223,9 +1223,8 @@
</span><span class="cx">     WEBCORE_EXPORT void addConsoleMessage(MessageSource, MessageLevel, const String&amp; message, unsigned long requestIdentifier = 0) final;
</span><span class="cx"> 
</span><span class="cx">     SecurityOrigin&amp; securityOrigin() const { return *SecurityContext::securityOrigin(); }
</span><ins>+    SecurityOrigin&amp; topOrigin() const final { return topDocument().securityOrigin(); }
</ins><span class="cx"> 
</span><del>-    WEBCORE_EXPORT SecurityOrigin* topOrigin() const final;
-
</del><span class="cx">     Ref&lt;FontFaceSet&gt; fonts();
</span><span class="cx"> 
</span><span class="cx">     void ensurePlugInsInjectedScript(DOMWrapperWorld&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">     void addConsoleMessage(MessageSource, MessageLevel, const String&amp; message, const String&amp; sourceURL, unsigned lineNumber, unsigned columnNumber, JSC::ExecState* = nullptr, unsigned long requestIdentifier = 0);
</span><span class="cx">     virtual void addConsoleMessage(MessageSource, MessageLevel, const String&amp; message, unsigned long requestIdentifier = 0) = 0;
</span><span class="cx"> 
</span><del>-    virtual SecurityOrigin* topOrigin() const = 0;
</del><ins>+    virtual SecurityOrigin&amp; topOrigin() const = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool shouldBypassMainWorldContentSecurityPolicy() const { return false; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlDOMURLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/DOMURL.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/DOMURL.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/html/DOMURL.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx">     URL url(URL(), urlString);
</span><span class="cx">     ResourceRequest request(url);
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><del>-    request.setDomainForCachePartition(scriptExecutionContext.topOrigin()-&gt;domainForCachePartition());
</del><ins>+    request.setDomainForCachePartition(scriptExecutionContext.topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx">     MemoryCache::removeRequestFromSessionCaches(scriptExecutionContext, request);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -575,9 +575,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto&amp; openingOrigin = document-&gt;securityOrigin();
</span><span class="cx"> 
</span><del>-    auto* topOrigin = document-&gt;topOrigin();
-    if (!topOrigin)
-        return;
</del><ins>+    auto&amp; topOrigin = document-&gt;topOrigin();
</ins><span class="cx"> 
</span><span class="cx">     IDBFactory* idbFactory = assertIDBFactory(errorString, document);
</span><span class="cx">     if (!idbFactory)
</span><span class="lines">@@ -584,7 +582,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;RequestDatabaseNamesCallback&gt; callback = WTFMove(requestCallback);
</span><del>-    idbFactory-&gt;getAllDatabaseNames(*topOrigin, openingOrigin, [callback](auto&amp; databaseNames) {
</del><ins>+    idbFactory-&gt;getAllDatabaseNames(topOrigin, openingOrigin, [callback](auto&amp; databaseNames) {
</ins><span class="cx">         if (!callback-&gt;isActive())
</span><span class="cx">             return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorPageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -261,7 +261,7 @@
</span><span class="cx">     if (!cachedResource) {
</span><span class="cx">         ResourceRequest request(url);
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><del>-        request.setDomainForCachePartition(frame-&gt;document()-&gt;topOrigin()-&gt;domainForCachePartition());
</del><ins>+        request.setDomainForCachePartition(frame-&gt;document()-&gt;topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx">         cachedResource = MemoryCache::singleton().resourceForRequest(request, frame-&gt;page()-&gt;sessionID());
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheGroupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Don't access anything on disk if private browsing is enabled.
</span><del>-    if (frame.page()-&gt;usesEphemeralSession() || !frame.document()-&gt;securityOrigin().canAccessApplicationCache(&amp;frame.tree().top().document()-&gt;securityOrigin())) {
</del><ins>+    if (frame.page()-&gt;usesEphemeralSession() || !frame.document()-&gt;securityOrigin().canAccessApplicationCache(frame.tree().top().document()-&gt;securityOrigin())) {
</ins><span class="cx">         postListenerTask(eventNames().checkingEvent, documentLoader);
</span><span class="cx">         postListenerTask(eventNames().errorEvent, documentLoader);
</span><span class="cx">         return;
</span><span class="lines">@@ -207,7 +207,7 @@
</span><span class="cx">     ASSERT(!documentLoader.applicationCacheHost().applicationCache());
</span><span class="cx"> 
</span><span class="cx">     // Don't access anything on disk if private browsing is enabled.
</span><del>-    if (frame.page()-&gt;usesEphemeralSession() || !frame.document()-&gt;securityOrigin().canAccessApplicationCache(&amp;frame.tree().top().document()-&gt;securityOrigin())) {
</del><ins>+    if (frame.page()-&gt;usesEphemeralSession() || !frame.document()-&gt;securityOrigin().canAccessApplicationCache(frame.tree().top().document()-&gt;securityOrigin())) {
</ins><span class="cx">         postListenerTask(eventNames().checkingEvent, documentLoader);
</span><span class="cx">         postListenerTask(eventNames().errorEvent, documentLoader);
</span><span class="cx">         return;
</span><span class="lines">@@ -413,7 +413,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Don't access anything on disk if private browsing is enabled.
</span><del>-    if (frame.page()-&gt;usesEphemeralSession() || !frame.document()-&gt;securityOrigin().canAccessApplicationCache(&amp;frame.tree().top().document()-&gt;securityOrigin())) {
</del><ins>+    if (frame.page()-&gt;usesEphemeralSession() || !frame.document()-&gt;securityOrigin().canAccessApplicationCache(frame.tree().top().document()-&gt;securityOrigin())) {
</ins><span class="cx">         ASSERT(m_pendingMasterResourceLoaders.isEmpty());
</span><span class="cx">         ASSERT(m_pendingEntries.isEmpty());
</span><span class="cx">         ASSERT(!m_cacheBeingUpdated);
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderarchivecfLegacyWebArchivecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -515,7 +515,7 @@
</span><span class="cx"> 
</span><span class="cx">                 ResourceRequest request(subresourceURL);
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><del>-                request.setDomainForCachePartition(frame.document()-&gt;topOrigin()-&gt;domainForCachePartition());
</del><ins>+                request.setDomainForCachePartition(frame.document()-&gt;topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx">                 if (auto* cachedResource = MemoryCache::singleton().resourceForRequest(request, frame.page()-&gt;sessionID())) {
</span><span class="cx">                     if (auto resource = ArchiveResource::create(cachedResource-&gt;resourceBuffer(), subresourceURL, cachedResource-&gt;response())) {
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheCachedResourceRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -132,8 +132,7 @@
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><span class="cx"> void CachedResourceRequest::setDomainForCachePartition(Document&amp; document)
</span><span class="cx"> {
</span><del>-    ASSERT(document.topOrigin());
-    m_resourceRequest.setDomainForCachePartition(document.topOrigin()-&gt;domainForCachePartition());
</del><ins>+    m_resourceRequest.setDomainForCachePartition(document.topOrigin().domainForCachePartition());
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageSecurityOriginh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SecurityOrigin.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SecurityOrigin.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/page/SecurityOrigin.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -142,11 +142,11 @@
</span><span class="cx">     WEBCORE_EXPORT String domainForCachePartition() const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool canAccessDatabase(const SecurityOrigin* topOrigin = nullptr) const { return canAccessStorage(topOrigin); };
-    bool canAccessSessionStorage(const SecurityOrigin* topOrigin) const { return canAccessStorage(topOrigin, AlwaysAllowFromThirdParty); }
</del><ins>+    bool canAccessDatabase(const SecurityOrigin&amp; topOrigin) const { return canAccessStorage(&amp;topOrigin); };
+    bool canAccessSessionStorage(const SecurityOrigin&amp; topOrigin) const { return canAccessStorage(&amp;topOrigin, AlwaysAllowFromThirdParty); }
</ins><span class="cx">     bool canAccessLocalStorage(const SecurityOrigin* topOrigin) const { return canAccessStorage(topOrigin); };
</span><del>-    bool canAccessPluginStorage(const SecurityOrigin* topOrigin) const { return canAccessStorage(topOrigin); }
-    bool canAccessApplicationCache(const SecurityOrigin* topOrigin) const { return canAccessStorage(topOrigin); }
</del><ins>+    bool canAccessPluginStorage(const SecurityOrigin&amp; topOrigin) const { return canAccessStorage(&amp;topOrigin); }
+    bool canAccessApplicationCache(const SecurityOrigin&amp; topOrigin) const { return canAccessStorage(&amp;topOrigin); }
</ins><span class="cx">     bool canAccessCookies() const { return !isUnique(); }
</span><span class="cx">     bool canRequestGeolocation() const { return !isUnique(); }
</span><span class="cx">     Policy canShowNotifications() const;
</span></span></pre></div>
<a id="trunkSourceWebCorestorageStorageNamespaceProvidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/storage/StorageNamespaceProvider.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/storage/StorageNamespaceProvider.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/storage/StorageNamespaceProvider.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;StorageArea&gt; StorageNamespaceProvider::localStorageArea(Document&amp; document)
</span><span class="cx"> {
</span><del>-    auto&amp; storageNamespace = document.securityOrigin().canAccessLocalStorage(document.topOrigin()) ? localStorageNamespace() : transientLocalStorageNamespace(*document.topOrigin());
</del><ins>+    auto&amp; storageNamespace = document.securityOrigin().canAccessLocalStorage(&amp;document.topOrigin()) ? localStorageNamespace() : transientLocalStorageNamespace(document.topOrigin());
</ins><span class="cx"> 
</span><span class="cx">     return storageNamespace.storageArea(SecurityOriginData::fromSecurityOrigin(document.securityOrigin()));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/testing/Internals.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -547,7 +547,7 @@
</span><span class="cx"> 
</span><span class="cx">     ResourceRequest request(contextDocument()-&gt;completeURL(url));
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><del>-    request.setDomainForCachePartition(contextDocument()-&gt;topOrigin()-&gt;domainForCachePartition());
</del><ins>+    request.setDomainForCachePartition(contextDocument()-&gt;topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx">     CachedResource* resource = MemoryCache::singleton().resourceForRequest(request, contextDocument()-&gt;page()-&gt;sessionID());
</span><span class="cx">     return resource &amp;&amp; resource-&gt;status() == CachedResource::Cached;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Ref&lt;DedicatedWorkerGlobalScope&gt; DedicatedWorkerGlobalScope::create(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</del><ins>+Ref&lt;DedicatedWorkerGlobalScope&gt; DedicatedWorkerGlobalScope::create(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</ins><span class="cx"> {
</span><span class="cx">     auto context = adoptRef(*new DedicatedWorkerGlobalScope(url, identifier, userAgent, thread, shouldBypassMainWorldContentSecurityPolicy, WTFMove(topOrigin), connectionProxy, socketProvider));
</span><span class="cx">     if (!shouldBypassMainWorldContentSecurityPolicy)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     return context;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</del><ins>+DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</ins><span class="cx">     : WorkerGlobalScope(url, identifier, userAgent, thread, shouldBypassMainWorldContentSecurityPolicy, WTFMove(topOrigin), connectionProxy, socketProvider)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> 
</span><span class="cx"> class DedicatedWorkerGlobalScope final : public WorkerGlobalScope {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;DedicatedWorkerGlobalScope&gt; create(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp;, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</del><ins>+    static Ref&lt;DedicatedWorkerGlobalScope&gt; create(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp;, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</ins><span class="cx">     virtual ~DedicatedWorkerGlobalScope();
</span><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;void&gt; postMessage(JSC::ExecState&amp;, JSC::JSValue message, Vector&lt;JSC::Strong&lt;JSC::JSObject&gt;&gt;&amp;&amp;);
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> private:
</span><span class="cx">     using Base = WorkerGlobalScope;
</span><span class="cx"> 
</span><del>-    DedicatedWorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</del><ins>+    DedicatedWorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, DedicatedWorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</ins><span class="cx"> 
</span><span class="cx">     bool isDedicatedWorkerGlobalScope() const final { return true; }
</span><span class="cx">     ExceptionOr&lt;void&gt; importScripts(const Vector&lt;String&gt;&amp; urls) final;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-DedicatedWorkerThread::DedicatedWorkerThread(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerObjectProxy&amp; workerObjectProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider, JSC::RuntimeFlags runtimeFlags)
</del><ins>+DedicatedWorkerThread::DedicatedWorkerThread(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerObjectProxy&amp; workerObjectProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider, JSC::RuntimeFlags runtimeFlags)
</ins><span class="cx">     : WorkerThread(url, identifier, userAgent, sourceCode, workerLoaderProxy, workerObjectProxy, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, topOrigin, connectionProxy, socketProvider, runtimeFlags)
</span><span class="cx">     , m_workerObjectProxy(workerObjectProxy)
</span><span class="cx"> {
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;WorkerGlobalScope&gt; DedicatedWorkerThread::createWorkerGlobalScope(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin)
</del><ins>+Ref&lt;WorkerGlobalScope&gt; DedicatedWorkerThread::createWorkerGlobalScope(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin)
</ins><span class="cx"> {
</span><span class="cx">     return DedicatedWorkerGlobalScope::create(url, identifier, userAgent, *this, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, WTFMove(topOrigin), idbConnectionProxy(), socketProvider());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerThreadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerThread.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerThread.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/DedicatedWorkerThread.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -49,11 +49,11 @@
</span><span class="cx">     WorkerObjectProxy&amp; workerObjectProxy() const { return m_workerObjectProxy; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin) override;
</del><ins>+    Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin) override;
</ins><span class="cx">     void runEventLoop() override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    DedicatedWorkerThread(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerObjectProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</del><ins>+    DedicatedWorkerThread(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerObjectProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</ins><span class="cx"> 
</span><span class="cx">     WorkerObjectProxy&amp; m_workerObjectProxy;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-WorkerGlobalScope::WorkerGlobalScope(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, WorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</del><ins>+WorkerGlobalScope::WorkerGlobalScope(const URL&amp; url, const String&amp; identifier, const String&amp; userAgent, WorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</ins><span class="cx">     : m_url(url)
</span><span class="cx">     , m_identifier(identifier)
</span><span class="cx">     , m_userAgent(userAgent)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     , m_inspectorController(std::make_unique&lt;WorkerInspectorController&gt;(*this))
</span><span class="cx">     , m_shouldBypassMainWorldContentSecurityPolicy(shouldBypassMainWorldContentSecurityPolicy)
</span><span class="cx">     , m_eventQueue(*this)
</span><del>-    , m_topOrigin(topOrigin)
</del><ins>+    , m_topOrigin(WTFMove(topOrigin))
</ins><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     , m_connectionProxy(connectionProxy)
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx">     Crypto&amp; crypto();
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    WorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, WorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</del><ins>+    WorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, WorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</ins><span class="cx"> 
</span><span class="cx">     void applyContentSecurityPolicyResponseHeaders(const ContentSecurityPolicyResponseHeaders&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool shouldBypassMainWorldContentSecurityPolicy() const final { return m_shouldBypassMainWorldContentSecurityPolicy; }
</span><span class="cx">     bool isJSExecutionForbidden() const final;
</span><del>-    SecurityOrigin* topOrigin() const final { return m_topOrigin.get(); }
</del><ins>+    SecurityOrigin&amp; topOrigin() const final { return m_topOrigin.get(); }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx">     // The following two functions are side effects of providing extra protection to serialized
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> 
</span><span class="cx">     mutable WorkerEventQueue m_eventQueue;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;SecurityOrigin&gt; m_topOrigin;
</del><ins>+    Ref&lt;SecurityOrigin&gt; m_topOrigin;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     RefPtr&lt;IDBClient::IDBConnectionProxy&gt; m_connectionProxy;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerThread.cpp (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerThread.cpp        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/WorkerThread.cpp        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> struct WorkerThreadStartupData {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(WorkerThreadStartupData); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    WorkerThreadStartupData(const URL&amp; scriptURL, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin);
</del><ins>+    WorkerThreadStartupData(const URL&amp; scriptURL, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin&amp; topOrigin);
</ins><span class="cx"> 
</span><span class="cx">     URL m_scriptURL;
</span><span class="cx">     String m_identifier;
</span><span class="lines">@@ -81,10 +81,10 @@
</span><span class="cx">     WorkerThreadStartMode m_startMode;
</span><span class="cx">     ContentSecurityPolicyResponseHeaders m_contentSecurityPolicyResponseHeaders;
</span><span class="cx">     bool m_shouldBypassMainWorldContentSecurityPolicy;
</span><del>-    RefPtr&lt;SecurityOrigin&gt; m_topOrigin;
</del><ins>+    Ref&lt;SecurityOrigin&gt; m_topOrigin;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><del>-WorkerThreadStartupData::WorkerThreadStartupData(const URL&amp; scriptURL, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin)
</del><ins>+WorkerThreadStartupData::WorkerThreadStartupData(const URL&amp; scriptURL, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin&amp; topOrigin)
</ins><span class="cx">     : m_scriptURL(scriptURL.isolatedCopy())
</span><span class="cx">     , m_identifier(identifier.isolatedCopy())
</span><span class="cx">     , m_userAgent(userAgent.isolatedCopy())
</span><span class="lines">@@ -92,11 +92,11 @@
</span><span class="cx">     , m_startMode(startMode)
</span><span class="cx">     , m_contentSecurityPolicyResponseHeaders(contentSecurityPolicyResponseHeaders.isolatedCopy())
</span><span class="cx">     , m_shouldBypassMainWorldContentSecurityPolicy(shouldBypassMainWorldContentSecurityPolicy)
</span><del>-    , m_topOrigin(topOrigin ? &amp;topOrigin-&gt;isolatedCopy().get() : nullptr)
</del><ins>+    , m_topOrigin(topOrigin.isolatedCopy())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WorkerThread::WorkerThread(const URL&amp; scriptURL, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerReportingProxy&amp; workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider, JSC::RuntimeFlags runtimeFlags)
</del><ins>+WorkerThread::WorkerThread(const URL&amp; scriptURL, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerReportingProxy&amp; workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin&amp; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider, JSC::RuntimeFlags runtimeFlags)
</ins><span class="cx">     : m_threadID(0)
</span><span class="cx">     , m_workerLoaderProxy(workerLoaderProxy)
</span><span class="cx">     , m_workerReportingProxy(workerReportingProxy)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerThreadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerThread.h (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerThread.h        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebCore/workers/WorkerThread.h        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -80,10 +80,10 @@
</span><span class="cx">     JSC::RuntimeFlags runtimeFlags() const { return m_runtimeFlags; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    WorkerThread(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerReportingProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</del><ins>+    WorkerThread(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerReportingProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin&amp; topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</ins><span class="cx"> 
</span><span class="cx">     // Factory method for creating a new worker context for the thread.
</span><del>-    virtual Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; topOrigin) = 0;
</del><ins>+    virtual Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; identifier, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin) = 0;
</ins><span class="cx"> 
</span><span class="cx">     // Executes the event loop for the worker thread. Derived classes can override to perform actions before/after entering the event loop.
</span><span class="cx">     virtual void runEventLoop();
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebKit/mac/ChangeLog        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2017-01-19  Andreas Kling  &lt;akling@apple.com&gt;
+
+        ScriptExecutionContext::topOrigin() should return a reference.
+        &lt;https://webkit.org/b/167190&gt;
+
+        Reviewed by Sam Weinig.
+
+        * Misc/WebCache.mm:
+        (+[WebCache addImageToCache:forURL:forFrame:]):
+        (+[WebCache removeImageFromCacheForURL:forFrame:]):
+
</ins><span class="cx"> 2017-01-18  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed fix for the macOS build.
</span></span></pre></div>
<a id="trunkSourceWebKitmacMiscWebCachemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Misc/WebCache.mm (210922 => 210923)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Misc/WebCache.mm        2017-01-19 11:50:31 UTC (rev 210922)
+++ trunk/Source/WebKit/mac/Misc/WebCache.mm        2017-01-19 15:56:13 UTC (rev 210923)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">     WebCore::SecurityOrigin* topOrigin = nullptr;
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><span class="cx">     if (frame)
</span><del>-        topOrigin = core(frame)-&gt;document()-&gt;topOrigin();
</del><ins>+        topOrigin = &amp;core(frame)-&gt;document()-&gt;topOrigin();
</ins><span class="cx"> #endif
</span><span class="cx">     return WebCore::MemoryCache::singleton().addImageToCache(RetainPtr&lt;CGImageRef&gt;(image), url, topOrigin ? topOrigin-&gt;domainForCachePartition() : emptyString());
</span><span class="cx"> }
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx">     WebCore::SecurityOrigin* topOrigin = nullptr;
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><span class="cx">     if (frame)
</span><del>-        topOrigin = core(frame)-&gt;document()-&gt;topOrigin();
</del><ins>+        topOrigin = &amp;core(frame)-&gt;document()-&gt;topOrigin();
</ins><span class="cx"> #endif
</span><span class="cx">     WebCore::MemoryCache::singleton().removeImageFromCache(url, topOrigin ? topOrigin-&gt;domainForCachePartition() : emptyString());
</span><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>