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