<!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>[203303] 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/203303">203303</a></dd>
<dt>Author</dt> <dd>ggaren@apple.com</dd>
<dt>Date</dt> <dd>2016-07-15 14:51:07 -0700 (Fri, 15 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Added a makeRef&lt;T&gt; helper
https://bugs.webkit.org/show_bug.cgi?id=159835

Reviewed by Andreas Kling.

Anders told me to!

Source/JavaScriptCore:

* inspector/InjectedScriptHost.cpp:
(Inspector::InjectedScriptHost::wrapper):

Source/WebCore:

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::didDeleteDatabase):
(WebCore::InProcessIDBServer::openDatabase):
(WebCore::InProcessIDBServer::didOpenDatabase):
(WebCore::InProcessIDBServer::didAbortTransaction):
(WebCore::InProcessIDBServer::didCommitTransaction):
(WebCore::InProcessIDBServer::didCreateObjectStore):
(WebCore::InProcessIDBServer::didDeleteObjectStore):
(WebCore::InProcessIDBServer::didClearObjectStore):
(WebCore::InProcessIDBServer::didCreateIndex):
(WebCore::InProcessIDBServer::didDeleteIndex):
(WebCore::InProcessIDBServer::didPutOrAdd):
(WebCore::InProcessIDBServer::didGetRecord):
(WebCore::InProcessIDBServer::didGetCount):
(WebCore::InProcessIDBServer::didDeleteRecord):
(WebCore::InProcessIDBServer::didOpenCursor):
(WebCore::InProcessIDBServer::didIterateCursor):
(WebCore::InProcessIDBServer::abortTransaction):
(WebCore::InProcessIDBServer::commitTransaction):
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::createObjectStore):
(WebCore::InProcessIDBServer::deleteObjectStore):
(WebCore::InProcessIDBServer::clearObjectStore):
(WebCore::InProcessIDBServer::createIndex):
(WebCore::InProcessIDBServer::deleteIndex):
(WebCore::InProcessIDBServer::putOrAdd):
(WebCore::InProcessIDBServer::getRecord):
(WebCore::InProcessIDBServer::getCount):
(WebCore::InProcessIDBServer::deleteRecord):
(WebCore::InProcessIDBServer::openCursor):
(WebCore::InProcessIDBServer::iterateCursor):
(WebCore::InProcessIDBServer::establishTransaction):
(WebCore::InProcessIDBServer::fireVersionChangeEvent):
(WebCore::InProcessIDBServer::didStartTransaction):
(WebCore::InProcessIDBServer::didCloseFromServer):
(WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
(WebCore::InProcessIDBServer::databaseConnectionClosed):
(WebCore::InProcessIDBServer::abortOpenAndUpgradeNeeded):
(WebCore::InProcessIDBServer::didFireVersionChangeEvent):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
(WebCore::InProcessIDBServer::confirmDidCloseFromServer):
(WebCore::InProcessIDBServer::getAllDatabaseNames):
(WebCore::InProcessIDBServer::didGetAllDatabaseNames):
* Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest):
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::constraintsValidated):
(WebCore::UserMediaRequest::userMediaAccessGranted):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::isPlayingAudioDidChange):
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
* dom/Node.cpp:
(WebCore::Node::setTextContent):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::layoutSizeChanged):
* inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::wrapper):
* platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::prepare):
* platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
(WebCore::WebCoreAVCFResourceLoader::invalidate):
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::invalidate):
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::setExternalPlayback):
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::start):
(WebCore::BlobResourceHandle::notifyFinish):
* platform/network/SocketStreamHandleBase.cpp:
(WebCore::SocketStreamHandleBase::disconnect):
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader):

Source/WebKit2:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
* Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::didChangeVisibleRect):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):

Source/WTF:

