<!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.
<https://webkit.org/b/167190>
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 <akling@apple.com>
+
+ ScriptExecutionContext::topOrigin() should return a reference.
+ <https://webkit.org/b/167190>
+
+ 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 <cgarcia@igalia.com>
</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& topDocument = document.topDocument();
</span><span class="cx"> if (&document != &topDocument) {
</span><del>- auto& topOrigin = *topDocument.topOrigin();
</del><ins>+ auto& 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, "Trying to call an ApplePaySession API from a document with an different security origin than its top-level frame." };
</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& origin = document->securityOrigin();
</span><del>- SecurityOrigin* topOrigin = document->topOrigin();
- if (!topOrigin)
- return std::nullopt;
</del><ins>+ SecurityOrigin& topOrigin = document->topOrigin();
</ins><span class="cx">
</span><del>- if ((accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required || accumulatedConfiguration.persistentState == MediaKeysRequirement::Required) && !origin.canAccessLocalStorage(topOrigin))
</del><ins>+ if ((accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required || accumulatedConfiguration.persistentState == MediaKeysRequirement::Required) && !origin.canAccessLocalStorage(&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& origin = document->securityOrigin();
</span><del>- SecurityOrigin* topOrigin = document->topOrigin();
- if (!topOrigin) {
- callback(ConsentStatus::ConsentDenied, WTFMove(accumulatedConfiguration), WTFMove(restrictions));
- return;
- }
</del><ins>+ SecurityOrigin& topOrigin = document->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 "required" 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 && !origin.canAccessLocalStorage(topOrigin)) {
</del><ins>+ if (accumulatedConfiguration.distinctiveIdentifier == MediaKeysRequirement::Required && !origin.canAccessLocalStorage(&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("IDBFactory.open() called in an invalid security context") };
</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("IDBFactory.open() called with an invalid security origin") };
</span><span class="cx">
</span><span class="lines">@@ -115,8 +114,7 @@
</span><span class="cx"> return Exception { SECURITY_ERR, ASCIILiteral("IDBFactory.deleteDatabase() called in an invalid security context") };
</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("IDBFactory.deleteDatabase() called with an invalid security origin") };
</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()->topOrigin();
</del><ins>+ return &scriptExecutionContext()->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->topOrigin();
</del><ins>+ return &m_scriptExecutionContext->topOrigin();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool isSecure(DocumentLoader& documentLoader)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">
</span><span class="cx"> auto& topDocument = document.topDocument();
</span><span class="cx"> if (&document != &topDocument) {
</span><del>- auto& topOrigin = *topDocument.topOrigin();
</del><ins>+ auto& topOrigin = topDocument.topOrigin();
</ins><span class="cx">
</span><span class="cx"> if (!document.securityOrigin().isSameSchemeHostPort(topOrigin)) {
</span><span class="cx"> errorMessage = "Trying to call getUserMedia from a document with a different security origin than its top-level frame.";
</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->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 &topDocument().securityOrigin();
-}
-
</del><span class="cx"> void Document::postTask(Task&& 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&);
</span><span class="cx">
</span><span class="cx"> Document* parentDocument() const;
</span><del>- Document& topDocument() const;
</del><ins>+ WEBCORE_EXPORT Document& 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& message, unsigned long requestIdentifier = 0) final;
</span><span class="cx">
</span><span class="cx"> SecurityOrigin& securityOrigin() const { return *SecurityContext::securityOrigin(); }
</span><ins>+ SecurityOrigin& topOrigin() const final { return topDocument().securityOrigin(); }
</ins><span class="cx">
</span><del>- WEBCORE_EXPORT SecurityOrigin* topOrigin() const final;
-
</del><span class="cx"> Ref<FontFaceSet> fonts();
</span><span class="cx">
</span><span class="cx"> void ensurePlugInsInjectedScript(DOMWrapperWorld&);
</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& message, const String& sourceURL, unsigned lineNumber, unsigned columnNumber, JSC::ExecState* = nullptr, unsigned long requestIdentifier = 0);
</span><span class="cx"> virtual void addConsoleMessage(MessageSource, MessageLevel, const String& message, unsigned long requestIdentifier = 0) = 0;
</span><span class="cx">
</span><del>- virtual SecurityOrigin* topOrigin() const = 0;
</del><ins>+ virtual SecurityOrigin& 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()->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& openingOrigin = document->securityOrigin();
</span><span class="cx">
</span><del>- auto* topOrigin = document->topOrigin();
- if (!topOrigin)
- return;
</del><ins>+ auto& topOrigin = document->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<RequestDatabaseNamesCallback> callback = WTFMove(requestCallback);
</span><del>- idbFactory->getAllDatabaseNames(*topOrigin, openingOrigin, [callback](auto& databaseNames) {
</del><ins>+ idbFactory->getAllDatabaseNames(topOrigin, openingOrigin, [callback](auto& databaseNames) {
</ins><span class="cx"> if (!callback->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->document()->topOrigin()->domainForCachePartition());
</del><ins>+ request.setDomainForCachePartition(frame->document()->topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx"> cachedResource = MemoryCache::singleton().resourceForRequest(request, frame->page()->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()->usesEphemeralSession() || !frame.document()->securityOrigin().canAccessApplicationCache(&frame.tree().top().document()->securityOrigin())) {
</del><ins>+ if (frame.page()->usesEphemeralSession() || !frame.document()->securityOrigin().canAccessApplicationCache(frame.tree().top().document()->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()->usesEphemeralSession() || !frame.document()->securityOrigin().canAccessApplicationCache(&frame.tree().top().document()->securityOrigin())) {
</del><ins>+ if (frame.page()->usesEphemeralSession() || !frame.document()->securityOrigin().canAccessApplicationCache(frame.tree().top().document()->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()->usesEphemeralSession() || !frame.document()->securityOrigin().canAccessApplicationCache(&frame.tree().top().document()->securityOrigin())) {
</del><ins>+ if (frame.page()->usesEphemeralSession() || !frame.document()->securityOrigin().canAccessApplicationCache(frame.tree().top().document()->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()->topOrigin()->domainForCachePartition());
</del><ins>+ request.setDomainForCachePartition(frame.document()->topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx"> if (auto* cachedResource = MemoryCache::singleton().resourceForRequest(request, frame.page()->sessionID())) {
</span><span class="cx"> if (auto resource = ArchiveResource::create(cachedResource->resourceBuffer(), subresourceURL, cachedResource->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& document)
</span><span class="cx"> {
</span><del>- ASSERT(document.topOrigin());
- m_resourceRequest.setDomainForCachePartition(document.topOrigin()->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& topOrigin) const { return canAccessStorage(&topOrigin); };
+ bool canAccessSessionStorage(const SecurityOrigin& topOrigin) const { return canAccessStorage(&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& topOrigin) const { return canAccessStorage(&topOrigin); }
+ bool canAccessApplicationCache(const SecurityOrigin& topOrigin) const { return canAccessStorage(&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<StorageArea> StorageNamespaceProvider::localStorageArea(Document& document)
</span><span class="cx"> {
</span><del>- auto& storageNamespace = document.securityOrigin().canAccessLocalStorage(document.topOrigin()) ? localStorageNamespace() : transientLocalStorageNamespace(*document.topOrigin());
</del><ins>+ auto& storageNamespace = document.securityOrigin().canAccessLocalStorage(&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()->completeURL(url));
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><del>- request.setDomainForCachePartition(contextDocument()->topOrigin()->domainForCachePartition());
</del><ins>+ request.setDomainForCachePartition(contextDocument()->topOrigin().domainForCachePartition());
</ins><span class="cx"> #endif
</span><span class="cx"> CachedResource* resource = MemoryCache::singleton().resourceForRequest(request, contextDocument()->page()->sessionID());
</span><span class="cx"> return resource && resource->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<DedicatedWorkerGlobalScope> DedicatedWorkerGlobalScope::create(const URL& url, const String& identifier, const String& userAgent, DedicatedWorkerThread& thread, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</del><ins>+Ref<DedicatedWorkerGlobalScope> DedicatedWorkerGlobalScope::create(const URL& url, const String& identifier, const String& userAgent, DedicatedWorkerThread& thread, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& 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& url, const String& identifier, const String& userAgent, DedicatedWorkerThread& thread, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</del><ins>+DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL& url, const String& identifier, const String& userAgent, DedicatedWorkerThread& thread, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& 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<DedicatedWorkerGlobalScope> create(const URL&, const String& identifier, const String& userAgent, DedicatedWorkerThread&, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</del><ins>+ static Ref<DedicatedWorkerGlobalScope> create(const URL&, const String& identifier, const String& userAgent, DedicatedWorkerThread&, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</ins><span class="cx"> virtual ~DedicatedWorkerGlobalScope();
</span><span class="cx">
</span><span class="cx"> ExceptionOr<void> postMessage(JSC::ExecState&, JSC::JSValue message, Vector<JSC::Strong<JSC::JSObject>>&&);
</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&, const String& identifier, const String& userAgent, DedicatedWorkerThread&, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</del><ins>+ DedicatedWorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, DedicatedWorkerThread&, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</ins><span class="cx">
</span><span class="cx"> bool isDedicatedWorkerGlobalScope() const final { return true; }
</span><span class="cx"> ExceptionOr<void> importScripts(const Vector<String>& 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& url, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy& workerLoaderProxy, WorkerObjectProxy& workerObjectProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider, JSC::RuntimeFlags runtimeFlags)
</del><ins>+DedicatedWorkerThread::DedicatedWorkerThread(const URL& url, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy& workerLoaderProxy, WorkerObjectProxy& workerObjectProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin& 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<WorkerGlobalScope> DedicatedWorkerThread::createWorkerGlobalScope(const URL& url, const String& identifier, const String& userAgent, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin)
</del><ins>+Ref<WorkerGlobalScope> DedicatedWorkerThread::createWorkerGlobalScope(const URL& url, const String& identifier, const String& userAgent, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& 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& workerObjectProxy() const { return m_workerObjectProxy; }
</span><span class="cx">
</span><span class="cx"> protected:
</span><del>- Ref<WorkerGlobalScope> createWorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin) override;
</del><ins>+ Ref<WorkerGlobalScope> createWorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& topOrigin) override;
</ins><span class="cx"> void runEventLoop() override;
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- DedicatedWorkerThread(const URL&, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy&, WorkerObjectProxy&, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</del><ins>+ DedicatedWorkerThread(const URL&, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy&, WorkerObjectProxy&, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</ins><span class="cx">
</span><span class="cx"> WorkerObjectProxy& 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& url, const String& identifier, const String& userAgent, WorkerThread& thread, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider)
</del><ins>+WorkerGlobalScope::WorkerGlobalScope(const URL& url, const String& identifier, const String& userAgent, WorkerThread& thread, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& 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<WorkerInspectorController>(*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& crypto();
</span><span class="cx">
</span><span class="cx"> protected:
</span><del>- WorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, WorkerThread&, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</del><ins>+ WorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, WorkerThread&, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
</ins><span class="cx">
</span><span class="cx"> void applyContentSecurityPolicyResponseHeaders(const ContentSecurityPolicyResponseHeaders&);
</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& 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<SecurityOrigin> m_topOrigin;
</del><ins>+ Ref<SecurityOrigin> m_topOrigin;
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> RefPtr<IDBClient::IDBConnectionProxy> 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& scriptURL, const String& identifier, const String& userAgent, const String& sourceCode, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin);
</del><ins>+ WorkerThreadStartupData(const URL& scriptURL, const String& identifier, const String& userAgent, const String& sourceCode, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin& 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<SecurityOrigin> m_topOrigin;
</del><ins>+ Ref<SecurityOrigin> m_topOrigin;
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-WorkerThreadStartupData::WorkerThreadStartupData(const URL& scriptURL, const String& identifier, const String& userAgent, const String& sourceCode, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin)
</del><ins>+WorkerThreadStartupData::WorkerThreadStartupData(const URL& scriptURL, const String& identifier, const String& userAgent, const String& sourceCode, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin& 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 ? &topOrigin->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& scriptURL, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy& workerLoaderProxy, WorkerReportingProxy& workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy, SocketProvider* socketProvider, JSC::RuntimeFlags runtimeFlags)
</del><ins>+WorkerThread::WorkerThread(const URL& scriptURL, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy& workerLoaderProxy, WorkerReportingProxy& workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders& contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin& 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&, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy&, WorkerReportingProxy&, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*, JSC::RuntimeFlags);
</del><ins>+ WorkerThread(const URL&, const String& identifier, const String& userAgent, const String& sourceCode, WorkerLoaderProxy&, WorkerReportingProxy&, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin& 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<WorkerGlobalScope> createWorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, RefPtr<SecurityOrigin>&& topOrigin) = 0;
</del><ins>+ virtual Ref<WorkerGlobalScope> createWorkerGlobalScope(const URL&, const String& identifier, const String& userAgent, const ContentSecurityPolicyResponseHeaders&, bool shouldBypassMainWorldContentSecurityPolicy, Ref<SecurityOrigin>&& 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 <akling@apple.com>
+
+ ScriptExecutionContext::topOrigin() should return a reference.
+ <https://webkit.org/b/167190>
+
+ Reviewed by Sam Weinig.
+
+ * Misc/WebCache.mm:
+ (+[WebCache addImageToCache:forURL:forFrame:]):
+ (+[WebCache removeImageFromCacheForURL:forFrame:]):
+
</ins><span class="cx"> 2017-01-18 Ryan Haddad <ryanhaddad@apple.com>
</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)->document()->topOrigin();
</del><ins>+ topOrigin = &core(frame)->document()->topOrigin();
</ins><span class="cx"> #endif
</span><span class="cx"> return WebCore::MemoryCache::singleton().addImageToCache(RetainPtr<CGImageRef>(image), url, topOrigin ? topOrigin->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)->document()->topOrigin();
</del><ins>+ topOrigin = &core(frame)->document()->topOrigin();
</ins><span class="cx"> #endif
</span><span class="cx"> WebCore::MemoryCache::singleton().removeImageFromCache(url, topOrigin ? topOrigin->domainForCachePartition() : emptyString());
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>