<!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 <beidson@apple.com>
+
+ 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 <eric.carlson@apple.com>
</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& requestData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData] {
</ins><span class="cx"> m_server->deleteDatabase(requestData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didDeleteDatabase(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didDeleteDatabase(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::openDatabase(const IDBRequestData& requestData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData] {
</ins><span class="cx"> m_server->openDatabase(requestData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didOpenDatabase(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didOpenDatabase(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didAbortTransaction(const IDBResourceIdentifier& transactionIdentifier, const IDBError& error)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, transactionIdentifier, error] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), transactionIdentifier, error] {
</ins><span class="cx"> m_connectionToServer->didAbortTransaction(transactionIdentifier, error);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didCommitTransaction(const IDBResourceIdentifier& transactionIdentifier, const IDBError& error)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, transactionIdentifier, error] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), transactionIdentifier, error] {
</ins><span class="cx"> m_connectionToServer->didCommitTransaction(transactionIdentifier, error);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didCreateObjectStore(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didCreateObjectStore(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didDeleteObjectStore(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didDeleteObjectStore(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didClearObjectStore(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didClearObjectStore(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didCreateIndex(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didCreateIndex(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didDeleteIndex(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didDeleteIndex(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didPutOrAdd(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didPutOrAdd(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didGetRecord(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didGetRecord(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didGetCount(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didGetCount(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didDeleteRecord(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didDeleteRecord(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didOpenCursor(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didOpenCursor(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didIterateCursor(const IDBResultData& resultData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData] {
</ins><span class="cx"> m_connectionToServer->didIterateCursor(resultData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::abortTransaction(const IDBResourceIdentifier& resourceIdentifier)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resourceIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resourceIdentifier] {
</ins><span class="cx"> m_server->abortTransaction(resourceIdentifier);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::commitTransaction(const IDBResourceIdentifier& resourceIdentifier)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resourceIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resourceIdentifier] {
</ins><span class="cx"> m_server->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& transactionIdentifier)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, transactionIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier, transactionIdentifier] {
</ins><span class="cx"> m_server->didFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::createObjectStore(const IDBRequestData& resultData, const IDBObjectStoreInfo& info)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, resultData, info] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), resultData, info] {
</ins><span class="cx"> m_server->createObjectStore(resultData, info);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::deleteObjectStore(const IDBRequestData& requestData, const String& objectStoreName)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData, objectStoreName] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, objectStoreName] {
</ins><span class="cx"> m_server->deleteObjectStore(requestData, objectStoreName);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::clearObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData, objectStoreIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, objectStoreIdentifier] {
</ins><span class="cx"> m_server->clearObjectStore(requestData, objectStoreIdentifier);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::createIndex(const IDBRequestData& requestData, const IDBIndexInfo& info)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData, info] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, info] {
</ins><span class="cx"> m_server->createIndex(requestData, info);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::deleteIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& indexName)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData, objectStoreIdentifier, indexName] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, objectStoreIdentifier, indexName] {
</ins><span class="cx"> m_server->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& requestData, const IDBKeyData& keyData, const IDBValue& value, const IndexedDB::ObjectStoreOverwriteMode overwriteMode)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData, keyData, value, overwriteMode] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, keyData, value, overwriteMode] {
</ins><span class="cx"> m_server->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& requestData, const IDBKeyRangeData& keyRangeData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
-
- RunLoop::current().dispatch([this, protectedThis, requestData, keyRangeData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, keyRangeData] {
</ins><span class="cx"> m_server->getRecord(requestData, keyRangeData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::getCount(const IDBRequestData& requestData, const IDBKeyRangeData& keyRangeData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData, keyRangeData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, keyRangeData] {
</ins><span class="cx"> m_server->getCount(requestData, keyRangeData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::deleteRecord(const IDBRequestData& requestData, const IDBKeyRangeData& keyRangeData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
-
- RunLoop::current().dispatch([this, protectedThis, requestData, keyRangeData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, keyRangeData] {
</ins><span class="cx"> m_server->deleteRecord(requestData, keyRangeData);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::openCursor(const IDBRequestData& requestData, const IDBCursorInfo& info)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
-
- RunLoop::current().dispatch([this, protectedThis, requestData, info] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, info] {
</ins><span class="cx"> m_server->openCursor(requestData, info);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::iterateCursor(const IDBRequestData& requestData, const IDBKeyData& key, unsigned long count)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
-
- RunLoop::current().dispatch([this, protectedThis, requestData, key, count] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData, key, count] {
</ins><span class="cx"> m_server->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& info)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
-
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, info] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier, info] {
</ins><span class="cx"> m_server->establishTransaction(databaseConnectionIdentifier, info);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::fireVersionChangeEvent(IDBServer::UniqueIDBDatabaseConnection& connection, const IDBResourceIdentifier& requestIdentifier, uint64_t requestedVersion)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- uint64_t databaseConnectionIdentifier = connection.identifier();
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, requestIdentifier, requestedVersion] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier = connection.identifier(), requestIdentifier, requestedVersion] {
</ins><span class="cx"> m_connectionToServer->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& transactionIdentifier, const IDBError& error)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, transactionIdentifier, error] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), transactionIdentifier, error] {
</ins><span class="cx"> m_connectionToServer->didStartTransaction(transactionIdentifier, error);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::didCloseFromServer(IDBServer::UniqueIDBDatabaseConnection& connection, const IDBError& error)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- uint64_t databaseConnectionIdentifier = connection.identifier();
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, error] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier = connection.identifier(), error] {
</ins><span class="cx"> m_connectionToServer->didCloseFromServer(databaseConnectionIdentifier, error);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::notifyOpenDBRequestBlocked(const IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestIdentifier, oldVersion, newVersion] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestIdentifier, oldVersion, newVersion] {
</ins><span class="cx"> m_connectionToServer->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<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier] {
</ins><span class="cx"> m_server->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& transactionIdentifier)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, transactionIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier, transactionIdentifier] {
</ins><span class="cx"> m_server->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& requestIdentifier)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier, requestIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier, requestIdentifier] {
</ins><span class="cx"> m_server->didFireVersionChangeEvent(databaseConnectionIdentifier, requestIdentifier);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::openDBRequestCancelled(const IDBRequestData& requestData)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, requestData] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), requestData] {
</ins><span class="cx"> m_server->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<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, databaseConnectionIdentifier] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), databaseConnectionIdentifier] {
</ins><span class="cx"> m_server->confirmDidCloseFromServer(databaseConnectionIdentifier);
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InProcessIDBServer::getAllDatabaseNames(const SecurityOriginData& mainFrameOrigin, const SecurityOriginData& openingOrigin, uint64_t callbackID)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, mainFrameOrigin, openingOrigin, callbackID] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), mainFrameOrigin, openingOrigin, callbackID] {
</ins><span class="cx"> m_server->getAllDatabaseNames(m_connectionToServer->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<String>& databaseNames)
</span><span class="cx"> {
</span><del>- RefPtr<InProcessIDBServer> protectedThis(this);
- RunLoop::current().dispatch([this, protectedThis, callbackID, databaseNames] {
</del><ins>+ RunLoop::current().dispatch([this, protectedThis = Ref<InProcessIDBServer>(*this), callbackID, databaseNames] {
</ins><span class="cx"> m_connectionToServer->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<WebSocket>(*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 = &value;
-
</del><span class="cx"> Lock lock;
</span><span class="cx"> Condition condition;
</span><del>- Condition* conditionPtr = &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 = &condition, valuePtr = &value] {
</ins><span class="cx"> writeBlobsToDiskForIndexedDB([conditionPtr, valuePtr](const IDBValue& result) {
</span><span class="cx"> ASSERT(isMainThread());
</span><span class="cx"> valuePtr->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->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()->scrollingNodeID())
</span><span class="cx"> setMainFrameScrollPosition(scrollPosition);
</span><span class="cx">
</span><del>- RefPtr<AsyncScrollingCoordinator> 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->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<AsyncScrollingCoordinator> 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->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<AsyncScrollingCoordinator> scrollingCoordinator = m_scrollingCoordinator;
- RunLoop::main().dispatch([scrollingCoordinator, phase] {
</del><ins>+ RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, phase] {
</ins><span class="cx"> scrollingCoordinator->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<AsyncScrollingCoordinator> 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->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<AsyncScrollingCoordinator> scrollingCoordinator = m_scrollingCoordinator;
- RunLoop::main().dispatch([scrollingCoordinator, identifier, reason] {
</del><ins>+ RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, identifier, reason] {
</ins><span class="cx"> scrollingCoordinator->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<AsyncScrollingCoordinator> scrollingCoordinator = m_scrollingCoordinator;
- RunLoop::main().dispatch([scrollingCoordinator, identifier, reason] {
</del><ins>+ RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, identifier, reason] {
</ins><span class="cx"> scrollingCoordinator->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<DecodeTask>(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->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 <beidson@apple.com>
+
+ 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 <utatane.tea@gmail.com>
</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<WebsiteDataType> websiteDataTypes, uint64_t callbackID)
</span><span class="cx"> {
</span><del>- struct CallbackAggregator final : public ThreadSafeRefCounted<CallbackAggregator> {
- explicit CallbackAggregator(std::function<void (WebsiteData)> 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<void (WebsiteData)> m_completionHandler;
- WebsiteData m_websiteData;
</del><ins>+ auto completionHandler = [this, callbackID](const WebsiteData& websiteData) {
+ parentProcessConnection()->send(Messages::DatabaseProcessProxy::DidFetchWebsiteData(callbackID, websiteData), 0);
</ins><span class="cx"> };
</span><span class="cx">
</span><del>- RefPtr<CallbackAggregator> callbackAggregator = adoptRef(new CallbackAggregator([this, callbackID](WebsiteData websiteData) {
- parentProcessConnection()->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<RefPtr<SecurityOrigin>> 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& securityOrigin : securityOrigins)
</span><del>- callbackAggregator->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<WebsiteDataType> websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID)
</span><span class="cx"> {
</span><del>- struct CallbackAggregator final : public ThreadSafeRefCounted<CallbackAggregator> {
- explicit CallbackAggregator(std::function<void ()> completionHandler)
- : m_completionHandler(WTFMove(completionHandler))
- {
- }
-
- ~CallbackAggregator()
- {
- ASSERT(RunLoop::isMain());
-
- RunLoop::main().dispatch(WTFMove(m_completionHandler));
- }
-
- std::function<void ()> m_completionHandler;
</del><ins>+ auto completionHandler = [this, callbackID]() {
+ parentProcessConnection()->send(Messages::DatabaseProcessProxy::DidDeleteWebsiteData(callbackID), 0);
</ins><span class="cx"> };
</span><span class="cx">
</span><del>- RefPtr<CallbackAggregator> callbackAggregator = adoptRef(new CallbackAggregator([this, callbackID]() {
- parentProcessConnection()->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<WebsiteDataType> websiteDataTypes, const Vector<SecurityOriginData>& securityOriginDatas, uint64_t callbackID)
</span><span class="cx"> {
</span><del>- struct CallbackAggregator final : public ThreadSafeRefCounted<CallbackAggregator> {
- explicit CallbackAggregator(std::function<void ()> completionHandler)
- : m_completionHandler(WTFMove(completionHandler))
- {
- }
-
- ~CallbackAggregator()
- {
- ASSERT(RunLoop::isMain());
-
- RunLoop::main().dispatch(WTFMove(m_completionHandler));
- }
-
- std::function<void ()> m_completionHandler;
</del><ins>+ auto completionHandler = [this, callbackID]() {
+ parentProcessConnection()->send(Messages::DatabaseProcessProxy::DidDeleteWebsiteDataForOrigins(callbackID), 0);
</ins><span class="cx"> };
</span><span class="cx">
</span><del>- RefPtr<CallbackAggregator> callbackAggregator = adoptRef(new CallbackAggregator([this, callbackID]() {
- parentProcessConnection()->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& operation : operations) {
</span><span class="cx"> if (operation->record.key == key) {
</span><span class="cx"> LOG(NetworkCacheStorage, "(NetworkProcess) found write operation in progress");
</span><del>- auto record = operation->record;
- RunLoop::main().dispatch([record, completionHandler] {
</del><ins>+ RunLoop::main().dispatch([record = operation->record, completionHandler = WTFMove(completionHandler)] {
</ins><span class="cx"> completionHandler(std::make_unique<Storage::Record>(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<Lock> lock(m_mutex);
</span><span class="cx">
</span><span class="cx"> if (m_didScheduleDispatchMessagesWorkSet.add(&connection).isNewEntry) {
</span><del>- RefPtr<Connection> protectedConnection(&connection);
- RunLoop::main().dispatch([this, protectedConnection] {
- dispatchMessageAndResetDidScheduleDispatchMessagesForConnection(*protectedConnection);
</del><ins>+ RunLoop::main().dispatch([this, protectedConnection = Ref<Connection>(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->messageReceiverName())) {
</span><span class="cx"> RefPtr<Connection> protectedThis(this);
</span><del>- StringReference messageReceiverName = message->messageReceiverName();
- StringCapture capturedMessageReceiverName(messageReceiverName.isEmpty() ? "<unknown message receiver>" : String(messageReceiverName.data(), messageReceiverName.size()));
- StringReference messageName = message->messageName();
- StringCapture capturedMessageName(messageName.isEmpty() ? "<unknown message>" : String(messageName.data(), messageName.size()));
</del><ins>+ StringReference messageReceiverNameReference = message->messageReceiverName();
+ String messageReceiverName(messageReceiverNameReference.isEmpty() ? "<unknown message receiver>" : String(messageReceiverNameReference.data(), messageReceiverNameReference.size()));
+ StringReference messageNameReference = message->messageName();
+ String messageName(messageNameReference.isEmpty() ? "<unknown message>" : String(messageNameReference.data(), messageNameReference.size()));
</ins><span class="cx">
</span><del>- RunLoop::main().dispatch([protectedThis, capturedMessageReceiverName, capturedMessageName] {
- protectedThis->dispatchDidReceiveInvalidMessage(capturedMessageReceiverName.string().utf8(), capturedMessageName.string().utf8());
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<Connection>(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
+ protectedThis->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<Connection> connection(this);
- RunLoop::main().dispatch([connection] {
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<Connection>(*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->m_client)
</del><ins>+ if (!protectedThis->m_client)
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Because we define a connection as being "valid" 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->m_client;
- connection->m_client = nullptr;
</del><ins>+ Client* client = protectedThis->m_client;
+ protectedThis->m_client = nullptr;
</ins><span class="cx">
</span><del>- client->didClose(*connection);
</del><ins>+ client->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<Connection> protectedThis(this);
- RunLoop::main().dispatch([protectedThis] {
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<Connection>(*this)]() mutable {
</ins><span class="cx"> protectedThis->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->messageReceiverName() == "IPC" && decoder->messageName() == "SetExceptionPort") {
</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<Connection> protectedThis(this);
- StringReference messageReceiverName = decoder->messageReceiverName();
- StringCapture capturedMessageReceiverName(String(messageReceiverName.data(), messageReceiverName.size()));
- StringReference messageName = decoder->messageName();
- StringCapture capturedMessageName(String(messageName.data(), messageName.size()));
- RunLoop::main().dispatch([protectedThis, capturedMessageReceiverName, capturedMessageName] {
- protectedThis->dispatchDidReceiveInvalidMessage(capturedMessageReceiverName.string().utf8(), capturedMessageName.string().utf8());
</del><ins>+ StringReference messageReceiverNameReference = decoder->messageReceiverName();
+ String messageReceiverName(String(messageReceiverNameReference.data(), messageReceiverNameReference.size()));
+ StringReference messageNameReference = decoder->messageName();
+ String messageName(String(messageNameReference.data(), messageNameReference.size()));
+
+ RunLoop::main().dispatch([protectedThis = Ref<Connection>(*this), messageReceiverName = WTFMove(messageReceiverName), messageName = WTFMove(messageName)]() mutable {
+ protectedThis->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<NSURLSessionTask> strongTask = task;
</del><span class="cx"> CompletionHandlerBlock completionHandlerCopy = [completionHandler copy];
</span><del>- RunLoop::main().dispatch([strongTask, completionHandlerCopy] {
- RetainPtr<CFDictionaryRef> headers = adoptCF(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL(nullptr, (CFURLRef)[[strongTask currentRequest] URL]));
</del><ins>+ RunLoop::main().dispatch([task = RetainPtr<NSURLSessionTask>(task), completionHandlerCopy] {
+ RetainPtr<CFDictionaryRef> 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& identifier, std::function<void(RefPtr<API::UserContentExtension>, std::error_code)> completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<UserContentExtensionStore> self(this);
- StringCapture identifierCapture(identifier);
- StringCapture pathCapture(m_storePath);
-
- m_readQueue->dispatch([self, identifierCapture, pathCapture, completionHandler] {
- auto path = constructedPath(pathCapture.string(), identifierCapture.string());
</del><ins>+ m_readQueue->dispatch([protectedThis = Ref<Object>(*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<API::UserContentExtension> 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<API::UserContentExtension> 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& identifier, WTF::String&& json, std::function<void(RefPtr<API::UserContentExtension>, std::error_code)> completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<UserContentExtensionStore> self(this);
- StringCapture identifierCapture(identifier);
- StringCapture jsonCapture(WTFMove(json));
- StringCapture pathCapture(m_storePath);
</del><ins>+ m_compileQueue->dispatch([protectedThis = Ref<Object>(*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->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<API::UserContentExtension> 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<API::UserContentExtension> 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& identifier, std::function<void(std::error_code)> completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<UserContentExtensionStore> self(this);
- StringCapture identifierCapture(identifier);
- StringCapture pathCapture(m_storePath);
</del><ins>+ m_removeQueue->dispatch([protectedThis = Ref<Object>(*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->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<ProcessLauncher> processLauncher(this);
- processLauncherWorkQueue().dispatch([processLauncher] {
</del><ins>+ processLauncherWorkQueue().dispatch([processLauncher = Ref<ProcessLauncher>(*this)]() mutable {
</ins><span class="cx"> processLauncher->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<ProcessLauncher> protector(that);
- RunLoop::main().dispatch([protector, didFinishLaunchingProcessFunction] {
- (*protector.*didFinishLaunchingProcessFunction)(0, IPC::Connection::Identifier());
</del><ins>+ RunLoop::main().dispatch([protectedThat = RefPtr<ProcessLauncher>(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<ProcessLauncher> 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<ProcessLauncher>(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<StorageManager> storageManager(this);
</span><span class="cx">
</span><del>- m_queue->dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx"> HashSet<RefPtr<SecurityOrigin>> origins;
</span><span class="cx">
</span><del>- for (const auto& sessionStorageNamespace : storageManager->m_sessionStorageNamespaces.values()) {
</del><ins>+ for (const auto& sessionStorageNamespace : m_sessionStorageNamespaces.values()) {
</ins><span class="cx"> for (auto& origin : sessionStorageNamespace->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<void ()>&& completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<StorageManager> storageManager(this);
-
- m_queue->dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
- for (auto& sessionStorageNamespace : storageManager->m_sessionStorageNamespaces.values())
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), completionHandler = WTFMove(completionHandler)]() mutable {
+ for (auto& sessionStorageNamespace : m_sessionStorageNamespaces.values())
</ins><span class="cx"> sessionStorageNamespace->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& origin : origins)
</span><span class="cx"> copiedOrigins.uncheckedAppend(origin->isolatedCopy());
</span><span class="cx">
</span><del>- RefPtr<StorageManager> storageManager(this);
- m_queue->dispatch([storageManager, copiedOrigins, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx"> for (auto& origin : copiedOrigins) {
</span><del>- for (auto& sessionStorageNamespace : storageManager->m_sessionStorageNamespaces.values())
</del><ins>+ for (auto& sessionStorageNamespace : m_sessionStorageNamespaces.values())
</ins><span class="cx"> sessionStorageNamespace->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<void (HashSet<RefPtr<WebCore::SecurityOrigin>>&&)>&& completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<StorageManager> storageManager(this);
-
- m_queue->dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx"> HashSet<RefPtr<SecurityOrigin>> origins;
</span><span class="cx">
</span><del>- for (auto& origin : storageManager->m_localStorageDatabaseTracker->origins())
</del><ins>+ for (auto& origin : m_localStorageDatabaseTracker->origins())
</ins><span class="cx"> origins.add(WTFMove(origin));
</span><span class="cx">
</span><del>- for (auto& transientLocalStorageNamespace : storageManager->m_transientLocalStorageNamespaces.values()) {
</del><ins>+ for (auto& transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values()) {
</ins><span class="cx"> for (auto& origin : transientLocalStorageNamespace->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<void (Vector<LocalStorageDatabaseTracker::OriginDetails>)>&& completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<StorageManager> storageManager(this);
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), completionHandler = WTFMove(completionHandler)]() mutable {
+ auto originDetails = m_localStorageDatabaseTracker->originDetails();
</ins><span class="cx">
</span><del>- m_queue->dispatch([storageManager, completionHandler = WTFMove(completionHandler)]() mutable {
- auto originDetails = storageManager->m_localStorageDatabaseTracker->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& securityOrigin)
</span><span class="cx"> {
</span><del>- RefPtr<StorageManager> storageManager(this);
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), copiedOrigin = securityOrigin.isolatedCopy()]() mutable {
+ for (auto& localStorageNamespace : m_localStorageNamespaces.values())
+ localStorageNamespace->clearStorageAreasMatchingOrigin(copiedOrigin);
</ins><span class="cx">
</span><del>- RefPtr<SecurityOrigin> copiedOrigin = securityOrigin.isolatedCopy();
- m_queue->dispatch([storageManager, copiedOrigin] {
- for (auto& localStorageNamespace : storageManager->m_localStorageNamespaces.values())
- localStorageNamespace->clearStorageAreasMatchingOrigin(*copiedOrigin);
</del><ins>+ for (auto& transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values())
+ transientLocalStorageNamespace->clearStorageAreasMatchingOrigin(copiedOrigin);
</ins><span class="cx">
</span><del>- for (auto& transientLocalStorageNamespace : storageManager->m_transientLocalStorageNamespaces.values())
- transientLocalStorageNamespace->clearStorageAreasMatchingOrigin(*copiedOrigin);
-
- storageManager->m_localStorageDatabaseTracker->deleteDatabaseWithOrigin(copiedOrigin.get());
</del><ins>+ m_localStorageDatabaseTracker->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<void ()>&& completionHandler)
</span><span class="cx"> {
</span><del>- RefPtr<StorageManager> storageManager(this);
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), time, completionHandler = WTFMove(completionHandler)]() mutable {
+ auto deletedOrigins = m_localStorageDatabaseTracker->deleteDatabasesModifiedSince(time);
</ins><span class="cx">
</span><del>- m_queue->dispatch([storageManager, time, completionHandler = WTFMove(completionHandler)]() mutable {
- auto deletedOrigins = storageManager->m_localStorageDatabaseTracker->deleteDatabasesModifiedSince(time);
-
</del><span class="cx"> for (const auto& origin : deletedOrigins) {
</span><del>- for (auto& localStorageNamespace : storageManager->m_localStorageNamespaces.values())
</del><ins>+ for (auto& localStorageNamespace : m_localStorageNamespaces.values())
</ins><span class="cx"> localStorageNamespace->clearStorageAreasMatchingOrigin(origin.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- for (auto& transientLocalStorageNamespace : storageManager->m_transientLocalStorageNamespaces.values())
</del><ins>+ for (auto& transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values())
</ins><span class="cx"> transientLocalStorageNamespace->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& origin : origins)
</span><span class="cx"> copiedOrigins.uncheckedAppend(origin->isolatedCopy());
</span><span class="cx">
</span><del>- RefPtr<StorageManager> storageManager(this);
- m_queue->dispatch([storageManager, copiedOrigins, completionHandler = WTFMove(completionHandler)]() mutable {
</del><ins>+ m_queue->dispatch([this, protectedThis = Ref<StorageManager>(*this), copiedOrigins = WTFMove(copiedOrigins), completionHandler = WTFMove(completionHandler)]() mutable {
</ins><span class="cx"> for (auto& origin : copiedOrigins) {
</span><del>- for (auto& localStorageNamespace : storageManager->m_localStorageNamespaces.values())
</del><ins>+ for (auto& localStorageNamespace : m_localStorageNamespaces.values())
</ins><span class="cx"> localStorageNamespace->clearStorageAreasMatchingOrigin(*origin);
</span><span class="cx">
</span><del>- for (auto& transientLocalStorageNamespace : storageManager->m_transientLocalStorageNamespaces.values())
</del><ins>+ for (auto& transientLocalStorageNamespace : m_transientLocalStorageNamespaces.values())
</ins><span class="cx"> transientLocalStorageNamespace->clearStorageAreasMatchingOrigin(*origin);
</span><span class="cx">
</span><del>- storageManager->m_localStorageDatabaseTracker->deleteDatabaseWithOrigin(origin.get());
</del><ins>+ m_localStorageDatabaseTracker->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<void (bool isWebProcessResponsive)> 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<CallbackAggregator> callbackAggregator(this);
- RunLoop::main().dispatch([callbackAggregator] {
</del><ins>+ RunLoop::main().dispatch([callbackAggregator = Ref<CallbackAggregator>(*this)]() mutable {
</ins><span class="cx">
</span><span class="cx"> WTF::Vector<WebsiteDataRecord> records;
</span><span class="cx"> records.reserveInitialCapacity(callbackAggregator->m_websiteDataRecords.size());
</span><span class="lines">@@ -265,17 +264,15 @@
</span><span class="cx"> callbackAggregator->addPendingCallback();
</span><span class="cx"> m_queue->dispatch([fetchOptions, mediaCacheDirectory, callbackAggregator] {
</span><span class="cx"> HashSet<RefPtr<WebCore::SecurityOrigin>> 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& origin : origins) {
</span><span class="cx"> WebsiteData::Entry entry { origin, WebsiteDataType::DiskCache, 0 };
</span><del>- websiteData->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->removePendingCallback(WTFMove(*websiteData));
-
- delete websiteData;
</del><ins>+ RunLoop::main().dispatch([callbackAggregator, origins = WTFMove(origins), websiteData = WTFMove(websiteData)]() mutable {
+ callbackAggregator->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->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<RefPtr<WebCore::SecurityOrigin>> origins;
</span><span class="cx"> storage->getOriginsWithCache(origins);
</span><span class="lines">@@ -374,13 +371,11 @@
</span><span class="cx"> uint64_t size = fetchOptions.contains(WebsiteDataFetchOption::ComputeSizes) ? storage->diskUsageForOrigin(*origin) : 0;
</span><span class="cx"> WebsiteData::Entry entry { origin, WebsiteDataType::OfflineWebApplicationCache, size };
</span><span class="cx">
</span><del>- websiteData->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->removePendingCallback(WTFMove(*websiteData));
-
- delete websiteData;
</del><ins>+ RunLoop::main().dispatch([callbackAggregator, origins = WTFMove(origins), websiteData = WTFMove(websiteData)]() mutable {
+ callbackAggregator->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<RefPtr<WebCore::SecurityOrigin>> origins;
</span><span class="cx"> WebCore::DatabaseTracker::trackerWithDatabasePath(webSQLDatabaseDirectory.string())->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& 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->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& 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<NetscapePlugin> plugin(this);
- RunLoop::main().dispatch([plugin, function, userData] {
- if (!plugin->m_isStarted)
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<NetscapePlugin>(*this), function, userData] {
+ if (!protectedThis->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<EventDispatcher> eventDispatcher = this;
- RunLoop::main().dispatch([eventDispatcher, pageID, wheelEvent] {
- eventDispatcher->dispatchWheelEvent(pageID, wheelEvent);
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<EventDispatcher>(*this), pageID, wheelEvent]() mutable {
+ protectedThis->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& gestureEvent)
</span><span class="cx"> {
</span><del>- RefPtr<EventDispatcher> eventDispatcher = this;
- RunLoop::main().dispatch([eventDispatcher, pageID, gestureEvent] {
- eventDispatcher->dispatchGestureEvent(pageID, gestureEvent);
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<EventDispatcher>(*this), pageID, gestureEvent]() mutable {
+ protectedThis->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<EventDispatcher> eventDispatcher = this;
- RunLoop::main().dispatch([eventDispatcher] {
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<EventDispatcher>(*this)]() mutable {
</ins><span class="cx"> eventDispatcher->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->value.visibleContentRectUpdateInfo = visibleContentRectUpdateInfo;
</span><span class="cx"> }
</span><span class="cx"> if (updateListWasEmpty) {
</span><del>- RefPtr<ViewUpdateDispatcher> protector(this);
- RunLoop::main().dispatch([protector] {
- protector->dispatchVisibleContentRectUpdate();
</del><ins>+ RunLoop::main().dispatch([protectedThis = Ref<ViewUpdateDispatcher>(*this)]() mutable {
+ protectedThis->dispatchVisibleContentRectUpdate();
</ins><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>