* wtf/Ref.h:
(WTF::makeRef): Helper function to do type inference for you.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInjectedScriptHostcpp">trunk/Source/JavaScriptCore/inspector/InjectedScriptHost.cpp</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfRefh">trunk/Source/WTF/wtf/Ref.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactioncpp">trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedInProcessIDBServercpp">trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDevicesRequestcpp">trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamUserMediaRequestcpp">trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelClientWrappercpp">trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketcpp">trunk/Source/WebCore/Modules/websockets/WebSocket.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSEventListenerh">trunk/Source/WebCore/bindings/js/JSEventListener.h</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorCommandLineAPIHostcpp">trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationAudioSourceProviderAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfWebCoreAVCFResourceLoadercpp">trunk/Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcWebCoreAVFResourceLoadermm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenControllerAVKitmm">trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp">trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkSocketStreamHandleBasecpp">trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkcurlCurlDownloadcpp">trunk/Source/WebCore/platform/network/curl/CurlDownload.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcesscpp">trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkResourceLoadercpp">trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCConnectioncpp">trunk/Source/WebKit2/Platform/IPC/Connection.cpp</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCmacConnectionMacmm">trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedCoordinatedGraphicsthreadedcompositorThreadedCompositorcpp">trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIUserContentExtensionStorecpp">trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessLauncherProcessLaunchercpp">trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessStorageLocalStorageDatabaseTrackercpp">trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessStorageStorageManagercpp">trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebResourceLoadStatisticsStorecpp">trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataStorecpp">trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapeNetscapePlugincpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageEventDispatchercpp">trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageViewUpdateDispatchercpp">trunk/Source/WebKit2/WebProcess/WebPage/ViewUpdateDispatcher.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-15  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Added a makeRef&lt;T&gt; helper
+        https://bugs.webkit.org/show_bug.cgi?id=159835
+
+        Reviewed by Andreas Kling.
+
+        Anders told me to!
+
+        * inspector/InjectedScriptHost.cpp:
+        (Inspector::InjectedScriptHost::wrapper):
+
</ins><span class="cx"> 2016-07-15  Mark Lam  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         FunctionOverride's parseClause() needs to keep the CString instance in scope while its data is being used.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInjectedScriptHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InjectedScriptHost.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InjectedScriptHost.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/JavaScriptCore/inspector/InjectedScriptHost.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSObject* prototype = JSInjectedScriptHost::createPrototype(exec-&gt;vm(), globalObject);
</span><span class="cx">     Structure* structure = JSInjectedScriptHost::createStructure(exec-&gt;vm(), globalObject, prototype);
</span><del>-    JSInjectedScriptHost* injectedScriptHost = JSInjectedScriptHost::create(exec-&gt;vm(), structure, Ref&lt;InjectedScriptHost&gt;(*this));
</del><ins>+    JSInjectedScriptHost* injectedScriptHost = JSInjectedScriptHost::create(exec-&gt;vm(), structure, makeRef(*this));
</ins><span class="cx">     m_wrappers.addWrapper(globalObject, injectedScriptHost);
</span><span class="cx"> 
</span><span class="cx">     return injectedScriptHost;
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WTF/ChangeLog        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-15  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Added a makeRef&lt;T&gt; helper
+        https://bugs.webkit.org/show_bug.cgi?id=159835
+
+        Reviewed by Andreas Kling.
+
+        Anders told me to!
+
+        * wtf/Ref.h:
+        (WTF::makeRef): Helper function to do type inference for you.
+
</ins><span class="cx"> 2016-07-15  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r203266.
</span></span></pre></div>
<a id="trunkSourceWTFwtfRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Ref.h (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Ref.h        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WTF/wtf/Ref.h        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -217,6 +217,12 @@
</span><span class="cx">     return Ref&lt;T&gt;(reference, Ref&lt;T&gt;::Adopt);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+template&lt;typename T&gt;
+inline Ref&lt;T&gt; makeRef(T&amp; reference)
+{
+    return Ref&lt;T&gt;(reference);
+}
+
</ins><span class="cx"> template&lt;typename ExpectedType, typename ArgType&gt; inline bool is(Ref&lt;ArgType&gt;&amp; source)
</span><span class="cx"> {
</span><span class="cx">     return is&lt;ExpectedType&gt;(source.get());
</span><span class="lines">@@ -231,6 +237,7 @@
</span><span class="cx"> 
</span><span class="cx"> using WTF::Ref;
</span><span class="cx"> using WTF::adoptRef;
</span><ins>+using WTF::makeRef;
</ins><span class="cx"> using WTF::static_reference_cast;
</span><span class="cx"> 
</span><span class="cx"> #endif // WTF_Ref_h
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/ChangeLog        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -1,3 +1,106 @@
</span><ins>+2016-07-15  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Added a makeRef&lt;T&gt; helper
+        https://bugs.webkit.org/show_bug.cgi?id=159835
+
+        Reviewed by Andreas Kling.
+
+        Anders told me to!
+
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::putOrAddOnServer):
+        * Modules/indexeddb/shared/InProcessIDBServer.cpp:
+        (WebCore::InProcessIDBServer::deleteDatabase):
+        (WebCore::InProcessIDBServer::didDeleteDatabase):
+        (WebCore::InProcessIDBServer::openDatabase):
+        (WebCore::InProcessIDBServer::didOpenDatabase):
+        (WebCore::InProcessIDBServer::didAbortTransaction):
+        (WebCore::InProcessIDBServer::didCommitTransaction):
+        (WebCore::InProcessIDBServer::didCreateObjectStore):
+        (WebCore::InProcessIDBServer::didDeleteObjectStore):
+        (WebCore::InProcessIDBServer::didClearObjectStore):
+        (WebCore::InProcessIDBServer::didCreateIndex):
+        (WebCore::InProcessIDBServer::didDeleteIndex):
+        (WebCore::InProcessIDBServer::didPutOrAdd):
+        (WebCore::InProcessIDBServer::didGetRecord):
+        (WebCore::InProcessIDBServer::didGetCount):
+        (WebCore::InProcessIDBServer::didDeleteRecord):
+        (WebCore::InProcessIDBServer::didOpenCursor):
+        (WebCore::InProcessIDBServer::didIterateCursor):
+        (WebCore::InProcessIDBServer::abortTransaction):
+        (WebCore::InProcessIDBServer::commitTransaction):
+        (WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
+        (WebCore::InProcessIDBServer::createObjectStore):
+        (WebCore::InProcessIDBServer::deleteObjectStore):
+        (WebCore::InProcessIDBServer::clearObjectStore):
+        (WebCore::InProcessIDBServer::createIndex):
+        (WebCore::InProcessIDBServer::deleteIndex):
+        (WebCore::InProcessIDBServer::putOrAdd):
+        (WebCore::InProcessIDBServer::getRecord):
+        (WebCore::InProcessIDBServer::getCount):
+        (WebCore::InProcessIDBServer::deleteRecord):
+        (WebCore::InProcessIDBServer::openCursor):
+        (WebCore::InProcessIDBServer::iterateCursor):
+        (WebCore::InProcessIDBServer::establishTransaction):
+        (WebCore::InProcessIDBServer::fireVersionChangeEvent):
+        (WebCore::InProcessIDBServer::didStartTransaction):
+        (WebCore::InProcessIDBServer::didCloseFromServer):
+        (WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
+        (WebCore::InProcessIDBServer::databaseConnectionClosed):
+        (WebCore::InProcessIDBServer::abortOpenAndUpgradeNeeded):
+        (WebCore::InProcessIDBServer::didFireVersionChangeEvent):
+        (WebCore::InProcessIDBServer::openDBRequestCancelled):
+        (WebCore::InProcessIDBServer::confirmDidCloseFromServer):
+        (WebCore::InProcessIDBServer::getAllDatabaseNames):
+        (WebCore::InProcessIDBServer::didGetAllDatabaseNames):
+        * Modules/mediastream/MediaDevicesRequest.cpp:
+        (WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest):
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::constraintsValidated):
+        (WebCore::UserMediaRequest::userMediaAccessGranted):
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::scheduleNodeDeletion):
+        (WebCore::AudioContext::isPlayingAudioDidChange):
+        (WebCore::AudioContext::suspend):
+        (WebCore::AudioContext::resume):
+        (WebCore::AudioContext::close):
+        (WebCore::AudioContext::suspendPlayback):
+        (WebCore::AudioContext::mayResumePlayback):
+        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
+        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
+        * Modules/websockets/WebSocket.cpp:
+        (WebCore::WebSocket::connect):
+        * bindings/js/JSEventListener.h:
+        (WebCore::JSEventListener::jsFunction):
+        * dom/Node.cpp:
+        (WebCore::Node::setTextContent):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::layoutSizeChanged):
+        * inspector/CommandLineAPIHost.cpp:
+        (WebCore::CommandLineAPIHost::wrapper):
+        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
+        (WebCore::AudioSourceProviderAVFObjC::prepare):
+        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
+        (WebCore::WebCoreAVCFResourceLoader::invalidate):
+        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
+        (WebCore::WebCoreAVFResourceLoader::invalidate):
+        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
+        (WebVideoFullscreenControllerContext::setExternalPlayback):
+        * platform/network/BlobResourceHandle.cpp:
+        (WebCore::BlobResourceHandle::start):
+        (WebCore::BlobResourceHandle::notifyFinish):
+        * platform/network/SocketStreamHandleBase.cpp:
+        (WebCore::SocketStreamHandleBase::disconnect):
+        * platform/network/curl/CurlDownload.cpp:
+        (WebCore::CurlDownload::didReceiveHeader):
+
</ins><span class="cx"> 2016-07-15  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -967,7 +967,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    value-&gt;writeBlobsToDiskForIndexedDB([protectedThis = Ref&lt;IDBTransaction&gt;(*this), this, protectedOperation = Ref&lt;IDBClient::TransactionOperation&gt;(operation), keyData = IDBKeyData(key.get()).isolatedCopy(), overwriteMode](const IDBValue&amp; idbValue) mutable {
</del><ins>+    value-&gt;writeBlobsToDiskForIndexedDB([protectedThis = makeRef(*this), this, protectedOperation = Ref&lt;IDBClient::TransactionOperation&gt;(operation), keyData = IDBKeyData(key.get()).isolatedCopy(), overwriteMode](const IDBValue&amp; idbValue) mutable {
</ins><span class="cx">         ASSERT(currentThread() == originThreadID());
</span><span class="cx">         ASSERT(isMainThread());
</span><span class="cx">         if (idbValue.data().data()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedInProcessIDBServercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::deleteDatabase(const IDBRequestData&amp; requestData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData] {
</ins><span class="cx">         m_server-&gt;deleteDatabase(requestData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteDatabase(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteDatabase(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::openDatabase(const IDBRequestData&amp; requestData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData] {
</ins><span class="cx">         m_server-&gt;openDatabase(requestData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didOpenDatabase(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didOpenDatabase(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didAbortTransaction(const IDBResourceIdentifier&amp; transactionIdentifier, const IDBError&amp; error)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), transactionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), transactionIdentifier, error] {
</ins><span class="cx">         m_connectionToServer-&gt;didAbortTransaction(transactionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didCommitTransaction(const IDBResourceIdentifier&amp; transactionIdentifier, const IDBError&amp; error)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), transactionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), transactionIdentifier, error] {
</ins><span class="cx">         m_connectionToServer-&gt;didCommitTransaction(transactionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didCreateObjectStore(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didCreateObjectStore(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteObjectStore(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteObjectStore(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didClearObjectStore(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didClearObjectStore(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didCreateIndex(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didCreateIndex(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteIndex(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteIndex(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didPutOrAdd(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didPutOrAdd(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -175,7 +175,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didGetRecord(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didGetRecord(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didGetCount(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didGetCount(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteRecord(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteRecord(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didOpenCursor(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didOpenCursor(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didIterateCursor(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didIterateCursor(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::abortTransaction(const IDBResourceIdentifier&amp; resourceIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resourceIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resourceIdentifier] {
</ins><span class="cx">         m_server-&gt;abortTransaction(resourceIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::commitTransaction(const IDBResourceIdentifier&amp; resourceIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resourceIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resourceIdentifier] {
</ins><span class="cx">         m_server-&gt;commitTransaction(resourceIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -224,7 +224,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; transactionIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, transactionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier, transactionIdentifier] {
</ins><span class="cx">         m_server-&gt;didFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::createObjectStore(const IDBRequestData&amp; resultData, const IDBObjectStoreInfo&amp; info)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), resultData, info] {
</ins><span class="cx">         m_server-&gt;createObjectStore(resultData, info);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -238,7 +238,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::deleteObjectStore(const IDBRequestData&amp; requestData, const String&amp; objectStoreName)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, objectStoreName] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, objectStoreName] {
</ins><span class="cx">         m_server-&gt;deleteObjectStore(requestData, objectStoreName);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::clearObjectStore(const IDBRequestData&amp; requestData, uint64_t objectStoreIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, objectStoreIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, objectStoreIdentifier] {
</ins><span class="cx">         m_server-&gt;clearObjectStore(requestData, objectStoreIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::createIndex(const IDBRequestData&amp; requestData, const IDBIndexInfo&amp; info)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, info] {
</ins><span class="cx">         m_server-&gt;createIndex(requestData, info);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -259,7 +259,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::deleteIndex(const IDBRequestData&amp; requestData, uint64_t objectStoreIdentifier, const String&amp; indexName)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, objectStoreIdentifier, indexName] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, objectStoreIdentifier, indexName] {
</ins><span class="cx">         m_server-&gt;deleteIndex(requestData, objectStoreIdentifier, indexName);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -266,7 +266,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::putOrAdd(const IDBRequestData&amp; requestData, const IDBKeyData&amp; keyData, const IDBValue&amp; value, const IndexedDB::ObjectStoreOverwriteMode overwriteMode)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyData, value, overwriteMode] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, keyData, value, overwriteMode] {
</ins><span class="cx">         m_server-&gt;putOrAdd(requestData, keyData, value, overwriteMode);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -273,7 +273,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::getRecord(const IDBRequestData&amp; requestData, const IDBKeyRangeData&amp; keyRangeData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyRangeData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, keyRangeData] {
</ins><span class="cx">         m_server-&gt;getRecord(requestData, keyRangeData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::getCount(const IDBRequestData&amp; requestData, const IDBKeyRangeData&amp; keyRangeData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyRangeData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, keyRangeData] {
</ins><span class="cx">         m_server-&gt;getCount(requestData, keyRangeData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -287,7 +287,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::deleteRecord(const IDBRequestData&amp; requestData, const IDBKeyRangeData&amp; keyRangeData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyRangeData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, keyRangeData] {
</ins><span class="cx">         m_server-&gt;deleteRecord(requestData, keyRangeData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -294,7 +294,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::openCursor(const IDBRequestData&amp; requestData, const IDBCursorInfo&amp; info)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, info] {
</ins><span class="cx">         m_server-&gt;openCursor(requestData, info);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -301,7 +301,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::iterateCursor(const IDBRequestData&amp; requestData, const IDBKeyData&amp; key, unsigned long count)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, key, count] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData, key, count] {
</ins><span class="cx">         m_server-&gt;iterateCursor(requestData, key, count);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -308,7 +308,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::establishTransaction(uint64_t databaseConnectionIdentifier, const IDBTransactionInfo&amp; info)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier, info] {
</ins><span class="cx">         m_server-&gt;establishTransaction(databaseConnectionIdentifier, info);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -315,7 +315,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::fireVersionChangeEvent(IDBServer::UniqueIDBDatabaseConnection&amp; connection, const IDBResourceIdentifier&amp; requestIdentifier, uint64_t requestedVersion)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier = connection.identifier(), requestIdentifier, requestedVersion] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier = connection.identifier(), requestIdentifier, requestedVersion] {
</ins><span class="cx">         m_connectionToServer-&gt;fireVersionChangeEvent(databaseConnectionIdentifier, requestIdentifier, requestedVersion);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -322,7 +322,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didStartTransaction(const IDBResourceIdentifier&amp; transactionIdentifier, const IDBError&amp; error)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), transactionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), transactionIdentifier, error] {
</ins><span class="cx">         m_connectionToServer-&gt;didStartTransaction(transactionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didCloseFromServer(IDBServer::UniqueIDBDatabaseConnection&amp; connection, const IDBError&amp; error)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier = connection.identifier(), error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier = connection.identifier(), error] {
</ins><span class="cx">         m_connectionToServer-&gt;didCloseFromServer(databaseConnectionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -336,7 +336,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::notifyOpenDBRequestBlocked(const IDBResourceIdentifier&amp; requestIdentifier, uint64_t oldVersion, uint64_t newVersion)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestIdentifier, oldVersion, newVersion] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestIdentifier, oldVersion, newVersion] {
</ins><span class="cx">         m_connectionToServer-&gt;notifyOpenDBRequestBlocked(requestIdentifier, oldVersion, newVersion);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -343,7 +343,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::databaseConnectionClosed(uint64_t databaseConnectionIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier] {
</ins><span class="cx">         m_server-&gt;databaseConnectionClosed(databaseConnectionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -350,7 +350,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; transactionIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, transactionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier, transactionIdentifier] {
</ins><span class="cx">         m_server-&gt;abortOpenAndUpgradeNeeded(databaseConnectionIdentifier, transactionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -357,7 +357,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; requestIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, requestIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier, requestIdentifier] {
</ins><span class="cx">         m_server-&gt;didFireVersionChangeEvent(databaseConnectionIdentifier, requestIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -364,7 +364,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::openDBRequestCancelled(const IDBRequestData&amp; requestData)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), requestData] {
</ins><span class="cx">         m_server-&gt;openDBRequestCancelled(requestData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -371,7 +371,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::confirmDidCloseFromServer(uint64_t databaseConnectionIdentifier)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), databaseConnectionIdentifier] {
</ins><span class="cx">         m_server-&gt;confirmDidCloseFromServer(databaseConnectionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -378,7 +378,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::getAllDatabaseNames(const SecurityOriginData&amp; mainFrameOrigin, const SecurityOriginData&amp; openingOrigin, uint64_t callbackID)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), mainFrameOrigin, openingOrigin, callbackID] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), mainFrameOrigin, openingOrigin, callbackID] {
</ins><span class="cx">         m_server-&gt;getAllDatabaseNames(m_connectionToServer-&gt;identifier(), mainFrameOrigin, openingOrigin, callbackID);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -385,7 +385,7 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didGetAllDatabaseNames(uint64_t callbackID, const Vector&lt;String&gt;&amp; databaseNames)
</span><span class="cx"> {
</span><del>-    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), callbackID, databaseNames] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = makeRef(*this), callbackID, databaseNames] {
</ins><span class="cx">         m_connectionToServer-&gt;didGetAllDatabaseNames(callbackID, databaseNames);
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDevicesRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx">         devices.append(MediaDeviceInfo::create(scriptExecutionContext(), label, id, groupId, deviceType));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    callOnMainThread([protectedThis = Ref&lt;MediaDevicesRequest&gt;(*this), devices = WTFMove(devices)]() mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this), devices = WTFMove(devices)]() mutable {
</ins><span class="cx">         protectedThis-&gt;m_promise.resolve(devices);
</span><span class="cx">     });
</span><span class="cx">     m_protector = nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamUserMediaRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     for (auto&amp; videoTrack : videoTracks)
</span><span class="cx">         m_videoDeviceUIDs.append(videoTrack-&gt;persistentID());
</span><span class="cx"> 
</span><del>-    callOnMainThread([protectedThis = Ref&lt;UserMediaRequest&gt;(*this)]() mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         // 2 - The constraints are valid, ask the user for access to media.
</span><span class="cx">         if (UserMediaController* controller = protectedThis-&gt;m_controller)
</span><span class="cx">             controller-&gt;requestUserMediaAccess(protectedThis.get());
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">     m_allowedVideoDeviceUID = videoDeviceUID;
</span><span class="cx">     m_audioDeviceUIDAllowed = audioDeviceUID;
</span><span class="cx"> 
</span><del>-    callOnMainThread([protectedThis = Ref&lt;UserMediaRequest&gt;(*this), audioDeviceUID, videoDeviceUID]() mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this), audioDeviceUID, videoDeviceUID]() mutable {
</ins><span class="cx">         // 3 - the user granted access, ask platform to create the media stream descriptors.
</span><span class="cx">         RealtimeMediaSourceCenter::singleton().createMediaStream(protectedThis.ptr(), audioDeviceUID, videoDeviceUID);
</span><span class="cx">     });
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -797,7 +797,7 @@
</span><span class="cx"> 
</span><span class="cx">         m_isDeletionScheduled = true;
</span><span class="cx"> 
</span><del>-        callOnMainThread([protectedThis = Ref&lt;AudioContext&gt;(*this)]() mutable {
</del><ins>+        callOnMainThread([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">             protectedThis-&gt;deleteMarkedNodes();
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1001,7 +1001,7 @@
</span><span class="cx"> {
</span><span class="cx">     // Make sure to call Document::updateIsPlayingMedia() on the main thread, since
</span><span class="cx">     // we could be on the audio I/O thread here and the call into WebCore could block.
</span><del>-    callOnMainThread([protectedThis = Ref&lt;AudioContext&gt;(*this)] {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this)] {
</ins><span class="cx">         if (protectedThis-&gt;document())
</span><span class="cx">             protectedThis-&gt;document()-&gt;updateIsPlayingMedia();
</span><span class="cx">     });
</span><span class="lines">@@ -1061,7 +1061,7 @@
</span><span class="cx"> 
</span><span class="cx">     lazyInitialize();
</span><span class="cx"> 
</span><del>-    m_destinationNode-&gt;suspend([this, protectedThis = Ref&lt;AudioContext&gt;(*this)] {
</del><ins>+    m_destinationNode-&gt;suspend([this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         setState(State::Suspended);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -1090,7 +1090,7 @@
</span><span class="cx"> 
</span><span class="cx">     lazyInitialize();
</span><span class="cx"> 
</span><del>-    m_destinationNode-&gt;resume([this, protectedThis = Ref&lt;AudioContext&gt;(*this)] {
</del><ins>+    m_destinationNode-&gt;resume([this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         setState(State::Running);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -1111,7 +1111,7 @@
</span><span class="cx"> 
</span><span class="cx">     lazyInitialize();
</span><span class="cx"> 
</span><del>-    m_destinationNode-&gt;close([this, protectedThis = Ref&lt;AudioContext&gt;(*this)] {
</del><ins>+    m_destinationNode-&gt;close([this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         setState(State::Closed);
</span><span class="cx">         uninitialize();
</span><span class="cx">     });
</span><span class="lines">@@ -1131,7 +1131,7 @@
</span><span class="cx"> 
</span><span class="cx">     lazyInitialize();
</span><span class="cx"> 
</span><del>-    m_destinationNode-&gt;suspend([this, protectedThis = Ref&lt;AudioContext&gt;(*this)] {
</del><ins>+    m_destinationNode-&gt;suspend([this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         bool interrupted = m_mediaSession-&gt;state() == PlatformMediaSession::Interrupted;
</span><span class="cx">         setState(interrupted ? State::Interrupted : State::Suspended);
</span><span class="cx">     });
</span><span class="lines">@@ -1152,7 +1152,7 @@
</span><span class="cx"> 
</span><span class="cx">     lazyInitialize();
</span><span class="cx"> 
</span><del>-    m_destinationNode-&gt;resume([this, protectedThis = Ref&lt;AudioContext&gt;(*this)] {
</del><ins>+    m_destinationNode-&gt;resume([this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         setState(State::Running);
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelClientWrappercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didConnect()
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this)] (ScriptExecutionContext&amp;) {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this)] (ScriptExecutionContext&amp;) {
</ins><span class="cx">         if (m_client)
</span><span class="cx">             m_client-&gt;didConnect();
</span><span class="cx">     }));
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didReceiveMessage(const String&amp; message)
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this), message = message.isolatedCopy()] (ScriptExecutionContext&amp;) {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this), message = message.isolatedCopy()] (ScriptExecutionContext&amp;) {
</ins><span class="cx">         if (m_client)
</span><span class="cx">             m_client-&gt;didReceiveMessage(message);
</span><span class="cx">     }));
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData(Vector&lt;uint8_t&gt;&amp;&amp; binaryData)
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this), binaryData = WTFMove(binaryData)] (ScriptExecutionContext&amp;) mutable {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this), binaryData = WTFMove(binaryData)] (ScriptExecutionContext&amp;) mutable {
</ins><span class="cx">         if (m_client)
</span><span class="cx">             m_client-&gt;didReceiveBinaryData(WTFMove(binaryData));
</span><span class="cx">     }));
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount(unsigned bufferedAmount)
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this), bufferedAmount] (ScriptExecutionContext&amp;) {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this), bufferedAmount] (ScriptExecutionContext&amp;) {
</ins><span class="cx">         if (m_client)
</span><span class="cx">             m_client-&gt;didUpdateBufferedAmount(bufferedAmount);
</span><span class="cx">     }));
</span><span class="lines">@@ -198,7 +198,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake()
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this)] (ScriptExecutionContext&amp;) {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this)] (ScriptExecutionContext&amp;) {
</ins><span class="cx">         if (m_client)
</span><span class="cx">             m_client-&gt;didStartClosingHandshake();
</span><span class="cx">     }));
</span><span class="lines">@@ -209,7 +209,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didClose(unsigned unhandledBufferedAmount, WebSocketChannelClient::ClosingHandshakeCompletionStatus closingHandshakeCompletion, unsigned short code, const String&amp; reason)
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this), unhandledBufferedAmount, closingHandshakeCompletion, code, reason = reason.isolatedCopy()] (ScriptExecutionContext&amp;) {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this), unhandledBufferedAmount, closingHandshakeCompletion, code, reason = reason.isolatedCopy()] (ScriptExecutionContext&amp;) {
</ins><span class="cx">             if (m_client)
</span><span class="cx">                 m_client-&gt;didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, reason);
</span><span class="cx">         }));
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadableWebSocketChannelClientWrapper::didReceiveMessageError()
</span><span class="cx"> {
</span><del>-    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this)] (ScriptExecutionContext&amp;) {
</del><ins>+    m_pendingTasks.append(std::make_unique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = makeRef(*this)] (ScriptExecutionContext&amp;) {
</ins><span class="cx">         if (m_client)
</span><span class="cx">             m_client-&gt;didReceiveMessageError();
</span><span class="cx">     }));
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx">     if (!m_syncMethodDone) {
</span><span class="cx">         // When a synchronous operation is in progress (i.e. the execution stack contains
</span><span class="cx">         // WorkerThreadableWebSocketChannel::waitForMethodCompletion()), we cannot invoke callbacks in this run loop.
</span><del>-        m_context.postTask([this, protectedThis = Ref&lt;ThreadableWebSocketChannelClientWrapper&gt;(*this)] (ScriptExecutionContext&amp; context) {
</del><ins>+        m_context.postTask([this, protectedThis = makeRef(*this)] (ScriptExecutionContext&amp; context) {
</ins><span class="cx">             ASSERT_UNUSED(context, context.isWorkerGlobalScope());
</span><span class="cx">             processPendingTasks();
</span><span class="cx">         });
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -306,7 +306,7 @@
</span><span class="cx">                 });
</span><span class="cx">             });
</span><span class="cx"> #else
</span><del>-            RunLoop::main().dispatch([this, protectedThis = Ref&lt;WebSocket&gt;(*this)]() {
</del><ins>+            RunLoop::main().dispatch([this, protectedThis = makeRef(*this)]() {
</ins><span class="cx">                 dispatchOrQueueErrorEvent();
</span><span class="cx">                 stop();
</span><span class="cx">             });
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSEventListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSEventListener.h (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSEventListener.h        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.h        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> {
</span><span class="cx">     // initializeJSFunction can trigger code that deletes this event listener
</span><span class="cx">     // before we're done. It should always return 0 in this case.
</span><del>-    Ref&lt;JSEventListener&gt; protect(const_cast&lt;JSEventListener&amp;&gt;(*this));
</del><ins>+    auto protect = makeRef(const_cast&lt;JSEventListener&amp;&gt;(*this));
</ins><span class="cx">     JSC::Strong&lt;JSC::JSObject&gt; wrapper(m_isolatedWorld-&gt;vm(), m_wrapper.get());
</span><span class="cx"> 
</span><span class="cx">     if (!m_jsFunction) {
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/dom/Node.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -1480,7 +1480,7 @@
</span><span class="cx">         case ELEMENT_NODE:
</span><span class="cx">         case ATTRIBUTE_NODE:
</span><span class="cx">         case DOCUMENT_FRAGMENT_NODE: {
</span><del>-            Ref&lt;ContainerNode&gt; container(downcast&lt;ContainerNode&gt;(*this));
</del><ins>+            auto container = makeRef(downcast&lt;ContainerNode&gt;(*this));
</ins><span class="cx">             ChildListMutationScope mutation(container);
</span><span class="cx">             container-&gt;removeChildren();
</span><span class="cx">             if (!text.isEmpty())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -4016,7 +4016,7 @@
</span><span class="cx"> void HTMLMediaElement::layoutSizeChanged()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><del>-    auto task = [this, protectedThis = Ref&lt;Element&gt;(*this)] {
</del><ins>+    auto task = [this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         if (ShadowRoot* root = userAgentShadowRoot())
</span><span class="cx">             root-&gt;dispatchEvent(Event::create(&quot;resize&quot;, false, false));
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorCommandLineAPIHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/inspector/CommandLineAPIHost.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSObject* prototype = JSCommandLineAPIHost::createPrototype(exec-&gt;vm(), globalObject);
</span><span class="cx">     Structure* structure = JSCommandLineAPIHost::createStructure(exec-&gt;vm(), globalObject, prototype);
</span><del>-    JSCommandLineAPIHost* commandLineAPIHost = JSCommandLineAPIHost::create(structure, globalObject, Ref&lt;CommandLineAPIHost&gt;(*this));
</del><ins>+    JSCommandLineAPIHost* commandLineAPIHost = JSCommandLineAPIHost::create(structure, globalObject, makeRef(*this));
</ins><span class="cx">     m_wrappers.addWrapper(globalObject, commandLineAPIHost);
</span><span class="cx"> 
</span><span class="cx">     return commandLineAPIHost;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationAudioSourceProviderAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx">     memset(m_list.get(), 0, bufferListSize);
</span><span class="cx">     m_list-&gt;mNumberBuffers = numberOfChannels;
</span><span class="cx"> 
</span><del>-    callOnMainThread([protectedThis = Ref&lt;AudioSourceProviderAVFObjC&gt;(*this), numberOfChannels, sampleRate] {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this), numberOfChannels, sampleRate] {
</ins><span class="cx">         protectedThis-&gt;m_client-&gt;setFormat(numberOfChannels, sampleRate);
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfWebCoreAVCFResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_parent = nullptr;
</span><span class="cx"> 
</span><del>-    callOnMainThread([protectedThis = Ref&lt;WebCoreAVCFResourceLoader&gt;(*this)] () mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this)] () mutable {
</ins><span class="cx">         protectedThis-&gt;stopLoading();
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcWebCoreAVFResourceLoadermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_parent = nullptr;
</span><span class="cx"> 
</span><del>-    callOnMainThread([protectedThis = Ref&lt;WebCoreAVFResourceLoader&gt;(*this)] () mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this)] () mutable {
</ins><span class="cx">         protectedThis-&gt;stopLoading();
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenControllerAVKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -435,7 +435,7 @@
</span><span class="cx"> void WebVideoFullscreenControllerContext::setExternalPlayback(bool enabled, ExternalPlaybackTargetType type, String localizedDeviceName)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(WebThreadIsCurrent());
</span><del>-    callOnMainThread([protectedThis = Ref&lt;WebVideoFullscreenControllerContext&gt;(*this), this, enabled, type, localizedDeviceName = localizedDeviceName.isolatedCopy()] {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this), this, enabled, type, localizedDeviceName = localizedDeviceName.isolatedCopy()] {
</ins><span class="cx">         if (m_interface)
</span><span class="cx">             m_interface-&gt;setExternalPlayback(enabled, type, localizedDeviceName);
</span><span class="cx">     });
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkBlobResourceHandlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Finish this async call quickly and return.
</span><del>-    callOnMainThread([protectedThis = Ref&lt;BlobResourceHandle&gt;(*this)]() mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         protectedThis-&gt;doStart();
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -652,7 +652,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Schedule to notify the client from a standalone function because the client might dispose the handle immediately from the callback function
</span><span class="cx">     // while we still have BlobResourceHandle calls in the stack.
</span><del>-    callOnMainThread([protectedThis = Ref&lt;BlobResourceHandle&gt;(*this)]() mutable {
</del><ins>+    callOnMainThread([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         doNotifyFinish(protectedThis);
</span><span class="cx">     });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkSocketStreamHandleBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/network/SocketStreamHandleBase.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SocketStreamHandleBase::disconnect()
</span><span class="cx"> {
</span><del>-    Ref&lt;SocketStreamHandle&gt; protect(static_cast&lt;SocketStreamHandle&amp;&gt;(*this)); // platformClose calls the client, which may make the handle get deallocated immediately.
</del><ins>+    auto protect = makeRef(static_cast&lt;SocketStreamHandle&amp;&gt;(*this)); // platformClose calls the client, which may make the handle get deallocated immediately.
</ins><span class="cx"> 
</span><span class="cx">     platformClose();
</span><span class="cx">     m_state = Closed;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkcurlCurlDownloadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/curl/CurlDownload.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/curl/CurlDownload.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebCore/platform/network/curl/CurlDownload.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -403,7 +403,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (httpCode &gt;= 200 &amp;&amp; httpCode &lt; 300) {
</span><span class="cx">             URL url = getCurlEffectiveURL(m_curlHandle);
</span><del>-            callOnMainThread([this, url = url.isolatedCopy(), protectedThis = Ref&lt;CurlDownload&gt;(*this)] {
</del><ins>+            callOnMainThread([this, url = url.isolatedCopy(), protectedThis = makeRef(*this)] {
</ins><span class="cx">                 m_response.setURL(url);
</span><span class="cx">                 m_response.setMimeType(extractMIMETypeFromMediaType(m_response.httpHeaderField(HTTPHeaderName::ContentType)));
</span><span class="cx">                 m_response.setTextEncodingName(extractCharsetFromMediaType(m_response.httpHeaderField(HTTPHeaderName::ContentType)));
</span><span class="lines">@@ -412,7 +412,7 @@
</span><span class="cx">             });
</span><span class="cx">         }
</span><span class="cx">     } else {
</span><del>-        callOnMainThread([this, header = header.isolatedCopy(), protectedThis = Ref&lt;CurlDownload&gt;(*this)] {
</del><ins>+        callOnMainThread([this, header = header.isolatedCopy(), protectedThis = makeRef(*this)] {
</ins><span class="cx">             int splitPos = header.find(&quot;:&quot;);
</span><span class="cx">             if (splitPos != -1)
</span><span class="cx">                 m_response.setHTTPHeaderField(header.left(splitPos), header.substring(splitPos + 1).stripWhiteSpace());
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/ChangeLog        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -1,3 +1,71 @@
</span><ins>+2016-07-15  Geoffrey Garen  &lt;ggaren@apple.com&gt;
+
+        Added a makeRef&lt;T&gt; helper
+        https://bugs.webkit.org/show_bug.cgi?id=159835
+
+        Reviewed by Andreas Kling.
+
+        Anders told me to!
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::addWorkQueueMessageReceiver):
+        (IPC::Connection::removeWorkQueueMessageReceiver):
+        (IPC::Connection::invalidate):
+        (IPC::Connection::sendMessage):
+        (IPC::Connection::processIncomingMessage):
+        (IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
+        (IPC::Connection::connectionDidClose):
+        (IPC::Connection::enqueueIncomingMessage):
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::receiveSourceEventHandler):
+        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
+        (WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
+        (WebKit::ThreadedCompositor::setDeviceScaleFactor):
+        (WebKit::ThreadedCompositor::didChangeViewportSize):
+        (WebKit::ThreadedCompositor::didChangeViewportAttribute):
+        (WebKit::ThreadedCompositor::didChangeContentsSize):
+        (WebKit::ThreadedCompositor::scrollTo):
+        (WebKit::ThreadedCompositor::scrollBy):
+        (WebKit::ThreadedCompositor::didChangeVisibleRect):
+        * UIProcess/API/APIUserContentExtensionStore.cpp:
+        (API::UserContentExtensionStore::lookupContentExtension):
+        (API::UserContentExtensionStore::compileContentExtension):
+        (API::UserContentExtensionStore::removeContentExtension):
+        * UIProcess/Launcher/ProcessLauncher.cpp:
+        (WebKit::ProcessLauncher::ProcessLauncher):
+        * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
+        (WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::createSessionStorageNamespace):
+        (WebKit::StorageManager::destroySessionStorageNamespace):
+        (WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
+        (WebKit::StorageManager::cloneSessionStorageNamespace):
+        (WebKit::StorageManager::processDidCloseConnection):
+        (WebKit::StorageManager::getSessionStorageOrigins):
+        (WebKit::StorageManager::deleteSessionStorageOrigins):
+        (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
+        (WebKit::StorageManager::getLocalStorageOrigins):
+        (WebKit::StorageManager::getLocalStorageOriginDetails):
+        (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
+        (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
+        (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
+        * UIProcess/WebResourceLoadStatisticsStore.cpp:
+        (WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::fetchData):
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::pluginThreadAsyncCall):
+        * WebProcess/WebPage/EventDispatcher.cpp:
+        (WebKit::EventDispatcher::wheelEvent):
+        (WebKit::EventDispatcher::gestureEvent):
+        (WebKit::EventDispatcher::touchEvent):
+        * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
+        (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
+
</ins><span class="cx"> 2016-07-15  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkConnectionToWebProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -315,7 +315,7 @@
</span><span class="cx">     for (auto&amp; file : fileReferences)
</span><span class="cx">         file-&gt;prepareForFileAccess();
</span><span class="cx"> 
</span><del>-    NetworkBlobRegistry::singleton().writeBlobsToTemporaryFiles(blobURLs, [this, protectedThis = Ref&lt;NetworkConnectionToWebProcess&gt;(*this), requestIdentifier, fileReferences = WTFMove(fileReferences)](auto&amp; fileNames) mutable {
</del><ins>+    NetworkBlobRegistry::singleton().writeBlobsToTemporaryFiles(blobURLs, [this, protectedThis = makeRef(*this), requestIdentifier, fileReferences = WTFMove(fileReferences)](auto&amp; fileNames) mutable {
</ins><span class="cx">         for (auto&amp; file : fileReferences)
</span><span class="cx">             file-&gt;revokeFileAccess();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -529,7 +529,7 @@
</span><span class="cx">     if (!m_bufferedDataForCache)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    NetworkCache::singleton().store(m_networkLoad-&gt;currentRequest(), m_response, WTFMove(m_bufferedDataForCache), [loader = Ref&lt;NetworkResourceLoader&gt;(*this)](auto&amp; mappedBody) mutable {
</del><ins>+    NetworkCache::singleton().store(m_networkLoad-&gt;currentRequest(), m_response, WTFMove(m_bufferedDataForCache), [loader = makeRef(*this)](auto&amp; mappedBody) mutable {
</ins><span class="cx"> #if ENABLE(SHAREABLE_RESOURCE)
</span><span class="cx">         if (mappedBody.shareableResourceHandle.isNull())
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/Connection.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/Connection.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/Platform/IPC/Connection.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -253,7 +253,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><span class="cx"> 
</span><del>-    m_connectionQueue-&gt;dispatch([protectedThis = Ref&lt;Connection&gt;(*this), messageReceiverName = WTFMove(messageReceiverName), workQueue, workQueueMessageReceiver]() mutable {
</del><ins>+    m_connectionQueue-&gt;dispatch([protectedThis = makeRef(*this), messageReceiverName = WTFMove(messageReceiverName), workQueue, workQueueMessageReceiver]() mutable {
</ins><span class="cx">         ASSERT(!protectedThis-&gt;m_workQueueMessageReceivers.contains(messageReceiverName));
</span><span class="cx"> 
</span><span class="cx">         protectedThis-&gt;m_workQueueMessageReceivers.add(messageReceiverName, std::make_pair(workQueue, workQueueMessageReceiver));
</span><span class="lines">@@ -264,7 +264,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><span class="cx"> 
</span><del>-    m_connectionQueue-&gt;dispatch([protectedThis = Ref&lt;Connection&gt;(*this), messageReceiverName = WTFMove(messageReceiverName)]() mutable {
</del><ins>+    m_connectionQueue-&gt;dispatch([protectedThis = makeRef(*this), messageReceiverName = WTFMove(messageReceiverName)]() mutable {
</ins><span class="cx">         ASSERT(protectedThis-&gt;m_workQueueMessageReceivers.contains(messageReceiverName));
</span><span class="cx">         protectedThis-&gt;m_workQueueMessageReceivers.remove(messageReceiverName);
</span><span class="cx">     });
</span><span class="lines">@@ -317,7 +317,7 @@
</span><span class="cx">     
</span><span class="cx">     m_client = nullptr;
</span><span class="cx"> 
</span><del>-    m_connectionQueue-&gt;dispatch([protectedThis = Ref&lt;Connection&gt;(*this)]() mutable {
</del><ins>+    m_connectionQueue-&gt;dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         protectedThis-&gt;platformInvalidate();
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -374,7 +374,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     // FIXME: We should add a boolean flag so we don't call this when work has already been scheduled.
</span><del>-    m_connectionQueue-&gt;dispatch([protectedThis = Ref&lt;Connection&gt;(*this)]() mutable {
</del><ins>+    m_connectionQueue-&gt;dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         protectedThis-&gt;sendOutgoingMessages();
</span><span class="cx">     });
</span><span class="cx">     return true;
</span><span class="lines">@@ -647,7 +647,7 @@
</span><span class="cx">         StringReference messageNameReference = message-&gt;messageName();
</span><span class="cx">         String messageName(messageNameReference.isEmpty() ? &quot;&lt;unknown message&gt;&quot; : String(messageNameReference.data(), messageNameReference.size()));
</span><span class="cx"> 
</span><del>-        RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
</del><ins>+        RunLoop::main().dispatch([protectedThis = makeRef(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
</ins><span class="cx">             protectedThis-&gt;dispatchDidReceiveInvalidMessage(messageReceiverName.utf8(), messageName.utf8());
</span><span class="cx">         });
</span><span class="cx">         return;
</span><span class="lines">@@ -655,7 +655,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto it = m_workQueueMessageReceivers.find(message-&gt;messageReceiverName());
</span><span class="cx">     if (it != m_workQueueMessageReceivers.end()) {
</span><del>-        it-&gt;value.first-&gt;dispatch([protectedThis = Ref&lt;Connection&gt;(*this), workQueueMessageReceiver = it-&gt;value.second, decoder = WTFMove(message)]() mutable {
</del><ins>+        it-&gt;value.first-&gt;dispatch([protectedThis = makeRef(*this), workQueueMessageReceiver = it-&gt;value.second, decoder = WTFMove(message)]() mutable {
</ins><span class="cx">             protectedThis-&gt;dispatchWorkQueueMessageReceiverMessage(*workQueueMessageReceiver, *decoder);
</span><span class="cx">         });
</span><span class="cx">         return;
</span><span class="lines">@@ -739,7 +739,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Connection::postConnectionDidCloseOnConnectionWorkQueue()
</span><span class="cx"> {
</span><del>-    m_connectionQueue-&gt;dispatch([protectedThis = Ref&lt;Connection&gt;(*this)]() mutable {
</del><ins>+    m_connectionQueue-&gt;dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         protectedThis-&gt;connectionDidClose();
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -772,7 +772,7 @@
</span><span class="cx">     if (m_didCloseOnConnectionWorkQueueCallback)
</span><span class="cx">         m_didCloseOnConnectionWorkQueueCallback(this);
</span><span class="cx"> 
</span><del>-    RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*this)]() mutable {
</del><ins>+    RunLoop::main().dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         // If the connection has been explicitly invalidated before dispatchConnectionDidClose was called,
</span><span class="cx">         // then the client will be null here.
</span><span class="cx">         if (!protectedThis-&gt;m_client)
</span><span class="lines">@@ -877,7 +877,7 @@
</span><span class="cx">         m_incomingMessages.append(WTFMove(incomingMessage));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*this)]() mutable {
</del><ins>+    RunLoop::main().dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         protectedThis-&gt;dispatchOneMessage();
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCmacConnectionMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -523,7 +523,7 @@
</span><span class="cx">             StringReference messageNameReference = decoder-&gt;messageName();
</span><span class="cx">             String messageName(String(messageNameReference.data(), messageNameReference.size()));
</span><span class="cx"> 
</span><del>-            RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
</del><ins>+            RunLoop::main().dispatch([protectedThis = makeRef(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
</ins><span class="cx">                 protectedThis-&gt;dispatchDidReceiveInvalidMessage(messageReceiverName.utf8(), messageName.utf8());
</span><span class="cx">             });
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCoordinatedGraphicsthreadedcompositorThreadedCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> void ThreadedCompositor::setNativeSurfaceHandleForCompositing(uint64_t handle)
</span><span class="cx"> {
</span><span class="cx">     m_compositingRunLoop-&gt;stopUpdateTimer();
</span><del>-    m_compositingRunLoop-&gt;performTaskSync([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), handle] {
</del><ins>+    m_compositingRunLoop-&gt;performTaskSync([this, protectedThis = makeRef(*this), handle] {
</ins><span class="cx">         m_scene-&gt;setActive(!!handle);
</span><span class="cx"> 
</span><span class="cx">         // A new native handle can't be set without destroying the previous one first if any.
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::setDeviceScaleFactor(float scale)
</span><span class="cx"> {
</span><del>-    m_compositingRunLoop-&gt;performTask([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), scale] {
</del><ins>+    m_compositingRunLoop-&gt;performTask([this, protectedThis = makeRef(*this), scale] {
</ins><span class="cx">         m_deviceScaleFactor = scale;
</span><span class="cx">         scheduleDisplayImmediately();
</span><span class="cx">     });
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::didChangeViewportSize(const IntSize&amp; size)
</span><span class="cx"> {
</span><del>-    m_compositingRunLoop-&gt;performTaskSync([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), size] {
</del><ins>+    m_compositingRunLoop-&gt;performTaskSync([this, protectedThis = makeRef(*this), size] {
</ins><span class="cx">         m_viewportController-&gt;didChangeViewportSize(size);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::didChangeViewportAttribute(const ViewportAttributes&amp; attr)
</span><span class="cx"> {
</span><del>-    m_compositingRunLoop-&gt;performTask([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), attr] {
</del><ins>+    m_compositingRunLoop-&gt;performTask([this, protectedThis = makeRef(*this), attr] {
</ins><span class="cx">         m_viewportController-&gt;didChangeViewportAttribute(attr);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::didChangeContentsSize(const IntSize&amp; size)
</span><span class="cx"> {
</span><del>-    m_compositingRunLoop-&gt;performTask([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), size] {
</del><ins>+    m_compositingRunLoop-&gt;performTask([this, protectedThis = makeRef(*this), size] {
</ins><span class="cx">         m_viewportController-&gt;didChangeContentsSize(size);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::scrollTo(const IntPoint&amp; position)
</span><span class="cx"> {
</span><del>-    m_compositingRunLoop-&gt;performTask([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), position] {
</del><ins>+    m_compositingRunLoop-&gt;performTask([this, protectedThis = makeRef(*this), position] {
</ins><span class="cx">         m_viewportController-&gt;scrollTo(position);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::scrollBy(const IntSize&amp; delta)
</span><span class="cx"> {
</span><del>-    m_compositingRunLoop-&gt;performTask([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), delta] {
</del><ins>+    m_compositingRunLoop-&gt;performTask([this, protectedThis = makeRef(*this), delta] {
</ins><span class="cx">         m_viewportController-&gt;scrollBy(delta);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ThreadedCompositor::didChangeVisibleRect()
</span><span class="cx"> {
</span><del>-    RunLoop::main().dispatch([this, protectedThis = Ref&lt;ThreadedCompositor&gt;(*this), visibleRect = m_viewportController-&gt;visibleContentsRect(), scale = m_viewportController-&gt;pageScaleFactor()] {
</del><ins>+    RunLoop::main().dispatch([this, protectedThis = makeRef(*this), visibleRect = m_viewportController-&gt;visibleContentsRect(), scale = m_viewportController-&gt;pageScaleFactor()] {
</ins><span class="cx">         m_client-&gt;setVisibleContentsRect(visibleRect, FloatPoint::zero(), scale);
</span><span class="cx">     });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIUserContentExtensionStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -306,7 +306,7 @@
</span><span class="cx"> 
</span><span class="cx"> void UserContentExtensionStore::lookupContentExtension(const WTF::String&amp; identifier, std::function&lt;void(RefPtr&lt;API::UserContentExtension&gt;, std::error_code)&gt; completionHandler)
</span><span class="cx"> {
</span><del>-    m_readQueue-&gt;dispatch([protectedThis = Ref&lt;Object&gt;(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_readQueue-&gt;dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         auto path = constructedPath(storePath, identifier);
</span><span class="cx">         
</span><span class="cx">         ContentExtensionMetaData metaData;
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx"> 
</span><span class="cx"> void UserContentExtensionStore::compileContentExtension(const WTF::String&amp; identifier, WTF::String&amp;&amp; json, std::function&lt;void(RefPtr&lt;API::UserContentExtension&gt;, std::error_code)&gt; completionHandler)
</span><span class="cx"> {
</span><del>-    m_compileQueue-&gt;dispatch([protectedThis = Ref&lt;Object&gt;(*this), identifier = identifier.isolatedCopy(), json = json.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)] () mutable {
</del><ins>+    m_compileQueue-&gt;dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), json = json.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)] () mutable {
</ins><span class="cx">         auto path = constructedPath(storePath, identifier);
</span><span class="cx"> 
</span><span class="cx">         ContentExtensionMetaData metaData;
</span><span class="lines">@@ -356,7 +356,7 @@
</span><span class="cx"> 
</span><span class="cx"> void UserContentExtensionStore::removeContentExtension(const WTF::String&amp; identifier, std::function&lt;void(std::error_code)&gt; completionHandler)
</span><span class="cx"> {
</span><del>-    m_removeQueue-&gt;dispatch([protectedThis = Ref&lt;Object&gt;(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_removeQueue-&gt;dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         auto path = constructedPath(storePath, identifier);
</span><span class="cx"> 
</span><span class="cx">         if (!WebCore::deleteFile(path)) {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessLauncherProcessLaunchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_isLaunching = true;
</span><span class="cx"> 
</span><del>-    processLauncherWorkQueue().dispatch([processLauncher = Ref&lt;ProcessLauncher&gt;(*this)]() mutable {
</del><ins>+    processLauncherWorkQueue().dispatch([processLauncher = makeRef(*this)]() mutable {
</ins><span class="cx">         processLauncher-&gt;launchProcess();
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessStorageLocalStorageDatabaseTrackercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/UIProcess/Storage/LocalStorageDatabaseTracker.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     // Make sure the encoding is initialized before we start dispatching things to the queue.
</span><span class="cx">     UTF8Encoding();
</span><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([protectedThis = Ref&lt;LocalStorageDatabaseTracker&gt;(*this)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">         protectedThis-&gt;importOriginIdentifiers();
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessStorageStorageManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -473,7 +473,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::createSessionStorageNamespace(uint64_t storageNamespaceID, unsigned quotaInBytes)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), storageNamespaceID, quotaInBytes]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), storageNamespaceID, quotaInBytes]() mutable {
</ins><span class="cx">         ASSERT(!m_sessionStorageNamespaces.contains(storageNamespaceID));
</span><span class="cx"> 
</span><span class="cx">         m_sessionStorageNamespaces.set(storageNamespaceID, SessionStorageNamespace::create(quotaInBytes));
</span><span class="lines">@@ -482,7 +482,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::destroySessionStorageNamespace(uint64_t storageNamespaceID)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), storageNamespaceID] {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), storageNamespaceID] {
</ins><span class="cx">         ASSERT(m_sessionStorageNamespaces.contains(storageNamespaceID));
</span><span class="cx">         m_sessionStorageNamespaces.remove(storageNamespaceID);
</span><span class="cx">     });
</span><span class="lines">@@ -490,7 +490,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::setAllowedSessionStorageNamespaceConnection(uint64_t storageNamespaceID, IPC::Connection* allowedConnection)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), connection = RefPtr&lt;IPC::Connection&gt;(allowedConnection), storageNamespaceID]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), connection = RefPtr&lt;IPC::Connection&gt;(allowedConnection), storageNamespaceID]() mutable {
</ins><span class="cx">         ASSERT(m_sessionStorageNamespaces.contains(storageNamespaceID));
</span><span class="cx"> 
</span><span class="cx">         m_sessionStorageNamespaces.get(storageNamespaceID)-&gt;setAllowedConnection(connection.get());
</span><span class="lines">@@ -499,7 +499,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::cloneSessionStorageNamespace(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), storageNamespaceID, newStorageNamespaceID] {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), storageNamespaceID, newStorageNamespaceID] {
</ins><span class="cx">         SessionStorageNamespace* sessionStorageNamespace = m_sessionStorageNamespaces.get(storageNamespaceID);
</span><span class="cx">         if (!sessionStorageNamespace) {
</span><span class="cx">             // FIXME: We can get into this situation if someone closes the originating page from within a
</span><span class="lines">@@ -524,7 +524,7 @@
</span><span class="cx"> {
</span><span class="cx">     connection.removeWorkQueueMessageReceiver(Messages::StorageManager::messageReceiverName());
</span><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), connection = Ref&lt;IPC::Connection&gt;(connection)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), connection = Ref&lt;IPC::Connection&gt;(connection)]() mutable {
</ins><span class="cx">         Vector&lt;std::pair&lt;RefPtr&lt;IPC::Connection&gt;, uint64_t&gt;&gt; connectionAndStorageMapIDPairsToRemove;
</span><span class="cx">         for (auto&amp; storageArea : m_storageAreasByConnection) {
</span><span class="cx">             if (storageArea.key.first != connection.ptr())
</span><span class="lines">@@ -543,7 +543,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;StorageManager&gt; storageManager(this);
</span><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         HashSet&lt;RefPtr&lt;SecurityOrigin&gt;&gt; origins;
</span><span class="cx"> 
</span><span class="cx">         for (const auto&amp; sessionStorageNamespace : m_sessionStorageNamespaces.values()) {
</span><span class="lines">@@ -559,7 +559,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::deleteSessionStorageOrigins(std::function&lt;void ()&gt;&amp;&amp; completionHandler)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         for (auto&amp; sessionStorageNamespace : m_sessionStorageNamespaces.values())
</span><span class="cx">             sessionStorageNamespace-&gt;clearAllStorageAreas();
</span><span class="cx"> 
</span><span class="lines">@@ -575,7 +575,7 @@
</span><span class="cx">     for (auto&amp; origin : origins)
</span><span class="cx">         copiedOrigins.uncheckedAppend(origin-&gt;isolatedCopy());
</span><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         for (auto&amp; origin : copiedOrigins) {
</span><span class="cx">             for (auto&amp; sessionStorageNamespace : m_sessionStorageNamespaces.values())
</span><span class="cx">                 sessionStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*origin);
</span><span class="lines">@@ -587,7 +587,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::getLocalStorageOrigins(std::function&lt;void (HashSet&lt;RefPtr&lt;WebCore::SecurityOrigin&gt;&gt;&amp;&amp;)&gt;&amp;&amp; completionHandler)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         HashSet&lt;RefPtr&lt;SecurityOrigin&gt;&gt; origins;
</span><span class="cx"> 
</span><span class="cx">         for (auto&amp; origin : m_localStorageDatabaseTracker-&gt;origins())
</span><span class="lines">@@ -606,7 +606,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::getLocalStorageOriginDetails(std::function&lt;void (Vector&lt;LocalStorageDatabaseTracker::OriginDetails&gt;)&gt;&amp;&amp; completionHandler)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         auto originDetails = m_localStorageDatabaseTracker-&gt;originDetails();
</span><span class="cx"> 
</span><span class="cx">         RunLoop::main().dispatch([originDetails = WTFMove(originDetails), completionHandler = WTFMove(completionHandler)]() mutable {
</span><span class="lines">@@ -617,7 +617,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::deleteLocalStorageEntriesForOrigin(const SecurityOrigin&amp; securityOrigin)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), copiedOrigin = securityOrigin.isolatedCopy()]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), copiedOrigin = securityOrigin.isolatedCopy()]() mutable {
</ins><span class="cx">         for (auto&amp; localStorageNamespace : m_localStorageNamespaces.values())
</span><span class="cx">             localStorageNamespace-&gt;clearStorageAreasMatchingOrigin(copiedOrigin);
</span><span class="cx"> 
</span><span class="lines">@@ -630,7 +630,7 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::deleteLocalStorageOriginsModifiedSince(std::chrono::system_clock::time_point time, std::function&lt;void ()&gt;&amp;&amp; completionHandler)
</span><span class="cx"> {
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), time, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), time, completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         auto deletedOrigins = m_localStorageDatabaseTracker-&gt;deleteDatabasesModifiedSince(time);
</span><span class="cx"> 
</span><span class="cx">         for (const auto&amp; origin : deletedOrigins) {
</span><span class="lines">@@ -653,7 +653,7 @@
</span><span class="cx">     for (auto&amp; origin : origins)
</span><span class="cx">         copiedOrigins.uncheckedAppend(origin-&gt;isolatedCopy());
</span><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = makeRef(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         for (auto&amp; origin : copiedOrigins) {
</span><span class="cx">             for (auto&amp; localStorageNamespace : m_localStorageNamespaces.values())
</span><span class="cx">                 localStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*origin);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebResourceLoadStatisticsStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsStore.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsStore.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsStore.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">     if (!m_resourceLoadStatisticsEnabled)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_statisticsQueue-&gt;dispatch([this, protectedThis = Ref&lt;WebResourceLoadStatisticsStore&gt;(*this)] {
</del><ins>+    m_statisticsQueue-&gt;dispatch([this, protectedThis = makeRef(*this)] {
</ins><span class="cx">         coreStore().clear();
</span><span class="cx"> 
</span><span class="cx">         auto decoder = createDecoderFromDisk(&quot;full_browsing_session&quot;);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx">             if (pendingCallbacks)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            RunLoop::main().dispatch([callbackAggregator = Ref&lt;CallbackAggregator&gt;(*this)]() mutable {
</del><ins>+            RunLoop::main().dispatch([callbackAggregator = makeRef(*this)]() mutable {
</ins><span class="cx"> 
</span><span class="cx">                 WTF::Vector&lt;WebsiteDataRecord&gt; records;
</span><span class="cx">                 records.reserveInitialCapacity(callbackAggregator-&gt;m_websiteDataRecords.size());
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeNetscapePlugincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx"> 
</span><span class="cx"> void NetscapePlugin::pluginThreadAsyncCall(void (*function)(void*), void* userData)
</span><span class="cx"> {
</span><del>-    RunLoop::main().dispatch([protectedThis = Ref&lt;NetscapePlugin&gt;(*this), function, userData] {
</del><ins>+    RunLoop::main().dispatch([protectedThis = makeRef(*this), function, userData] {
</ins><span class="cx">         if (!protectedThis-&gt;m_isStarted)
</span><span class="cx">             return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx">     UNUSED_PARAM(canRubberBandAtBottom);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    RunLoop::main().dispatch([protectedThis = Ref&lt;EventDispatcher&gt;(*this), pageID, wheelEvent]() mutable {
</del><ins>+    RunLoop::main().dispatch([protectedThis = makeRef(*this), pageID, wheelEvent]() mutable {
</ins><span class="cx">         protectedThis-&gt;dispatchWheelEvent(pageID, wheelEvent);
</span><span class="cx">     }); 
</span><span class="cx"> }
</span><span class="lines">@@ -146,7 +146,7 @@
</span><span class="cx"> #if ENABLE(MAC_GESTURE_EVENTS)
</span><span class="cx"> void EventDispatcher::gestureEvent(uint64_t pageID, const WebKit::WebGestureEvent&amp; gestureEvent)
</span><span class="cx"> {
</span><del>-    RunLoop::main().dispatch([protectedThis = Ref&lt;EventDispatcher&gt;(*this), pageID, gestureEvent]() mutable {
</del><ins>+    RunLoop::main().dispatch([protectedThis = makeRef(*this), pageID, gestureEvent]() mutable {
</ins><span class="cx">         protectedThis-&gt;dispatchGestureEvent(pageID, gestureEvent);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (updateListWasEmpty) {
</span><del>-        RunLoop::main().dispatch([protectedThis = Ref&lt;EventDispatcher&gt;(*this)]() mutable {
</del><ins>+        RunLoop::main().dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">             protectedThis-&gt;dispatchTouchEvents();
</span><span class="cx">         });
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageViewUpdateDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ViewUpdateDispatcher.cpp (203302 => 203303)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ViewUpdateDispatcher.cpp        2016-07-15 21:35:40 UTC (rev 203302)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ViewUpdateDispatcher.cpp        2016-07-15 21:51:07 UTC (rev 203303)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">             iterator-&gt;value.visibleContentRectUpdateInfo = visibleContentRectUpdateInfo;
</span><span class="cx">     }
</span><span class="cx">     if (updateListWasEmpty) {
</span><del>-        RunLoop::main().dispatch([protectedThis = Ref&lt;ViewUpdateDispatcher&gt;(*this)]() mutable {
</del><ins>+        RunLoop::main().dispatch([protectedThis = makeRef(*this)]() mutable {
</ins><span class="cx">             protectedThis-&gt;dispatchVisibleContentRectUpdate();
</span><span class="cx">         });
</span><span class="cx">     }
</span></span></pre>
</div>
</div>

</body>
</html>