<!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>[201575] 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/201575">201575</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2016-06-01 16:38:37 -0700 (Wed, 01 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Modernize lambda usage for all callers of RunLoop::dispatch().
https://bugs.webkit.org/show_bug.cgi?id=158265

Reviewed by Chris Dumez.

Source/WebCore:

No new tests (Refactor, no behavior change).

* 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/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):

* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):

* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
(WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
(WebCore::ThreadedScrollingTree::deferTestsForReason):
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason):

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformPrecache):

* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

* platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::createDecodeTask):
(WebCore::DataURLDecoder::decode):

Source/WebKit2:

* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):

* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):

* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::retrieveFromMemory):

* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):

* Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):

* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):

* UIProcess/Storage/StorageManager.cpp:
(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/WebPageProxy.cpp:
(WebKit::WebPageProxy::isWebProcessResponsive):

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::isResponsive):

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):

* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):

* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbsharedInProcessIDBServercpp">trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketcpp">trunk/Source/WebCore/Modules/websockets/WebSocket.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsSerializedScriptValuecpp">trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingThreadedScrollingTreecpp">trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacDisplayRefreshMonitorMaccpp">trunk/Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkDataURLDecodercpp">trunk/Source/WebCore/platform/network/DataURLDecoder.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessDatabaseProcesscpp">trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcesscpp">trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStoragecpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.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="#trunkSourceWebKit2SharedmacCookieStorageShimmm">trunk/Source/WebKit2/Shared/mac/CookieStorageShim.mm</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="#trunkSourceWebKit2UIProcessLaunchermacProcessLauncherMacmm">trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessStorageStorageManagercpp">trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessProxycpp">trunk/Source/WebKit2/UIProcess/WebProcessProxy.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="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.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="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/ChangeLog        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -1,3 +1,82 @@
</span><ins>+2016-06-01  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Modernize lambda usage for all callers of RunLoop::dispatch().
+        https://bugs.webkit.org/show_bug.cgi?id=158265
+
+        Reviewed by Chris Dumez.
+
+        No new tests (Refactor, no behavior change).
+
+        * 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/websockets/WebSocket.cpp:
+        (WebCore::WebSocket::connect):
+        
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):
+        
+        * page/scrolling/ThreadedScrollingTree.cpp:
+        (WebCore::ThreadedScrollingTree::invalidate):
+        (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
+        (WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange):
+        (WebCore::ThreadedScrollingTree::handleWheelEventPhase):
+        (WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
+        (WebCore::ThreadedScrollingTree::deferTestsForReason):
+        (WebCore::ThreadedScrollingTree::removeTestDeferralForReason):
+        
+        * platform/graphics/cocoa/FontCacheCoreText.cpp:
+        (WebCore::FontCache::platformPrecache):
+        
+        * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
+        (WebCore::DisplayRefreshMonitorMac::displayLinkFired):
+        
+        * platform/network/DataURLDecoder.cpp:
+        (WebCore::DataURLDecoder::createDecodeTask):
+        (WebCore::DataURLDecoder::decode):
+
</ins><span class="cx"> 2016-06-01  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION(r201385) ASSERT in WebCore::HTMLMediaElement::updateActiveTextTrackCues + 5688
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbsharedInProcessIDBServercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -91,351 +91,301 @@
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::deleteDatabase(const IDBRequestData&amp; requestData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData] {
</ins><span class="cx">         m_server-&gt;deleteDatabase(requestData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteDatabase(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteDatabase(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::openDatabase(const IDBRequestData&amp; requestData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData] {
</ins><span class="cx">         m_server-&gt;openDatabase(requestData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didOpenDatabase(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didOpenDatabase(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, transactionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), transactionIdentifier, error] {
</ins><span class="cx">         m_connectionToServer-&gt;didAbortTransaction(transactionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, transactionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), transactionIdentifier, error] {
</ins><span class="cx">         m_connectionToServer-&gt;didCommitTransaction(transactionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didCreateObjectStore(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didCreateObjectStore(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteObjectStore(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteObjectStore(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didClearObjectStore(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didClearObjectStore(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didCreateIndex(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didCreateIndex(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteIndex(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteIndex(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didPutOrAdd(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didPutOrAdd(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didGetRecord(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didGetRecord(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didGetCount(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didGetCount(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didDeleteRecord(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didDeleteRecord(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didOpenCursor(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didOpenCursor(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didIterateCursor(const IDBResultData&amp; resultData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData] {
</ins><span class="cx">         m_connectionToServer-&gt;didIterateCursor(resultData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::abortTransaction(const IDBResourceIdentifier&amp; resourceIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resourceIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resourceIdentifier] {
</ins><span class="cx">         m_server-&gt;abortTransaction(resourceIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::commitTransaction(const IDBResourceIdentifier&amp; resourceIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resourceIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resourceIdentifier] {
</ins><span class="cx">         m_server-&gt;commitTransaction(resourceIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; transactionIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, transactionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, transactionIdentifier] {
</ins><span class="cx">         m_server-&gt;didFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, resultData, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), resultData, info] {
</ins><span class="cx">         m_server-&gt;createObjectStore(resultData, info);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData, objectStoreName] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, objectStoreName] {
</ins><span class="cx">         m_server-&gt;deleteObjectStore(requestData, objectStoreName);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::clearObjectStore(const IDBRequestData&amp; requestData, uint64_t objectStoreIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData, objectStoreIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, objectStoreIdentifier] {
</ins><span class="cx">         m_server-&gt;clearObjectStore(requestData, objectStoreIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, info] {
</ins><span class="cx">         m_server-&gt;createIndex(requestData, info);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData, objectStoreIdentifier, indexName] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData, keyData, value, overwriteMode] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="cx"> 
</span><span class="cx"> void InProcessIDBServer::getRecord(const IDBRequestData&amp; requestData, const IDBKeyRangeData&amp; keyRangeData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-
-    RunLoop::current().dispatch([this, protectedThis, requestData, keyRangeData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyRangeData] {
</ins><span class="cx">         m_server-&gt;getRecord(requestData, keyRangeData);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData, keyRangeData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyRangeData] {
</ins><span class="cx">         m_server-&gt;getCount(requestData, keyRangeData);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-
-    RunLoop::current().dispatch([this, protectedThis, requestData, keyRangeData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, keyRangeData] {
</ins><span class="cx">         m_server-&gt;deleteRecord(requestData, keyRangeData);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-
-    RunLoop::current().dispatch([this, protectedThis, requestData, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData, info] {
</ins><span class="cx">         m_server-&gt;openCursor(requestData, info);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-
-    RunLoop::current().dispatch([this, protectedThis, requestData, key, count] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="cx"> 
</span><span class="cx"> void InProcessIDBServer::establishTransaction(uint64_t databaseConnectionIdentifier, const IDBTransactionInfo&amp; info)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, info] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, info] {
</ins><span class="cx">         m_server-&gt;establishTransaction(databaseConnectionIdentifier, info);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    uint64_t databaseConnectionIdentifier = connection.identifier();
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, requestIdentifier, requestedVersion] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="cx"> 
</span><span class="cx"> void InProcessIDBServer::didStartTransaction(const IDBResourceIdentifier&amp; transactionIdentifier, const IDBError&amp; error)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, transactionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), transactionIdentifier, error] {
</ins><span class="cx">         m_connectionToServer-&gt;didStartTransaction(transactionIdentifier, error);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    uint64_t databaseConnectionIdentifier = connection.identifier();
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, error] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="cx"> 
</span><span class="cx"> void InProcessIDBServer::notifyOpenDBRequestBlocked(const IDBResourceIdentifier&amp; requestIdentifier, uint64_t oldVersion, uint64_t newVersion)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestIdentifier, oldVersion, newVersion] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="cx"> 
</span><span class="cx"> void InProcessIDBServer::databaseConnectionClosed(uint64_t databaseConnectionIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier] {
</ins><span class="cx">         m_server-&gt;databaseConnectionClosed(databaseConnectionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; transactionIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, transactionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, transactionIdentifier] {
</ins><span class="cx">         m_server-&gt;abortOpenAndUpgradeNeeded(databaseConnectionIdentifier, transactionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; requestIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, requestIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier, requestIdentifier] {
</ins><span class="cx">         m_server-&gt;didFireVersionChangeEvent(databaseConnectionIdentifier, requestIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::openDBRequestCancelled(const IDBRequestData&amp; requestData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, requestData] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), requestData] {
</ins><span class="cx">         m_server-&gt;openDBRequestCancelled(requestData);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InProcessIDBServer::confirmDidCloseFromServer(uint64_t databaseConnectionIdentifier)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*this), databaseConnectionIdentifier] {
</ins><span class="cx">         m_server-&gt;confirmDidCloseFromServer(databaseConnectionIdentifier);
</span><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, mainFrameOrigin, openingOrigin, callbackID] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="cx"> 
</span><span class="cx"> void InProcessIDBServer::didGetAllDatabaseNames(uint64_t callbackID, const Vector&lt;String&gt;&amp; databaseNames)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;InProcessIDBServer&gt; protectedThis(this);
-    RunLoop::current().dispatch([this, protectedThis, callbackID, databaseNames] {
</del><ins>+    RunLoop::current().dispatch([this, protectedThis = Ref&lt;InProcessIDBServer&gt;(*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="trunkSourceWebCoreModuleswebsocketsWebSocketcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -283,7 +283,7 @@
</span><span class="cx">             // using the error event. But since this code executes as part of the WebSocket's
</span><span class="cx">             // constructor, we have to wait until the constructor has completed before firing the
</span><span class="cx">             // event; otherwise, users can't connect to the event.
</span><del>-            RunLoop::main().dispatch([this]() {
</del><ins>+            RunLoop::main().dispatch([this, protectedThis = Ref&lt;WebSocket&gt;(*this)]() {
</ins><span class="cx">                 dispatchOrQueueErrorEvent();
</span><span class="cx">                 stop();
</span><span class="cx">             });
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsSerializedScriptValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -2823,14 +2823,11 @@
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx"> 
</span><span class="cx">     IDBValue value;
</span><del>-    IDBValue* valuePtr = &amp;value;
-
</del><span class="cx">     Lock lock;
</span><span class="cx">     Condition condition;
</span><del>-    Condition* conditionPtr = &amp;condition;
</del><span class="cx">     lock.lock();
</span><span class="cx"> 
</span><del>-    RunLoop::main().dispatch([this, conditionPtr, valuePtr] {
</del><ins>+    RunLoop::main().dispatch([this, conditionPtr = &amp;condition, valuePtr = &amp;value] {
</ins><span class="cx">         writeBlobsToDiskForIndexedDB([conditionPtr, valuePtr](const IDBValue&amp; result) {
</span><span class="cx">             ASSERT(isMainThread());
</span><span class="cx">             valuePtr-&gt;setAsIsolatedCopy(result);
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingThreadedScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -83,9 +83,7 @@
</span><span class="cx">     // Since this can potentially be the last reference to the scrolling coordinator,
</span><span class="cx">     // we need to release it on the main thread since it has member variables (such as timers)
</span><span class="cx">     // that expect to be destroyed from the main thread.
</span><del>-    ScrollingCoordinator* scrollingCoordinator = m_scrollingCoordinator.release().leakRef();
-    RunLoop::main().dispatch([scrollingCoordinator] {
-        scrollingCoordinator-&gt;deref();
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = WTFMove(m_scrollingCoordinator)] {
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -103,10 +101,7 @@
</span><span class="cx">     if (nodeID == rootNode()-&gt;scrollingNodeID())
</span><span class="cx">         setMainFrameScrollPosition(scrollPosition);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AsyncScrollingCoordinator&gt; scrollingCoordinator = m_scrollingCoordinator;
-    bool localIsHandlingProgrammaticScroll = isHandlingProgrammaticScroll();
-    
-    RunLoop::main().dispatch([scrollingCoordinator, nodeID, scrollPosition, localIsHandlingProgrammaticScroll, scrollingLayerPositionAction] {
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, nodeID, scrollPosition, localIsHandlingProgrammaticScroll = isHandlingProgrammaticScroll(), scrollingLayerPositionAction] {
</ins><span class="cx">         scrollingCoordinator-&gt;scheduleUpdateScrollPositionAfterAsyncScroll(nodeID, scrollPosition, localIsHandlingProgrammaticScroll, scrollingLayerPositionAction);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -116,8 +111,7 @@
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AsyncScrollingCoordinator&gt; scrollingCoordinator = m_scrollingCoordinator;
-    RunLoop::main().dispatch([scrollingCoordinator, nodeID, horizontal, vertical] {
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, nodeID, horizontal, vertical] {
</ins><span class="cx">         scrollingCoordinator-&gt;setActiveScrollSnapIndices(nodeID, horizontal, vertical);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -128,8 +122,7 @@
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AsyncScrollingCoordinator&gt; scrollingCoordinator = m_scrollingCoordinator;
-    RunLoop::main().dispatch([scrollingCoordinator, phase] {
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, phase] {
</ins><span class="cx">         scrollingCoordinator-&gt;handleWheelEventPhase(phase);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -139,8 +132,7 @@
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    RefPtr&lt;AsyncScrollingCoordinator&gt; scrollingCoordinator = m_scrollingCoordinator;
-    RunLoop::main().dispatch([scrollingCoordinator, nodeID, horizontalIndex, verticalIndex] {
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, nodeID, horizontalIndex, verticalIndex] {
</ins><span class="cx">         scrollingCoordinator-&gt;setActiveScrollSnapIndices(nodeID, horizontalIndex, verticalIndex);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -150,8 +142,7 @@
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AsyncScrollingCoordinator&gt; scrollingCoordinator = m_scrollingCoordinator;
-    RunLoop::main().dispatch([scrollingCoordinator, identifier, reason] {
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, identifier, reason] {
</ins><span class="cx">         scrollingCoordinator-&gt;deferTestsForReason(identifier, reason);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -161,8 +152,7 @@
</span><span class="cx">     if (!m_scrollingCoordinator)
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    RefPtr&lt;AsyncScrollingCoordinator&gt; scrollingCoordinator = m_scrollingCoordinator;
-    RunLoop::main().dispatch([scrollingCoordinator, identifier, reason] {
</del><ins>+    RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, identifier, reason] {
</ins><span class="cx">         scrollingCoordinator-&gt;removeTestDeferralForReason(identifier, reason);
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacDisplayRefreshMonitorMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -101,9 +101,9 @@
</span><span class="cx">     // FIXME: Should this be using webKitMonotonicNow?
</span><span class="cx">     setMonotonicAnimationStartTime(webKitMonotonicNow + timeUntilOutput);
</span><span class="cx"> 
</span><del>-    auto weakPtr = m_weakFactory.createWeakPtr();
</del><span class="cx"> 
</span><del>-    RunLoop::main().dispatch([weakPtr] {
</del><ins>+    // FIXME: Is it really okay to create a weakPtr on a background thread and then use it on the main thread?
+    RunLoop::main().dispatch([weakPtr = m_weakFactory.createWeakPtr()] {
</ins><span class="cx">         if (auto* monitor = weakPtr.get())
</span><span class="cx">             handleDisplayRefreshedNotificationOnMainThread(monitor);
</span><span class="cx">     });
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkDataURLDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/DataURLDecoder.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/DataURLDecoder.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebCore/platform/network/DataURLDecoder.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     auto mediaType = (isBase64 ? header.substring(0, header.length() - strlen(base64String)) : header).toString();
</span><span class="cx"> 
</span><span class="cx">     return std::make_unique&lt;DecodeTask&gt;(DecodeTask {
</span><del>-        WTFMove(urlString),
</del><ins>+        urlString.isolatedCopy(),
</ins><span class="cx">         WTFMove(encodedData),
</span><span class="cx">         isBase64,
</span><span class="cx">         scheduleContext,
</span><span class="lines">@@ -172,8 +172,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(url.protocolIsData());
</span><span class="cx"> 
</span><del>-    auto decodeTask = createDecodeTask(url, scheduleContext, WTFMove(completionHandler));
-    decodeQueue().dispatch([decodeTask = WTFMove(decodeTask)]() mutable {
</del><ins>+    decodeQueue().dispatch([decodeTask = createDecodeTask(url, scheduleContext, WTFMove(completionHandler))]() mutable {
</ins><span class="cx">         if (decodeTask-&gt;isBase64)
</span><span class="cx">             decodeBase64(*decodeTask);
</span><span class="cx">         else
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/ChangeLog        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -1,3 +1,76 @@
</span><ins>+2016-06-01  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Modernize lambda usage for all callers of RunLoop::dispatch().
+        https://bugs.webkit.org/show_bug.cgi?id=158265
+
+        Reviewed by Chris Dumez.
+
+        * DatabaseProcess/DatabaseProcess.cpp:
+        (WebKit::DatabaseProcess::fetchWebsiteData):
+        (WebKit::DatabaseProcess::deleteWebsiteData):
+        (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
+        
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::fetchDiskCacheEntries):
+        (WebKit::NetworkProcess::fetchWebsiteData):
+        
+        * NetworkProcess/cache/NetworkCacheStorage.cpp:
+        (WebKit::NetworkCache::Storage::remove):
+        (WebKit::NetworkCache::retrieveFromMemory):
+        
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::SyncMessageState::processIncomingMessage):
+        (IPC::Connection::processIncomingMessage):
+        (IPC::Connection::connectionDidClose):
+        (IPC::Connection::enqueueIncomingMessage):
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::receiveSourceEventHandler):
+        
+        * Shared/mac/CookieStorageShim.mm:
+        (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
+        * UIProcess/API/APIUserContentExtensionStore.cpp:
+        (API::UserContentExtensionStore::lookupContentExtension):
+        (API::UserContentExtensionStore::compileContentExtension):
+        (API::UserContentExtensionStore::removeContentExtension):
+        
+        * UIProcess/Launcher/ProcessLauncher.cpp:
+        (WebKit::ProcessLauncher::ProcessLauncher):
+        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+        (WebKit::connectToService):
+        
+        * UIProcess/Storage/StorageManager.cpp:
+        (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/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::isWebProcessResponsive):
+        
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::isResponsive):
+        
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::fetchData):
+        
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::pluginThreadAsyncCall):
+        
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::unprotectPluginFromDestruction):
+        
+        * 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-05-31  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, roll out r201481, r201523: 0.3% regression in Octane code-load
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessDatabaseProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -194,42 +194,20 @@
</span><span class="cx"> 
</span><span class="cx"> void DatabaseProcess::fetchWebsiteData(SessionID, OptionSet&lt;WebsiteDataType&gt; websiteDataTypes, uint64_t callbackID)
</span><span class="cx"> {
</span><del>-    struct CallbackAggregator final : public ThreadSafeRefCounted&lt;CallbackAggregator&gt; {
-        explicit CallbackAggregator(std::function&lt;void (WebsiteData)&gt; completionHandler)
-            : m_completionHandler(WTFMove(completionHandler))
-        {
-        }
-
-        ~CallbackAggregator()
-        {
-            ASSERT(RunLoop::isMain());
-
-            auto completionHandler = WTFMove(m_completionHandler);
-            auto websiteData = WTFMove(m_websiteData);
-
-            RunLoop::main().dispatch([completionHandler, websiteData] {
-                completionHandler(websiteData);
-            });
-        }
-
-        std::function&lt;void (WebsiteData)&gt; m_completionHandler;
-        WebsiteData m_websiteData;
</del><ins>+    auto completionHandler = [this, callbackID](const WebsiteData&amp; websiteData) {
+        parentProcessConnection()-&gt;send(Messages::DatabaseProcessProxy::DidFetchWebsiteData(callbackID, websiteData), 0);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CallbackAggregator&gt; callbackAggregator = adoptRef(new CallbackAggregator([this, callbackID](WebsiteData websiteData) {
-        parentProcessConnection()-&gt;send(Messages::DatabaseProcessProxy::DidFetchWebsiteData(callbackID, websiteData), 0);
-    }));
-
</del><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     if (websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases)) {
</span><span class="cx">         // FIXME: Pick the right database store based on the session ID.
</span><del>-        postDatabaseTask(CrossThreadTask([callbackAggregator, websiteDataTypes, this] {
-
-            Vector&lt;RefPtr&lt;SecurityOrigin&gt;&gt; securityOrigins = indexedDatabaseOrigins();
-
-            RunLoop::main().dispatch([callbackAggregator, securityOrigins] {
</del><ins>+        postDatabaseTask(CrossThreadTask([this, websiteDataTypes, completionHandler = WTFMove(completionHandler)]() mutable {
+            RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler), securityOrigins = indexedDatabaseOrigins()] {
+                WebsiteData websiteData;
</ins><span class="cx">                 for (const auto&amp; securityOrigin : securityOrigins)
</span><del>-                    callbackAggregator-&gt;m_websiteData.entries.append(WebsiteData::Entry { securityOrigin, WebsiteDataType::IndexedDBDatabases, 0 });
</del><ins>+                    websiteData.entries.append({ securityOrigin, WebsiteDataType::IndexedDBDatabases, 0 });
+
+                completionHandler(websiteData);
</ins><span class="cx">             });
</span><span class="cx">         }));
</span><span class="cx">     }
</span><span class="lines">@@ -238,57 +216,25 @@
</span><span class="cx"> 
</span><span class="cx"> void DatabaseProcess::deleteWebsiteData(WebCore::SessionID, OptionSet&lt;WebsiteDataType&gt; websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID)
</span><span class="cx"> {
</span><del>-    struct CallbackAggregator final : public ThreadSafeRefCounted&lt;CallbackAggregator&gt; {
-        explicit CallbackAggregator(std::function&lt;void ()&gt; completionHandler)
-            : m_completionHandler(WTFMove(completionHandler))
-        {
-        }
-
-        ~CallbackAggregator()
-        {
-            ASSERT(RunLoop::isMain());
-
-            RunLoop::main().dispatch(WTFMove(m_completionHandler));
-        }
-
-        std::function&lt;void ()&gt; m_completionHandler;
</del><ins>+    auto completionHandler = [this, callbackID]() {
+        parentProcessConnection()-&gt;send(Messages::DatabaseProcessProxy::DidDeleteWebsiteData(callbackID), 0);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CallbackAggregator&gt; callbackAggregator = adoptRef(new CallbackAggregator([this, callbackID]() {
-        parentProcessConnection()-&gt;send(Messages::DatabaseProcessProxy::DidDeleteWebsiteData(callbackID), 0);
-    }));
-
</del><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     if (websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases))
</span><del>-        idbServer().closeAndDeleteDatabasesModifiedSince(modifiedSince, [callbackAggregator] { });
</del><ins>+        idbServer().closeAndDeleteDatabasesModifiedSince(modifiedSince, WTFMove(completionHandler));
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DatabaseProcess::deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet&lt;WebsiteDataType&gt; websiteDataTypes, const Vector&lt;SecurityOriginData&gt;&amp; securityOriginDatas, uint64_t callbackID)
</span><span class="cx"> {
</span><del>-    struct CallbackAggregator final : public ThreadSafeRefCounted&lt;CallbackAggregator&gt; {
-        explicit CallbackAggregator(std::function&lt;void ()&gt; completionHandler)
-            : m_completionHandler(WTFMove(completionHandler))
-        {
-        }
-
-        ~CallbackAggregator()
-        {
-            ASSERT(RunLoop::isMain());
-
-            RunLoop::main().dispatch(WTFMove(m_completionHandler));
-        }
-
-        std::function&lt;void ()&gt; m_completionHandler;
</del><ins>+    auto completionHandler = [this, callbackID]() {
+        parentProcessConnection()-&gt;send(Messages::DatabaseProcessProxy::DidDeleteWebsiteDataForOrigins(callbackID), 0);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><del>-    RefPtr&lt;CallbackAggregator&gt; callbackAggregator = adoptRef(new CallbackAggregator([this, callbackID]() {
-        parentProcessConnection()-&gt;send(Messages::DatabaseProcessProxy::DidDeleteWebsiteDataForOrigins(callbackID), 0);
-    }));
-
</del><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">     if (websiteDataTypes.contains(WebsiteDataType::IndexedDBDatabases))
</span><del>-        idbServer().closeAndDeleteDatabasesForOrigins(securityOriginDatas, [callbackAggregator] { });
</del><ins>+        idbServer().closeAndDeleteDatabasesForOrigins(securityOriginDatas, WTFMove(completionHandler));
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -326,7 +326,7 @@
</span><span class="cx"> 
</span><span class="cx">                 delete originsAndSizes;
</span><span class="cx"> 
</span><del>-                RunLoop::main().dispatch([completionHandler, entries] {
</del><ins>+                RunLoop::main().dispatch([completionHandler, entries = WTFMove(entries)] {
</ins><span class="cx">                     completionHandler(entries);
</span><span class="cx">                 });
</span><span class="cx"> 
</span><span class="lines">@@ -350,7 +350,7 @@
</span><span class="cx">         entries.append(WebsiteData::Entry { WTFMove(origin), WebsiteDataType::DiskCache, 0 });
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    RunLoop::main().dispatch([completionHandler, entries] {
</del><ins>+    RunLoop::main().dispatch([completionHandler, entries = WTFMove(entries)] {
</ins><span class="cx">         completionHandler(entries);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -367,10 +367,7 @@
</span><span class="cx">         {
</span><span class="cx">             ASSERT(RunLoop::isMain());
</span><span class="cx"> 
</span><del>-            auto completionHandler = WTFMove(m_completionHandler);
-            auto websiteData = WTFMove(m_websiteData);
-
-            RunLoop::main().dispatch([completionHandler, websiteData] {
</del><ins>+            RunLoop::main().dispatch([completionHandler = WTFMove(m_completionHandler), websiteData = WTFMove(m_websiteData)] {
</ins><span class="cx">                 completionHandler(websiteData);
</span><span class="cx">             });
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -662,8 +662,7 @@
</span><span class="cx">     for (auto&amp; operation : operations) {
</span><span class="cx">         if (operation-&gt;record.key == key) {
</span><span class="cx">             LOG(NetworkCacheStorage, &quot;(NetworkProcess) found write operation in progress&quot;);
</span><del>-            auto record = operation-&gt;record;
-            RunLoop::main().dispatch([record, completionHandler] {
</del><ins>+            RunLoop::main().dispatch([record = operation-&gt;record, completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx">                 completionHandler(std::make_unique&lt;Storage::Record&gt;(record));
</span><span class="cx">             });
</span><span class="cx">             return true;
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/Connection.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/Connection.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/Platform/IPC/Connection.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -136,9 +136,8 @@
</span><span class="cx">         std::lock_guard&lt;Lock&gt; lock(m_mutex);
</span><span class="cx">         
</span><span class="cx">         if (m_didScheduleDispatchMessagesWorkSet.add(&amp;connection).isNewEntry) {
</span><del>-            RefPtr&lt;Connection&gt; protectedConnection(&amp;connection);
-            RunLoop::main().dispatch([this, protectedConnection] {
-                dispatchMessageAndResetDidScheduleDispatchMessagesForConnection(*protectedConnection);
</del><ins>+            RunLoop::main().dispatch([this, protectedConnection = Ref&lt;Connection&gt;(connection)]() mutable {
+                dispatchMessageAndResetDidScheduleDispatchMessagesForConnection(protectedConnection);
</ins><span class="cx">             });
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -647,13 +646,13 @@
</span><span class="cx"> 
</span><span class="cx">     if (!m_workQueueMessageReceivers.isValidKey(message-&gt;messageReceiverName())) {
</span><span class="cx">         RefPtr&lt;Connection&gt; protectedThis(this);
</span><del>-        StringReference messageReceiverName = message-&gt;messageReceiverName();
-        StringCapture capturedMessageReceiverName(messageReceiverName.isEmpty() ? &quot;&lt;unknown message receiver&gt;&quot; : String(messageReceiverName.data(), messageReceiverName.size()));
-        StringReference messageName = message-&gt;messageName();
-        StringCapture capturedMessageName(messageName.isEmpty() ? &quot;&lt;unknown message&gt;&quot; : String(messageName.data(), messageName.size()));
</del><ins>+        StringReference messageReceiverNameReference = message-&gt;messageReceiverName();
+        String messageReceiverName(messageReceiverNameReference.isEmpty() ? &quot;&lt;unknown message receiver&gt;&quot; : String(messageReceiverNameReference.data(), messageReceiverNameReference.size()));
+        StringReference messageNameReference = message-&gt;messageName();
+        String messageName(messageNameReference.isEmpty() ? &quot;&lt;unknown message&gt;&quot; : String(messageNameReference.data(), messageNameReference.size()));
</ins><span class="cx"> 
</span><del>-        RunLoop::main().dispatch([protectedThis, capturedMessageReceiverName, capturedMessageName] {
-            protectedThis-&gt;dispatchDidReceiveInvalidMessage(capturedMessageReceiverName.string().utf8(), capturedMessageName.string().utf8());
</del><ins>+        RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
+            protectedThis-&gt;dispatchDidReceiveInvalidMessage(messageReceiverName.utf8(), messageName.utf8());
</ins><span class="cx">         });
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -782,20 +781,19 @@
</span><span class="cx">     if (m_didCloseOnConnectionWorkQueueCallback)
</span><span class="cx">         m_didCloseOnConnectionWorkQueueCallback(this);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Connection&gt; connection(this);
-    RunLoop::main().dispatch([connection] {
</del><ins>+    RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*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><del>-        if (!connection-&gt;m_client)
</del><ins>+        if (!protectedThis-&gt;m_client)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         // Because we define a connection as being &quot;valid&quot; based on wheter it has a null client, we null out
</span><span class="cx">         // the client before calling didClose here. Otherwise, sendSync will try to send a message to the connection and
</span><span class="cx">         // will then wait indefinitely for a reply.
</span><del>-        Client* client = connection-&gt;m_client;
-        connection-&gt;m_client = nullptr;
</del><ins>+        Client* client = protectedThis-&gt;m_client;
+        protectedThis-&gt;m_client = nullptr;
</ins><span class="cx"> 
</span><del>-        client-&gt;didClose(*connection);
</del><ins>+        client-&gt;didClose(protectedThis.get());
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -888,8 +886,7 @@
</span><span class="cx">         m_incomingMessages.append(WTFMove(incomingMessage));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Connection&gt; protectedThis(this);
-    RunLoop::main().dispatch([protectedThis] {
</del><ins>+    RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*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 (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -518,13 +518,13 @@
</span><span class="cx">     if (decoder-&gt;messageReceiverName() == &quot;IPC&quot; &amp;&amp; decoder-&gt;messageName() == &quot;SetExceptionPort&quot;) {
</span><span class="cx">         if (m_isServer) {
</span><span class="cx">             // Server connections aren't supposed to have their exception ports overriden. Treat this as an invalid message.
</span><del>-            RefPtr&lt;Connection&gt; protectedThis(this);
-            StringReference messageReceiverName = decoder-&gt;messageReceiverName();
-            StringCapture capturedMessageReceiverName(String(messageReceiverName.data(), messageReceiverName.size()));
-            StringReference messageName = decoder-&gt;messageName();
-            StringCapture capturedMessageName(String(messageName.data(), messageName.size()));
-            RunLoop::main().dispatch([protectedThis, capturedMessageReceiverName, capturedMessageName] {
-                protectedThis-&gt;dispatchDidReceiveInvalidMessage(capturedMessageReceiverName.string().utf8(), capturedMessageName.string().utf8());
</del><ins>+            StringReference messageReceiverNameReference = decoder-&gt;messageReceiverName();
+            String messageReceiverName(String(messageReceiverNameReference.data(), messageReceiverNameReference.size()));
+            StringReference messageNameReference = decoder-&gt;messageName();
+            String messageName(String(messageNameReference.data(), messageNameReference.size()));
+
+            RunLoop::main().dispatch([protectedThis = Ref&lt;Connection&gt;(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
+                protectedThis-&gt;dispatchDidReceiveInvalidMessage(messageReceiverName.utf8(), messageName.utf8());
</ins><span class="cx">             });
</span><span class="cx">             return;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacCookieStorageShimmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/CookieStorageShim.mm (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/CookieStorageShim.mm        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/Shared/mac/CookieStorageShim.mm        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -123,10 +123,9 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RetainPtr&lt;NSURLSessionTask&gt; strongTask = task;
</del><span class="cx">     CompletionHandlerBlock completionHandlerCopy = [completionHandler copy];
</span><del>-    RunLoop::main().dispatch([strongTask, completionHandlerCopy] {
-        RetainPtr&lt;CFDictionaryRef&gt; headers = adoptCF(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL(nullptr, (CFURLRef)[[strongTask currentRequest] URL]));
</del><ins>+    RunLoop::main().dispatch([task = RetainPtr&lt;NSURLSessionTask&gt;(task), completionHandlerCopy] {
+        RetainPtr&lt;CFDictionaryRef&gt; headers = adoptCF(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL(nullptr, (CFURLRef)[[task currentRequest] URL]));
</ins><span class="cx">         completionHandlerCopy(headers.get());
</span><span class="cx">         [completionHandlerCopy release];
</span><span class="cx">     });
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIUserContentExtensionStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -306,31 +306,27 @@
</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>-    RefPtr&lt;UserContentExtensionStore&gt; self(this);
-    StringCapture identifierCapture(identifier);
-    StringCapture pathCapture(m_storePath);
-
-    m_readQueue-&gt;dispatch([self, identifierCapture, pathCapture, completionHandler] {
-        auto path = constructedPath(pathCapture.string(), identifierCapture.string());
</del><ins>+    m_readQueue-&gt;dispatch([protectedThis = Ref&lt;Object&gt;(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
+        auto path = constructedPath(storePath, identifier);
</ins><span class="cx">         
</span><span class="cx">         ContentExtensionMetaData metaData;
</span><span class="cx">         Data fileData;
</span><span class="cx">         if (!openAndMapContentExtension(path, metaData, fileData)) {
</span><del>-            RunLoop::main().dispatch([self, completionHandler] {
</del><ins>+            RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx">                 completionHandler(nullptr, Error::LookupFailed);
</span><span class="cx">             });
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         if (metaData.version != UserContentExtensionStore::CurrentContentExtensionFileVersion) {
</span><del>-            RunLoop::main().dispatch([self, completionHandler] {
</del><ins>+            RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx">                 completionHandler(nullptr, Error::VersionMismatch);
</span><span class="cx">             });
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         
</span><del>-        RunLoop::main().dispatch([self, identifierCapture, fileData, metaData, completionHandler] {
-            RefPtr&lt;API::UserContentExtension&gt; userContentExtension = createExtension(identifierCapture.string(), metaData, fileData);
</del><ins>+        RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), identifier = WTFMove(identifier), fileData = WTFMove(fileData), metaData = WTFMove(metaData), completionHandler = WTFMove(completionHandler)] {
+            RefPtr&lt;API::UserContentExtension&gt; userContentExtension = createExtension(identifier, metaData, fileData);
</ins><span class="cx">             completionHandler(userContentExtension, { });
</span><span class="cx">         });
</span><span class="cx">     });
</span><span class="lines">@@ -338,26 +334,21 @@
</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>-    RefPtr&lt;UserContentExtensionStore&gt; self(this);
-    StringCapture identifierCapture(identifier);
-    StringCapture jsonCapture(WTFMove(json));
-    StringCapture pathCapture(m_storePath);
</del><ins>+    m_compileQueue-&gt;dispatch([protectedThis = Ref&lt;Object&gt;(*this), identifier = identifier.isolatedCopy(), json = json.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)] () mutable {
+        auto path = constructedPath(storePath, identifier);
</ins><span class="cx"> 
</span><del>-    m_compileQueue-&gt;dispatch([self, identifierCapture, jsonCapture, pathCapture, completionHandler] () mutable {
-        auto path = constructedPath(pathCapture.string(), identifierCapture.string());
-
</del><span class="cx">         ContentExtensionMetaData metaData;
</span><span class="cx">         Data fileData;
</span><del>-        auto error = compiledToFile(jsonCapture.releaseString(), path, metaData, fileData);
</del><ins>+        auto error = compiledToFile(WTFMove(json), path, metaData, fileData);
</ins><span class="cx">         if (error) {
</span><del>-            RunLoop::main().dispatch([self, error, completionHandler] {
</del><ins>+            RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), error = WTFMove(error), completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx">                 completionHandler(nullptr, error);
</span><span class="cx">             });
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        RunLoop::main().dispatch([self, identifierCapture, fileData, metaData, completionHandler] {
-            RefPtr&lt;API::UserContentExtension&gt; userContentExtension = createExtension(identifierCapture.string(), metaData, fileData);
</del><ins>+        RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), identifier = WTFMove(identifier), fileData = WTFMove(fileData), metaData = WTFMove(metaData), completionHandler = WTFMove(completionHandler)] {
+            RefPtr&lt;API::UserContentExtension&gt; userContentExtension = createExtension(identifier, metaData, fileData);
</ins><span class="cx">             completionHandler(userContentExtension, { });
</span><span class="cx">         });
</span><span class="cx">     });
</span><span class="lines">@@ -365,21 +356,17 @@
</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>-    RefPtr&lt;UserContentExtensionStore&gt; self(this);
-    StringCapture identifierCapture(identifier);
-    StringCapture pathCapture(m_storePath);
</del><ins>+    m_removeQueue-&gt;dispatch([protectedThis = Ref&lt;Object&gt;(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
+        auto path = constructedPath(storePath, identifier);
</ins><span class="cx"> 
</span><del>-    m_removeQueue-&gt;dispatch([self, identifierCapture, pathCapture, completionHandler] {
-        auto path = constructedPath(pathCapture.string(), identifierCapture.string());
-
</del><span class="cx">         if (!WebCore::deleteFile(path)) {
</span><del>-            RunLoop::main().dispatch([self, completionHandler] {
</del><ins>+            RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx">                 completionHandler(Error::RemoveFailed);
</span><span class="cx">             });
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        RunLoop::main().dispatch([self, completionHandler] {
</del><ins>+        RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx">             completionHandler({ });
</span><span class="cx">         });
</span><span class="cx">     });
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessLauncherProcessLaunchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -45,8 +45,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_isLaunching = true;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;ProcessLauncher&gt; processLauncher(this);
-    processLauncherWorkQueue().dispatch([processLauncher] {
</del><ins>+    processLauncherWorkQueue().dispatch([processLauncher = Ref&lt;ProcessLauncher&gt;(*this)]() mutable {
</ins><span class="cx">         processLauncher-&gt;launchProcess();
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessLaunchermacProcessLauncherMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -180,9 +180,8 @@
</span><span class="cx">             // And the receive right.
</span><span class="cx">             mach_port_mod_refs(mach_task_self(), listeningPort, MACH_PORT_RIGHT_RECEIVE, -1);
</span><span class="cx"> 
</span><del>-            RefPtr&lt;ProcessLauncher&gt; protector(that);
-            RunLoop::main().dispatch([protector, didFinishLaunchingProcessFunction] {
-                (*protector.*didFinishLaunchingProcessFunction)(0, IPC::Connection::Identifier());
</del><ins>+            RunLoop::main().dispatch([protectedThat = RefPtr&lt;ProcessLauncher&gt;(that), didFinishLaunchingProcessFunction]() mutable {
+                (*protectedThat.*didFinishLaunchingProcessFunction)(0, IPC::Connection::Identifier());
</ins><span class="cx">             });
</span><span class="cx">         } else {
</span><span class="cx">             ASSERT(type == XPC_TYPE_DICTIONARY);
</span><span class="lines">@@ -192,9 +191,8 @@
</span><span class="cx">             pid_t processIdentifier = xpc_connection_get_pid(connection.get());
</span><span class="cx"> 
</span><span class="cx">             // We've finished launching the process, message back to the main run loop. This takes ownership of the connection.
</span><del>-            RefPtr&lt;ProcessLauncher&gt; protector(that);
-            RunLoop::main().dispatch([protector, didFinishLaunchingProcessFunction, processIdentifier, listeningPort, connection] {
-                (*protector.*didFinishLaunchingProcessFunction)(processIdentifier, IPC::Connection::Identifier(listeningPort, connection));
</del><ins>+            RunLoop::main().dispatch([protectedThat = RefPtr&lt;ProcessLauncher&gt;(that), didFinishLaunchingProcessFunction, processIdentifier, listeningPort, connection] {
+                (*protectedThat.*didFinishLaunchingProcessFunction)(processIdentifier, IPC::Connection::Identifier(listeningPort, connection));
</ins><span class="cx">             });
</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 (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -557,15 +557,15 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;StorageManager&gt; storageManager(this);
</span><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         HashSet&lt;RefPtr&lt;SecurityOrigin&gt;&gt; origins;
</span><span class="cx"> 
</span><del>-        for (const auto&amp; sessionStorageNamespace : storageManager-&gt;m_sessionStorageNamespaces.values()) {
</del><ins>+        for (const auto&amp; sessionStorageNamespace : m_sessionStorageNamespaces.values()) {
</ins><span class="cx">             for (auto&amp; origin : sessionStorageNamespace-&gt;origins())
</span><span class="cx">                 origins.add(WTFMove(origin));
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        RunLoop::main().dispatch([origins, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+        RunLoop::main().dispatch([origins = WTFMove(origins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">             completionHandler(WTFMove(origins));
</span><span class="cx">         });
</span><span class="cx">     });
</span><span class="lines">@@ -573,10 +573,8 @@
</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>-    RefPtr&lt;StorageManager&gt; storageManager(this);
-
-    m_queue-&gt;dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
-        for (auto&amp; sessionStorageNamespace : storageManager-&gt;m_sessionStorageNamespaces.values())
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
+        for (auto&amp; sessionStorageNamespace : m_sessionStorageNamespaces.values())
</ins><span class="cx">             sessionStorageNamespace-&gt;clearAllStorageAreas();
</span><span class="cx"> 
</span><span class="cx">         RunLoop::main().dispatch(WTFMove(completionHandler));
</span><span class="lines">@@ -591,10 +589,9 @@
</span><span class="cx">     for (auto&amp; origin : origins)
</span><span class="cx">         copiedOrigins.uncheckedAppend(origin-&gt;isolatedCopy());
</span><span class="cx"> 
</span><del>-    RefPtr&lt;StorageManager&gt; storageManager(this);
-    m_queue-&gt;dispatch([storageManager, copiedOrigins, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         for (auto&amp; origin : copiedOrigins) {
</span><del>-            for (auto&amp; sessionStorageNamespace : storageManager-&gt;m_sessionStorageNamespaces.values())
</del><ins>+            for (auto&amp; sessionStorageNamespace : m_sessionStorageNamespaces.values())
</ins><span class="cx">                 sessionStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*origin);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -604,20 +601,18 @@
</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>-    RefPtr&lt;StorageManager&gt; storageManager(this);
-
-    m_queue-&gt;dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         HashSet&lt;RefPtr&lt;SecurityOrigin&gt;&gt; origins;
</span><span class="cx"> 
</span><del>-        for (auto&amp; origin : storageManager-&gt;m_localStorageDatabaseTracker-&gt;origins())
</del><ins>+        for (auto&amp; origin : m_localStorageDatabaseTracker-&gt;origins())
</ins><span class="cx">             origins.add(WTFMove(origin));
</span><span class="cx"> 
</span><del>-        for (auto&amp; transientLocalStorageNamespace : storageManager-&gt;m_transientLocalStorageNamespaces.values()) {
</del><ins>+        for (auto&amp; transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values()) {
</ins><span class="cx">             for (auto&amp; origin : transientLocalStorageNamespace-&gt;origins())
</span><span class="cx">                 origins.add(WTFMove(origin));
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        RunLoop::main().dispatch([origins, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+        RunLoop::main().dispatch([origins = WTFMove(origins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">             completionHandler(WTFMove(origins));
</span><span class="cx">         });
</span><span class="cx">     });
</span><span class="lines">@@ -625,12 +620,10 @@
</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>-    RefPtr&lt;StorageManager&gt; storageManager(this);
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), completionHandler = WTFMove(completionHandler)]() mutable {
+        auto originDetails = m_localStorageDatabaseTracker-&gt;originDetails();
</ins><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
-        auto originDetails = storageManager-&gt;m_localStorageDatabaseTracker-&gt;originDetails();
-
-        RunLoop::main().dispatch([originDetails, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+        RunLoop::main().dispatch([originDetails = WTFMove(originDetails), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">             completionHandler(WTFMove(originDetails));
</span><span class="cx">         });
</span><span class="cx">     });
</span><span class="lines">@@ -638,33 +631,28 @@
</span><span class="cx"> 
</span><span class="cx"> void StorageManager::deleteLocalStorageEntriesForOrigin(const SecurityOrigin&amp; securityOrigin)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;StorageManager&gt; storageManager(this);
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), copiedOrigin = securityOrigin.isolatedCopy()]() mutable {
+        for (auto&amp; localStorageNamespace : m_localStorageNamespaces.values())
+            localStorageNamespace-&gt;clearStorageAreasMatchingOrigin(copiedOrigin);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;SecurityOrigin&gt; copiedOrigin = securityOrigin.isolatedCopy();
-    m_queue-&gt;dispatch([storageManager, copiedOrigin] {
-        for (auto&amp; localStorageNamespace : storageManager-&gt;m_localStorageNamespaces.values())
-            localStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*copiedOrigin);
</del><ins>+        for (auto&amp; transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values())
+            transientLocalStorageNamespace-&gt;clearStorageAreasMatchingOrigin(copiedOrigin);
</ins><span class="cx"> 
</span><del>-        for (auto&amp; transientLocalStorageNamespace : storageManager-&gt;m_transientLocalStorageNamespaces.values())
-            transientLocalStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*copiedOrigin);
-
-        storageManager-&gt;m_localStorageDatabaseTracker-&gt;deleteDatabaseWithOrigin(copiedOrigin.get());
</del><ins>+        m_localStorageDatabaseTracker-&gt;deleteDatabaseWithOrigin(copiedOrigin.ptr());
</ins><span class="cx">     });
</span><span class="cx"> }
</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>-    RefPtr&lt;StorageManager&gt; storageManager(this);
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), time, completionHandler = WTFMove(completionHandler)]() mutable {
+        auto deletedOrigins = m_localStorageDatabaseTracker-&gt;deleteDatabasesModifiedSince(time);
</ins><span class="cx"> 
</span><del>-    m_queue-&gt;dispatch([storageManager, time, completionHandler = WTFMove(completionHandler)]() mutable {
-        auto deletedOrigins = storageManager-&gt;m_localStorageDatabaseTracker-&gt;deleteDatabasesModifiedSince(time);
-
</del><span class="cx">         for (const auto&amp; origin : deletedOrigins) {
</span><del>-            for (auto&amp; localStorageNamespace : storageManager-&gt;m_localStorageNamespaces.values())
</del><ins>+            for (auto&amp; localStorageNamespace : m_localStorageNamespaces.values())
</ins><span class="cx">                 localStorageNamespace-&gt;clearStorageAreasMatchingOrigin(origin.get());
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        for (auto&amp; transientLocalStorageNamespace : storageManager-&gt;m_transientLocalStorageNamespaces.values())
</del><ins>+        for (auto&amp; transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values())
</ins><span class="cx">             transientLocalStorageNamespace-&gt;clearAllStorageAreas();
</span><span class="cx"> 
</span><span class="cx">         RunLoop::main().dispatch(WTFMove(completionHandler));
</span><span class="lines">@@ -679,16 +667,15 @@
</span><span class="cx">     for (auto&amp; origin : origins)
</span><span class="cx">         copiedOrigins.uncheckedAppend(origin-&gt;isolatedCopy());
</span><span class="cx"> 
</span><del>-    RefPtr&lt;StorageManager&gt; storageManager(this);
-    m_queue-&gt;dispatch([storageManager, copiedOrigins, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+    m_queue-&gt;dispatch([this, protectedThis = Ref&lt;StorageManager&gt;(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx">         for (auto&amp; origin : copiedOrigins) {
</span><del>-            for (auto&amp; localStorageNamespace : storageManager-&gt;m_localStorageNamespaces.values())
</del><ins>+            for (auto&amp; localStorageNamespace : m_localStorageNamespaces.values())
</ins><span class="cx">                 localStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*origin);
</span><span class="cx"> 
</span><del>-            for (auto&amp; transientLocalStorageNamespace : storageManager-&gt;m_transientLocalStorageNamespaces.values())
</del><ins>+            for (auto&amp; transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values())
</ins><span class="cx">                 transientLocalStorageNamespace-&gt;clearStorageAreasMatchingOrigin(*origin);
</span><span class="cx"> 
</span><del>-            storageManager-&gt;m_localStorageDatabaseTracker-&gt;deleteDatabaseWithOrigin(origin.get());
</del><ins>+            m_localStorageDatabaseTracker-&gt;deleteDatabaseWithOrigin(origin.get());
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         RunLoop::main().dispatch(WTFMove(completionHandler));
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -2714,7 +2714,7 @@
</span><span class="cx"> void WebPageProxy::isWebProcessResponsive(std::function&lt;void (bool isWebProcessResponsive)&gt; callbackFunction)
</span><span class="cx"> {
</span><span class="cx">     if (!isValid()) {
</span><del>-        RunLoop::main().dispatch([callbackFunction] {
</del><ins>+        RunLoop::main().dispatch([callbackFunction = WTFMove(callbackFunction)] {
</ins><span class="cx">             bool isWebProcessResponsive = true;
</span><span class="cx">             callbackFunction(isWebProcessResponsive);
</span><span class="cx">         });
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -998,7 +998,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (m_isResponsive == NoOrMaybe::No) {
</span><span class="cx">         if (callback) {
</span><del>-            RunLoop::main().dispatch([callback] {
</del><ins>+            RunLoop::main().dispatch([callback = WTFMove(callback)] {
</ins><span class="cx">                 bool isWebProcessResponsive = false;
</span><span class="cx">                 callback(isWebProcessResponsive);
</span><span class="cx">             });
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -235,8 +235,7 @@
</span><span class="cx">             if (pendingCallbacks)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            RefPtr&lt;CallbackAggregator&gt; callbackAggregator(this);
-            RunLoop::main().dispatch([callbackAggregator] {
</del><ins>+            RunLoop::main().dispatch([callbackAggregator = Ref&lt;CallbackAggregator&gt;(*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 class="lines">@@ -265,17 +264,15 @@
</span><span class="cx">         callbackAggregator-&gt;addPendingCallback();
</span><span class="cx">         m_queue-&gt;dispatch([fetchOptions, mediaCacheDirectory, callbackAggregator] {
</span><span class="cx">             HashSet&lt;RefPtr&lt;WebCore::SecurityOrigin&gt;&gt; origins = WebCore::HTMLMediaElement::originsInMediaCache(mediaCacheDirectory.string());
</span><del>-            WebsiteData* websiteData = new WebsiteData;
</del><ins>+            WebsiteData websiteData;
</ins><span class="cx">             
</span><span class="cx">             for (auto&amp; origin : origins) {
</span><span class="cx">                 WebsiteData::Entry entry { origin, WebsiteDataType::DiskCache, 0 };
</span><del>-                websiteData-&gt;entries.append(WTFMove(entry));
</del><ins>+                websiteData.entries.append(WTFMove(entry));
</ins><span class="cx">             }
</span><span class="cx">             
</span><del>-            WTF::RunLoop::main().dispatch([callbackAggregator, origins, websiteData] {
-                callbackAggregator-&gt;removePendingCallback(WTFMove(*websiteData));
-                
-                delete websiteData;
</del><ins>+            RunLoop::main().dispatch([callbackAggregator, origins = WTFMove(origins), websiteData = WTFMove(websiteData)]() mutable {
+                callbackAggregator-&gt;removePendingCallback(WTFMove(websiteData));
</ins><span class="cx">             });
</span><span class="cx">         });
</span><span class="cx"> #endif
</span><span class="lines">@@ -365,7 +362,7 @@
</span><span class="cx">         m_queue-&gt;dispatch([fetchOptions, applicationCacheDirectory, applicationCacheFlatFileSubdirectoryName, callbackAggregator] {
</span><span class="cx">             auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), applicationCacheFlatFileSubdirectoryName.string());
</span><span class="cx"> 
</span><del>-            WebsiteData* websiteData = new WebsiteData;
</del><ins>+            WebsiteData websiteData;
</ins><span class="cx"> 
</span><span class="cx">             HashSet&lt;RefPtr&lt;WebCore::SecurityOrigin&gt;&gt; origins;
</span><span class="cx">             storage-&gt;getOriginsWithCache(origins);
</span><span class="lines">@@ -374,13 +371,11 @@
</span><span class="cx">                 uint64_t size = fetchOptions.contains(WebsiteDataFetchOption::ComputeSizes) ? storage-&gt;diskUsageForOrigin(*origin) : 0;
</span><span class="cx">                 WebsiteData::Entry entry { origin, WebsiteDataType::OfflineWebApplicationCache, size };
</span><span class="cx"> 
</span><del>-                websiteData-&gt;entries.append(WTFMove(entry));
</del><ins>+                websiteData.entries.append(WTFMove(entry));
</ins><span class="cx">             }
</span><span class="cx"> 
</span><del>-            WTF::RunLoop::main().dispatch([callbackAggregator, origins, websiteData]() mutable {
-                callbackAggregator-&gt;removePendingCallback(WTFMove(*websiteData));
-
-                delete websiteData;
</del><ins>+            RunLoop::main().dispatch([callbackAggregator, origins = WTFMove(origins), websiteData = WTFMove(websiteData)]() mutable {
+                callbackAggregator-&gt;removePendingCallback(WTFMove(websiteData));
</ins><span class="cx">             });
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -394,7 +389,7 @@
</span><span class="cx">             Vector&lt;RefPtr&lt;WebCore::SecurityOrigin&gt;&gt; origins;
</span><span class="cx">             WebCore::DatabaseTracker::trackerWithDatabasePath(webSQLDatabaseDirectory.string())-&gt;origins(origins);
</span><span class="cx"> 
</span><del>-            RunLoop::main().dispatch([callbackAggregator, origins]() mutable {
</del><ins>+            RunLoop::main().dispatch([callbackAggregator, origins = WTFMove(origins)]() mutable {
</ins><span class="cx">                 WebsiteData websiteData;
</span><span class="cx">                 for (auto&amp; origin : origins)
</span><span class="cx">                     websiteData.entries.append(WebsiteData::Entry { WTFMove(origin), WebsiteDataType::WebSQLDatabases, 0 });
</span><span class="lines">@@ -425,7 +420,7 @@
</span><span class="cx">         m_queue-&gt;dispatch([mediaKeysStorageDirectory, callbackAggregator] {
</span><span class="cx">             auto origins = mediaKeyOrigins(mediaKeysStorageDirectory.string());
</span><span class="cx"> 
</span><del>-            RunLoop::main().dispatch([callbackAggregator, origins]() mutable {
</del><ins>+            RunLoop::main().dispatch([callbackAggregator, origins = WTFMove(origins)]() mutable {
</ins><span class="cx">                 WebsiteData websiteData;
</span><span class="cx">                 for (auto&amp; origin : origins)
</span><span class="cx">                     websiteData.entries.append(WebsiteData::Entry { WTFMove(origin), WebsiteDataType::MediaKeys, 0 });
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapeNetscapePlugincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -302,9 +302,8 @@
</span><span class="cx"> 
</span><span class="cx"> void NetscapePlugin::pluginThreadAsyncCall(void (*function)(void*), void* userData)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;NetscapePlugin&gt; plugin(this);
-    RunLoop::main().dispatch([plugin, function, userData] {
-        if (!plugin-&gt;m_isStarted)
</del><ins>+    RunLoop::main().dispatch([protectedThis = Ref&lt;NetscapePlugin&gt;(*this), function, userData] {
+        if (!protectedThis-&gt;m_isStarted)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         function(userData);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -1679,8 +1679,7 @@
</span><span class="cx">     // the destroyed object higher on the stack. To prevent this, if the plug-in has
</span><span class="cx">     // only one remaining reference, call deref() asynchronously.
</span><span class="cx">     if (hasOneRef()) {
</span><del>-        RunLoop::main().dispatch([this] {
-            deref();
</del><ins>+        RunLoop::main().dispatch([lastRef = adoptRef(*this)] {
</ins><span class="cx">         });
</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 (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -138,18 +138,16 @@
</span><span class="cx">     UNUSED_PARAM(canRubberBandAtBottom);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    RefPtr&lt;EventDispatcher&gt; eventDispatcher = this;
-    RunLoop::main().dispatch([eventDispatcher, pageID, wheelEvent] {
-        eventDispatcher-&gt;dispatchWheelEvent(pageID, wheelEvent);
</del><ins>+    RunLoop::main().dispatch([protectedThis = Ref&lt;EventDispatcher&gt;(*this), pageID, wheelEvent]() mutable {
+        protectedThis-&gt;dispatchWheelEvent(pageID, wheelEvent);
</ins><span class="cx">     }); 
</span><span class="cx"> }
</span><span class="cx"> 
</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>-    RefPtr&lt;EventDispatcher&gt; eventDispatcher = this;
-    RunLoop::main().dispatch([eventDispatcher, pageID, gestureEvent] {
-        eventDispatcher-&gt;dispatchGestureEvent(pageID, gestureEvent);
</del><ins>+    RunLoop::main().dispatch([protectedThis = Ref&lt;EventDispatcher&gt;(*this), pageID, gestureEvent]() mutable {
+        protectedThis-&gt;dispatchGestureEvent(pageID, gestureEvent);
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="lines">@@ -191,8 +189,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (updateListWasEmpty) {
</span><del>-        RefPtr&lt;EventDispatcher&gt; eventDispatcher = this;
-        RunLoop::main().dispatch([eventDispatcher] {
</del><ins>+        RunLoop::main().dispatch([protectedThis = Ref&lt;EventDispatcher&gt;(*this)]() mutable {
</ins><span class="cx">             eventDispatcher-&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 (201574 => 201575)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ViewUpdateDispatcher.cpp        2016-06-01 22:49:07 UTC (rev 201574)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ViewUpdateDispatcher.cpp        2016-06-01 23:38:37 UTC (rev 201575)
</span><span class="lines">@@ -67,9 +67,8 @@
</span><span class="cx">             iterator-&gt;value.visibleContentRectUpdateInfo = visibleContentRectUpdateInfo;
</span><span class="cx">     }
</span><span class="cx">     if (updateListWasEmpty) {
</span><del>-        RefPtr&lt;ViewUpdateDispatcher&gt; protector(this);
-        RunLoop::main().dispatch([protector] {
-            protector-&gt;dispatchVisibleContentRectUpdate();
</del><ins>+        RunLoop::main().dispatch([protectedThis = Ref&lt;ViewUpdateDispatcher&gt;(*this)]() mutable {
+            protectedThis-&gt;dispatchVisibleContentRectUpdate();
</ins><span class="cx">         });
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>