WebKit Bugzilla
Attachment 345959 Details for
Bug 186543
: Make CompletionHandler more const correct
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186543-20180727145739.patch (text/plain), 69.85 KB, created by
Alex Christensen
on 2018-07-27 14:57:39 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-07-27 14:57:39 PDT
Size:
69.85 KB
patch
obsolete
>Index: Source/WTF/ChangeLog >=================================================================== >--- Source/WTF/ChangeLog (revision 234327) >+++ Source/WTF/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2018-07-27 Alex Christensen <achristensen@webkit.org> >+ >+ Make CompletionHandler more const correct >+ https://bugs.webkit.org/show_bug.cgi?id=186543 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * wtf/CompletionHandler.h: >+ (WTF::CompletionHandler<Out): >+ Calling a CompletionHandler mutates it. Make the code reflect that. >+ > 2018-07-26 Andy VanWagoner <andy@vanwagoner.family> > > [INTL] Remove INTL sub-feature compile flags >Index: Source/WTF/wtf/CompletionHandler.h >=================================================================== >--- Source/WTF/wtf/CompletionHandler.h (revision 234327) >+++ Source/WTF/wtf/CompletionHandler.h (working copy) >@@ -25,13 +25,13 @@ > > #pragma once > >-#include "Function.h" >+#include <wtf/Function.h> > > namespace WTF { > > template<typename> class CompletionHandler; > >-// Wraps a WTF::Function to make sure it is always called once and only once. >+// Wraps a Function to make sure it is always called once and only once. > template <typename Out, typename... In> > class CompletionHandler<Out(In...)> { > public: >@@ -53,15 +53,14 @@ public: > > explicit operator bool() const { return !!m_function; } > >- Out operator()(In... in) const >+ Out operator()(In... in) > { > ASSERT_WITH_MESSAGE(m_function, "Completion handler should not be called more than once"); >- auto function = WTFMove(m_function); >- return function(std::forward<In>(in)...); >+ return std::exchange(m_function, nullptr)(std::forward<In>(in)...); > } > > private: >- mutable WTF::Function<Out(In...)> m_function; >+ Function<Out(In...)> m_function; > }; > > class CompletionHandlerCallingScope { >Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 234327) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,32 @@ >+2018-07-27 Alex Christensen <achristensen@webkit.org> >+ >+ Make CompletionHandler more const correct >+ https://bugs.webkit.org/show_bug.cgi?id=186543 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * dom/messageports/MessagePortChannel.cpp: >+ (WebCore::MessagePortChannel::checkRemotePortForActivity): >+ * dom/messageports/MessagePortChannelProviderImpl.cpp: >+ (WebCore::MessagePortChannelProviderImpl::checkRemotePortForActivity): >+ * loader/DocumentLoader.cpp: >+ (WebCore::DocumentLoader::responseReceived): >+ * loader/FrameLoader.cpp: >+ (WebCore::FrameLoader::loadURL): >+ (WebCore::FrameLoader::loadWithDocumentLoader): >+ (WebCore::FrameLoader::loadPostRequest): >+ * platform/network/cocoa/WebCoreNSURLSession.mm: >+ (WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived): >+ * workers/service/server/RegistrationDatabase.cpp: >+ (WebCore::RegistrationDatabase::pushChanges): >+ (WebCore::RegistrationDatabase::clearAll): >+ * workers/service/server/SWServer.cpp: >+ (WebCore::SWServer::matchAll): >+ * workers/service/server/SWServer.h: >+ * workers/service/server/SWServerWorker.cpp: >+ (WebCore::SWServerWorker::matchAll): >+ * workers/service/server/SWServerWorker.h: >+ > 2018-07-27 Myles C. Maxfield <mmaxfield@apple.com> > > [WIN] Crash when trying to access store pages >Index: Source/WebCore/dom/messageports/MessagePortChannel.cpp >=================================================================== >--- Source/WebCore/dom/messageports/MessagePortChannel.cpp (revision 234327) >+++ Source/WebCore/dom/messageports/MessagePortChannel.cpp (working copy) >@@ -207,7 +207,7 @@ void MessagePortChannel::checkRemotePort > return; > } > >- auto outerCallback = CompletionHandler<void(MessagePortChannelProvider::HasActivity)> { [this, protectedThis = makeRef(*this), callback = WTFMove(callback)] (MessagePortChannelProvider::HasActivity hasActivity) { >+ auto outerCallback = CompletionHandler<void(MessagePortChannelProvider::HasActivity)> { [this, protectedThis = makeRef(*this), callback = WTFMove(callback)] (MessagePortChannelProvider::HasActivity hasActivity) mutable { > if (hasActivity == MessagePortChannelProvider::HasActivity::Yes) { > callback(hasActivity); > return; >Index: Source/WebCore/dom/messageports/MessagePortChannelProviderImpl.cpp >=================================================================== >--- Source/WebCore/dom/messageports/MessagePortChannelProviderImpl.cpp (revision 234327) >+++ Source/WebCore/dom/messageports/MessagePortChannelProviderImpl.cpp (working copy) >@@ -102,7 +102,7 @@ void MessagePortChannelProviderImpl::tak > > void MessagePortChannelProviderImpl::checkRemotePortForActivity(const MessagePortIdentifier& remoteTarget, CompletionHandler<void(HasActivity)>&& outerCallback) > { >- auto callback = CompletionHandler<void(HasActivity)> { [outerCallback = WTFMove(outerCallback)](HasActivity hasActivity) { >+ auto callback = CompletionHandler<void(HasActivity)> { [outerCallback = WTFMove(outerCallback)](HasActivity hasActivity) mutable { > ASSERT(isMainThread()); > outerCallback(hasActivity); > } }; >Index: Source/WebCore/loader/DocumentLoader.cpp >=================================================================== >--- Source/WebCore/loader/DocumentLoader.cpp (revision 234327) >+++ Source/WebCore/loader/DocumentLoader.cpp (working copy) >@@ -832,7 +832,7 @@ void DocumentLoader::responseReceived(co > RefPtr<SubresourceLoader> mainResourceLoader = this->mainResourceLoader(); > if (mainResourceLoader) > mainResourceLoader->markInAsyncResponsePolicyCheck(); >- frameLoader()->checkContentPolicy(m_response, [this, protectedThis = makeRef(*this), mainResourceLoader = WTFMove(mainResourceLoader), completionHandler = completionHandlerCaller.release()](PolicyAction policy) { >+ frameLoader()->checkContentPolicy(m_response, [this, protectedThis = makeRef(*this), mainResourceLoader = WTFMove(mainResourceLoader), completionHandler = completionHandlerCaller.release()] (PolicyAction policy) mutable { > continueAfterContentPolicy(policy); > if (mainResourceLoader) > mainResourceLoader->didReceiveResponsePolicy(); >Index: Source/WebCore/loader/FrameLoader.cpp >=================================================================== >--- Source/WebCore/loader/FrameLoader.cpp (revision 234327) >+++ Source/WebCore/loader/FrameLoader.cpp (working copy) >@@ -1366,7 +1366,7 @@ void FrameLoader::loadURL(FrameLoadReque > > if (!targetFrame && !frameName.isEmpty()) { > action = action.copyWithShouldOpenExternalURLsPolicy(shouldOpenExternalURLsPolicyToApply(m_frame, frameLoadRequest)); >- policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinue shouldContinue) { >+ policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinue shouldContinue) mutable { > continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy); > completionHandler(); > }); >@@ -1400,7 +1400,7 @@ void FrameLoader::loadURL(FrameLoadReque > if (isSystemPreview) > request.setSystemPreviewRect(frameLoadRequest.systemPreviewRect()); > #endif >- loadWithNavigationAction(request, action, lockHistory, newLoadType, WTFMove(formState), allowNavigationToInvalidURL, [this, isRedirect, sameURL, newLoadType, protectedFrame = makeRef(m_frame), completionHandler = completionHandlerCaller.release()] { >+ loadWithNavigationAction(request, action, lockHistory, newLoadType, WTFMove(formState), allowNavigationToInvalidURL, [this, isRedirect, sameURL, newLoadType, protectedFrame = makeRef(m_frame), completionHandler = completionHandlerCaller.release()] () mutable { > if (isRedirect) { > m_quickRedirectComing = false; > if (m_provisionalDocumentLoader) >@@ -1595,7 +1595,7 @@ void FrameLoader::loadWithDocumentLoader > return; > } > >- policyChecker().checkNavigationPolicy(ResourceRequest(loader->request()), ResourceResponse { } /* redirectResponse */, loader, WTFMove(formState), [this, protectedFrame = makeRef(m_frame), allowNavigationToInvalidURL, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, ShouldContinue shouldContinue) { >+ policyChecker().checkNavigationPolicy(ResourceRequest(loader->request()), ResourceResponse { } /* redirectResponse */, loader, WTFMove(formState), [this, protectedFrame = makeRef(m_frame), allowNavigationToInvalidURL, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, ShouldContinue shouldContinue) mutable { > continueLoadAfterNavigationPolicy(request, formState.get(), shouldContinue, allowNavigationToInvalidURL); > completionHandler(); > }); >@@ -2915,7 +2915,7 @@ void FrameLoader::loadPostRequest(FrameL > return; > } > >- policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(workingResourceRequest), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = WTFMove(completionHandler)] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinue shouldContinue) { >+ policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(workingResourceRequest), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = WTFMove(completionHandler)] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinue shouldContinue) mutable { > continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy); > completionHandler(); > }); >@@ -2924,7 +2924,7 @@ void FrameLoader::loadPostRequest(FrameL > > // must grab this now, since this load may stop the previous load and clear this flag > bool isRedirect = m_quickRedirectComing; >- loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, WTFMove(formState), allowNavigationToInvalidURL, [this, isRedirect, protectedFrame = makeRef(m_frame), completionHandler = WTFMove(completionHandler)] { >+ loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, WTFMove(formState), allowNavigationToInvalidURL, [this, isRedirect, protectedFrame = makeRef(m_frame), completionHandler = WTFMove(completionHandler)] () mutable { > if (isRedirect) { > m_quickRedirectComing = false; > if (m_provisionalDocumentLoader) >Index: Source/WebCore/workers/service/server/RegistrationDatabase.cpp >=================================================================== >--- Source/WebCore/workers/service/server/RegistrationDatabase.cpp (revision 234327) >+++ Source/WebCore/workers/service/server/RegistrationDatabase.cpp (working copy) >@@ -278,9 +278,7 @@ void RegistrationDatabase::pushChanges(V > if (!completionHandler) > return; > >- callOnMainThread([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ callOnMainThread(WTFMove(completionHandler)); > }); > } > >@@ -292,9 +290,7 @@ void RegistrationDatabase::clearAll(Comp > SQLiteFileSystem::deleteDatabaseFile(m_databaseFilePath); > SQLiteFileSystem::deleteEmptyDatabaseDirectory(m_databaseDirectory); > >- callOnMainThread([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ callOnMainThread(WTFMove(completionHandler)); > }); > } > >Index: Source/WebCore/workers/service/server/SWServer.cpp >=================================================================== >--- Source/WebCore/workers/service/server/SWServer.cpp (revision 234327) >+++ Source/WebCore/workers/service/server/SWServer.cpp (working copy) >@@ -414,7 +414,7 @@ void SWServer::didFinishActivation(SWSer > } > > // https://w3c.github.io/ServiceWorker/#clients-getall >-void SWServer::matchAll(SWServerWorker& worker, const ServiceWorkerClientQueryOptions& options, const ServiceWorkerClientsMatchAllCallback& callback) >+void SWServer::matchAll(SWServerWorker& worker, const ServiceWorkerClientQueryOptions& options, ServiceWorkerClientsMatchAllCallback&& callback) > { > // FIXME: Support reserved client filtering. > // FIXME: Support WindowClient additional properties. >Index: Source/WebCore/workers/service/server/SWServer.h >=================================================================== >--- Source/WebCore/workers/service/server/SWServer.h (revision 234327) >+++ Source/WebCore/workers/service/server/SWServer.h (working copy) >@@ -156,7 +156,7 @@ public: > void didFinishInstall(const std::optional<ServiceWorkerJobDataIdentifier>&, SWServerWorker&, bool wasSuccessful); > void didFinishActivation(SWServerWorker&); > void workerContextTerminated(SWServerWorker&); >- void matchAll(SWServerWorker&, const ServiceWorkerClientQueryOptions&, const ServiceWorkerClientsMatchAllCallback&); >+ void matchAll(SWServerWorker&, const ServiceWorkerClientQueryOptions&, ServiceWorkerClientsMatchAllCallback&&); > void claim(SWServerWorker&); > > WEBCORE_EXPORT void serverToContextConnectionCreated(SWServerToContextConnection&); >Index: Source/WebCore/workers/service/server/SWServerWorker.cpp >=================================================================== >--- Source/WebCore/workers/service/server/SWServerWorker.cpp (revision 234327) >+++ Source/WebCore/workers/service/server/SWServerWorker.cpp (working copy) >@@ -131,9 +131,9 @@ std::optional<ServiceWorkerClientData> S > return m_server.serviceWorkerClientWithOriginByID(origin(), clientId); > } > >-void SWServerWorker::matchAll(const ServiceWorkerClientQueryOptions& options, const ServiceWorkerClientsMatchAllCallback& callback) >+void SWServerWorker::matchAll(const ServiceWorkerClientQueryOptions& options, ServiceWorkerClientsMatchAllCallback&& callback) > { >- return m_server.matchAll(*this, options, callback); >+ return m_server.matchAll(*this, options, WTFMove(callback)); > } > > void SWServerWorker::claim() >Index: Source/WebCore/workers/service/server/SWServerWorker.h >=================================================================== >--- Source/WebCore/workers/service/server/SWServerWorker.h (revision 234327) >+++ Source/WebCore/workers/service/server/SWServerWorker.h (working copy) >@@ -92,7 +92,7 @@ public: > void didFinishActivation(); > void contextTerminated(); > WEBCORE_EXPORT std::optional<ServiceWorkerClientData> findClientByIdentifier(const ServiceWorkerClientIdentifier&) const; >- void matchAll(const ServiceWorkerClientQueryOptions&, const ServiceWorkerClientsMatchAllCallback&); >+ void matchAll(const ServiceWorkerClientQueryOptions&, ServiceWorkerClientsMatchAllCallback&&); > void claim(); > void setScriptResource(URL&&, ServiceWorkerContextData::ImportedScript&&); > >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 234327) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,46 @@ >+2018-07-27 Alex Christensen <achristensen@webkit.org> >+ >+ Make CompletionHandler more const correct >+ https://bugs.webkit.org/show_bug.cgi?id=186543 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/PingLoad.cpp: >+ (WebKit::PingLoad::willPerformHTTPRedirection): >+ * NetworkProcess/cache/CacheStorageEngine.cpp: >+ (WebKit::CacheStorage::Engine::clearAllCaches): >+ * UIProcess/Automation/SimulatedInputDispatcher.cpp: >+ (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): >+ * UIProcess/Automation/WebAutomationSession.cpp: >+ (WebKit::WebAutomationSession::simulateMouseInteraction): >+ (WebKit::WebAutomationSession::simulateKeyboardInteraction): >+ * UIProcess/Cocoa/AutomationSessionClient.mm: >+ (WebKit::AutomationSessionClient::requestNewPageWithOptions): >+ (WebKit::AutomationSessionClient::requestSwitchToPage): >+ (WebKit::AutomationSessionClient::requestHideWindowOfPage): >+ (WebKit::AutomationSessionClient::requestRestoreWindowOfPage): >+ * UIProcess/Cocoa/UIDelegate.mm: >+ (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): >+ (WebKit::UIDelegate::UIClient::createNewPage): >+ (WebKit::UIDelegate::UIClient::runJavaScriptAlert): >+ (WebKit::UIDelegate::UIClient::runJavaScriptConfirm): >+ (WebKit::UIDelegate::UIClient::runJavaScriptPrompt): >+ (WebKit::UIDelegate::UIClient::requestStorageAccessConfirm): >+ (WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest): >+ (WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel): >+ (WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest): >+ (WebKit::UIDelegate::UIClient::runOpenPanel): >+ * UIProcess/WebPageProxy.cpp: >+ (WebKit::WebPageProxy::createNewPage): >+ (WebKit::WebPageProxy::webGLPolicyForURL): >+ (WebKit::WebPageProxy::resolveWebGLPolicyForURL): >+ (WebKit::WebPageProxy::getWindowFrame): >+ * UIProcess/WebResourceLoadStatisticsStore.cpp: >+ (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): >+ (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): >+ (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): >+ (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): >+ > 2018-07-27 Alex Christensen <achristensen@webkit.org> > > Add RefCounted CompletionHandler wrapping abstraction for sending policy decisions back to WebProcess >Index: Source/WebKit/NetworkProcess/PingLoad.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/PingLoad.cpp (revision 234327) >+++ Source/WebKit/NetworkProcess/PingLoad.cpp (working copy) >@@ -93,7 +93,7 @@ void PingLoad::loadRequest(ResourceReque > > void PingLoad::willPerformHTTPRedirection(ResourceResponse&& redirectResponse, ResourceRequest&& request, RedirectCompletionHandler&& completionHandler) > { >- m_networkLoadChecker->checkRedirection(ResourceRequest { }, WTFMove(request), WTFMove(redirectResponse), nullptr, [this, completionHandler = WTFMove(completionHandler)](auto&& result) { >+ m_networkLoadChecker->checkRedirection(ResourceRequest { }, WTFMove(request), WTFMove(redirectResponse), nullptr, [this, completionHandler = WTFMove(completionHandler)] (auto&& result) mutable { > if (!result.has_value()) { > completionHandler({ }); > this->didFinish(result.error()); >Index: Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp (revision 234327) >+++ Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp (working copy) >@@ -540,9 +540,7 @@ void Engine::clearAllCachesFromDisk(Comp > if (WebCore::FileSystem::fileIsDirectory(filename, WebCore::FileSystem::ShouldFollowSymbolicLinks::No)) > deleteDirectoryRecursively(filename); > } >- RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ RunLoop::main().dispatch(WTFMove(completionHandler)); > }); > } > >@@ -591,9 +589,7 @@ void Engine::deleteDirectoryRecursivelyO > m_ioQueue->dispatch([path = path.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable { > deleteDirectoryRecursively(path); > >- RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ RunLoop::main().dispatch(WTFMove(completionHandler)); > }); > } > >Index: Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.cpp >=================================================================== >--- Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.cpp (revision 234327) >+++ Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.cpp (working copy) >@@ -389,7 +389,7 @@ void ResourceLoadStatisticsMemoryStore:: > > RunLoop::main().dispatch([store = makeRef(m_store), subFramePrimaryDomain = subFramePrimaryDomain.isolatedCopy(), topFramePrimaryDomain = topFramePrimaryDomain.isolatedCopy(), frameID, pageID, completionHandler = WTFMove(completionHandler)]() mutable { > store->callHasStorageAccessForFrameHandler(subFramePrimaryDomain, topFramePrimaryDomain, frameID, pageID, [store = store.copyRef(), completionHandler = WTFMove(completionHandler)](bool result) mutable { >- store->statisticsQueue().dispatch([completionHandler = WTFMove(completionHandler), result] { >+ store->statisticsQueue().dispatch([completionHandler = WTFMove(completionHandler), result] () mutable { > completionHandler(result); > }); > }); >@@ -495,7 +495,7 @@ void ResourceLoadStatisticsMemoryStore:: > > RunLoop::main().dispatch([subFramePrimaryDomain = subFramePrimaryDomain.isolatedCopy(), topFramePrimaryDomain = topFramePrimaryDomain.isolatedCopy(), frameID, pageID, store = makeRef(m_store), callback = WTFMove(callback)]() mutable { > store->callGrantStorageAccessHandler(subFramePrimaryDomain, topFramePrimaryDomain, frameID, pageID, [callback = WTFMove(callback), store = store.copyRef()](bool value) mutable { >- store->statisticsQueue().dispatch([callback = WTFMove(callback), value] { >+ store->statisticsQueue().dispatch([callback = WTFMove(callback), value] () mutable { > callback(value); > }); > }); >@@ -1068,8 +1068,8 @@ void ResourceLoadStatisticsMemoryStore:: > } > > RunLoop::main().dispatch([this, store = makeRef(m_store), domainsToPartition = crossThreadCopy(domainsToPartition), domainsToBlock = crossThreadCopy(domainsToBlock), domainsToNeitherPartitionNorBlock = crossThreadCopy(domainsToNeitherPartitionNorBlock), completionHandler = WTFMove(completionHandler)] () mutable { >- store->callUpdatePrevalentDomainsToPartitionOrBlockCookiesHandler(domainsToPartition, domainsToBlock, domainsToNeitherPartitionNorBlock, ShouldClearFirst::No, [this, store = store.copyRef(), completionHandler = WTFMove(completionHandler)]() mutable { >- store->statisticsQueue().dispatch([this, completionHandler = WTFMove(completionHandler)] { >+ store->callUpdatePrevalentDomainsToPartitionOrBlockCookiesHandler(domainsToPartition, domainsToBlock, domainsToNeitherPartitionNorBlock, ShouldClearFirst::No, [this, store = store.copyRef(), completionHandler = WTFMove(completionHandler)] () mutable { >+ store->statisticsQueue().dispatch([this, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(); > > #if !RELEASE_LOG_DISABLED >Index: Source/WebKit/UIProcess/WebFrameProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebFrameProxy.cpp (revision 234327) >+++ Source/WebKit/UIProcess/WebFrameProxy.cpp (working copy) >@@ -182,7 +182,7 @@ WebFramePolicyListenerProxy& WebFramePro > { > if (m_activeListener) > m_activeListener->ignore(); >- m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap) { >+ m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap) mutable { > completionHandler(action, policies, swap); > m_activeListener = nullptr; > }); >Index: Source/WebKit/UIProcess/WebPageProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebPageProxy.cpp (revision 234327) >+++ Source/WebKit/UIProcess/WebPageProxy.cpp (working copy) >@@ -4267,7 +4267,7 @@ void WebPageProxy::createNewPage(const F > > auto mainFrameURL = m_mainFrame->url(); > >- m_uiClient->createNewPage(*this, WTFMove(originatingFrameInfo), WTFMove(request), WTFMove(windowFeatures), WTFMove(navigationActionData), [this, protectedThis = makeRef(*this), mainFrameURL, request, reply = WTFMove(reply)](RefPtr<WebPageProxy> newPage) { >+ m_uiClient->createNewPage(*this, WTFMove(originatingFrameInfo), WTFMove(request), WTFMove(windowFeatures), WTFMove(navigationActionData), [this, protectedThis = makeRef(*this), mainFrameURL, request, reply = WTFMove(reply)] (RefPtr<WebPageProxy> newPage) mutable { > if (!newPage) { > reply(0, { }); > return; >@@ -4448,7 +4448,7 @@ void WebPageProxy::unavailablePluginButt > void WebPageProxy::webGLPolicyForURL(URL&& url, Messages::WebPageProxy::WebGLPolicyForURL::DelayedReply&& reply) > { > if (m_navigationClient) { >- m_navigationClient->webGLLoadPolicy(*this, url, [reply = WTFMove(reply)](WebGLLoadPolicy policy) { >+ m_navigationClient->webGLLoadPolicy(*this, url, [reply = WTFMove(reply)] (WebGLLoadPolicy policy) mutable { > reply(static_cast<uint32_t>(policy)); > }); > } else >@@ -4458,7 +4458,7 @@ void WebPageProxy::webGLPolicyForURL(URL > void WebPageProxy::resolveWebGLPolicyForURL(URL&& url, Messages::WebPageProxy::ResolveWebGLPolicyForURL::DelayedReply&& reply) > { > if (m_navigationClient) { >- m_navigationClient->resolveWebGLLoadPolicy(*this, url, [reply = WTFMove(reply)](WebGLLoadPolicy policy) { >+ m_navigationClient->resolveWebGLLoadPolicy(*this, url, [reply = WTFMove(reply)] (WebGLLoadPolicy policy) mutable { > reply(static_cast<uint32_t>(policy)); > }); > } else >@@ -4508,7 +4508,7 @@ void WebPageProxy::setWindowFrame(const > > void WebPageProxy::getWindowFrame(Messages::WebPageProxy::GetWindowFrame::DelayedReply&& reply) > { >- m_uiClient->windowFrame(*this, [this, protectedThis = makeRef(*this), reply = WTFMove(reply)] (FloatRect frame) { >+ m_uiClient->windowFrame(*this, [this, protectedThis = makeRef(*this), reply = WTFMove(reply)] (FloatRect frame) mutable { > reply(m_pageClient.convertToUserSpace(frame)); > }); > } >Index: Source/WebKit/UIProcess/WebProcessProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebProcessProxy.cpp (revision 234327) >+++ Source/WebKit/UIProcess/WebProcessProxy.cpp (working copy) >@@ -930,7 +930,7 @@ void WebProcessProxy::fetchWebsiteData(P > auto token = throttler().backgroundActivityToken(); > RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), ProcessSuspension, "%p - WebProcessProxy is taking a background assertion because the Web process is fetching Website data", this); > >- connection()->sendWithReply(Messages::WebProcess::FetchWebsiteData(sessionID, dataTypes), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID](auto reply) { >+ connection()->sendWithReply(Messages::WebProcess::FetchWebsiteData(sessionID, dataTypes), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID] (auto reply) mutable { > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(sessionID); > UNUSED_PARAM(this); >@@ -952,7 +952,7 @@ void WebProcessProxy::deleteWebsiteData( > auto token = throttler().backgroundActivityToken(); > RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), ProcessSuspension, "%p - WebProcessProxy is taking a background assertion because the Web process is deleting Website data", this); > >- connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteData(sessionID, dataTypes, modifiedSince), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID](auto reply) { >+ connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteData(sessionID, dataTypes, modifiedSince), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID] (auto reply) mutable { > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(this); > UNUSED_PARAM(sessionID); >@@ -969,7 +969,7 @@ void WebProcessProxy::deleteWebsiteDataF > auto token = throttler().backgroundActivityToken(); > RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), ProcessSuspension, "%p - WebProcessProxy is taking a background assertion because the Web process is deleting Website data for several origins", this); > >- connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, origins), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID](auto reply) { >+ connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, origins), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID] (auto reply) mutable { > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(this); > UNUSED_PARAM(sessionID); >Index: Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp (revision 234327) >+++ Source/WebKit/UIProcess/WebResourceLoadStatisticsStore.cpp (working copy) >@@ -144,9 +144,7 @@ inline void WebResourceLoadStatisticsSto > inline void WebResourceLoadStatisticsStore::postTaskReply(WTF::Function<void()>&& reply) > { > ASSERT(!RunLoop::isMain()); >- RunLoop::main().dispatch([reply = WTFMove(reply)] { >- reply(); >- }); >+ RunLoop::main().dispatch(WTFMove(reply)); > } > > void WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore() >@@ -176,9 +174,7 @@ void WebResourceLoadStatisticsStore::set > postTask([this, value, completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->setResourceLoadStatisticsDebugMode(value); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -189,9 +185,7 @@ void WebResourceLoadStatisticsStore::set > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->setPrevalentResourceForDebugMode(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -234,13 +228,13 @@ void WebResourceLoadStatisticsStore::has > > postTask([this, subFramePrimaryDomain = isolatedPrimaryDomain(subFrameHost), topFramePrimaryDomain = isolatedPrimaryDomain(topFrameHost), frameID, pageID, completionHandler = WTFMove(completionHandler)] () mutable { > if (!m_memoryStore) { >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(false); > }); > return; > } > m_memoryStore->hasStorageAccess(subFramePrimaryDomain, topFramePrimaryDomain, frameID, pageID, [completionHandler = WTFMove(completionHandler)](bool hasStorageAccess) mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler), hasStorageAccess] { >+ postTaskReply([completionHandler = WTFMove(completionHandler), hasStorageAccess] () mutable { > completionHandler(hasStorageAccess); > }); > }); >@@ -274,14 +268,14 @@ void WebResourceLoadStatisticsStore::req > > postTask([this, subFramePrimaryDomain = crossThreadCopy(subFramePrimaryDomain), topFramePrimaryDomain = crossThreadCopy(topFramePrimaryDomain), frameID, pageID, promptEnabled, completionHandler = WTFMove(completionHandler)] () mutable { > if (!m_memoryStore) { >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(StorageAccessStatus::CannotRequestAccess); > }); > return; > } > > m_memoryStore->requestStorageAccess(WTFMove(subFramePrimaryDomain), WTFMove(topFramePrimaryDomain), frameID, pageID, promptEnabled, [completionHandler = WTFMove(completionHandler)](StorageAccessStatus status) mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler), status] { >+ postTaskReply([completionHandler = WTFMove(completionHandler), status] () mutable { > completionHandler(status); > }); > }); >@@ -306,14 +300,14 @@ void WebResourceLoadStatisticsStore::gra > ASSERT(RunLoop::isMain()); > postTask([this, subFrameHost = crossThreadCopy(subFrameHost), topFrameHost = crossThreadCopy(topFrameHost), frameID, pageID, userWasPromptedNow, completionHandler = WTFMove(completionHandler)] () mutable { > if (!m_memoryStore) { >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(false); > }); > return; > } > > m_memoryStore->grantStorageAccess(WTFMove(subFrameHost), WTFMove(topFrameHost), frameID, pageID, userWasPromptedNow, [completionHandler = WTFMove(completionHandler)](bool wasGrantedAccess) mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler), wasGrantedAccess] { >+ postTaskReply([completionHandler = WTFMove(completionHandler), wasGrantedAccess] () mutable { > completionHandler(wasGrantedAccess); > }); > }); >@@ -420,9 +414,7 @@ void WebResourceLoadStatisticsStore::log > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->logUserInteraction(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -438,9 +430,7 @@ void WebResourceLoadStatisticsStore::log > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->logNonRecentUserInteraction(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -456,9 +446,7 @@ void WebResourceLoadStatisticsStore::cle > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->clearUserInteraction(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -473,7 +461,7 @@ void WebResourceLoadStatisticsStore::has > > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)] () mutable { > bool hadUserInteraction = m_memoryStore ? m_memoryStore->hasHadUserInteraction(primaryDomain) : false; >- postTaskReply([hadUserInteraction, completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([hadUserInteraction, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(hadUserInteraction); > }); > }); >@@ -491,9 +479,7 @@ void WebResourceLoadStatisticsStore::set > postTask([this, primaryDomain = isolatedPrimaryDomain(url), seconds, completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->setLastSeen(primaryDomain, seconds); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -509,9 +495,7 @@ void WebResourceLoadStatisticsStore::set > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->setPrevalentResource(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -527,9 +511,7 @@ void WebResourceLoadStatisticsStore::set > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->setVeryPrevalentResource(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -544,7 +526,7 @@ void WebResourceLoadStatisticsStore::isP > > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)] () mutable { > bool isPrevalentResource = m_memoryStore ? m_memoryStore->isPrevalentResource(primaryDomain) : false; >- postTaskReply([isPrevalentResource, completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([isPrevalentResource, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(isPrevalentResource); > }); > }); >@@ -561,7 +543,7 @@ void WebResourceLoadStatisticsStore::isV > > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)] () mutable { > bool isVeryPrevalentResource = m_memoryStore ? m_memoryStore->isVeryPrevalentResource(primaryDomain) : false; >- postTaskReply([isVeryPrevalentResource, completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([isVeryPrevalentResource, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(isVeryPrevalentResource); > }); > }); >@@ -573,7 +555,7 @@ void WebResourceLoadStatisticsStore::isR > > postTask([this, subFramePrimaryDomain = isolatedPrimaryDomain(subFrame), topFramePrimaryDomain = isolatedPrimaryDomain(topFrame), completionHandler = WTFMove(completionHandler)] () mutable { > bool isRegisteredAsSubFrameUnder = m_memoryStore ? m_memoryStore->isRegisteredAsSubFrameUnder(subFramePrimaryDomain, topFramePrimaryDomain) : false; >- postTaskReply([isRegisteredAsSubFrameUnder, completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([isRegisteredAsSubFrameUnder, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(isRegisteredAsSubFrameUnder); > }); > }); >@@ -585,7 +567,7 @@ void WebResourceLoadStatisticsStore::isR > > postTask([this, hostRedirectedFromPrimaryDomain = isolatedPrimaryDomain(hostRedirectedFrom), hostRedirectedToPrimaryDomain = isolatedPrimaryDomain(hostRedirectedTo), completionHandler = WTFMove(completionHandler)] () mutable { > bool isRegisteredAsRedirectingTo = m_memoryStore ? m_memoryStore->isRegisteredAsRedirectingTo(hostRedirectedFromPrimaryDomain, hostRedirectedToPrimaryDomain) : false; >- postTaskReply([isRegisteredAsRedirectingTo, completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([isRegisteredAsRedirectingTo, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(isRegisteredAsRedirectingTo); > }); > }); >@@ -603,9 +585,7 @@ void WebResourceLoadStatisticsStore::cle > postTask([this, primaryDomain = isolatedPrimaryDomain(url), completionHandler = WTFMove(completionHandler)]() mutable { > if (m_memoryStore) > m_memoryStore->clearPrevalentResource(primaryDomain); >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -633,7 +613,7 @@ void WebResourceLoadStatisticsStore::isG > > postTask([this, completionHandler = WTFMove(completionHandler), primaryDomain = isolatedPrimaryDomain(url)] () mutable { > bool isGrandFathered = m_memoryStore ? m_memoryStore->isGrandfathered(primaryDomain) : false; >- postTaskReply([isGrandFathered, completionHandler = WTFMove(completionHandler)] { >+ postTaskReply([isGrandFathered, completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(isGrandFathered); > }); > }); >@@ -724,15 +704,11 @@ void WebResourceLoadStatisticsStore::sch > > postTask([this, completionHandler = WTFMove(completionHandler)] () mutable { > if (!m_memoryStore) { >- postTaskReply([completionHandler = WTFMove(completionHandler)]() { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > return; > } >- m_memoryStore->updateCookiePartitioning([completionHandler = WTFMove(completionHandler)]() mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler)]() { >- completionHandler(); >- }); >+ m_memoryStore->updateCookiePartitioning([completionHandler = WTFMove(completionHandler)] () mutable { >+ postTaskReply(WTFMove(completionHandler)); > }); > }); > } >@@ -743,16 +719,12 @@ void WebResourceLoadStatisticsStore::sch > ASSERT(RunLoop::isMain()); > postTask([this, domainsToPartition = crossThreadCopy(domainsToPartition), domainsToBlock = crossThreadCopy(domainsToBlock), domainsToNeitherPartitionNorBlock = crossThreadCopy(domainsToNeitherPartitionNorBlock), shouldClearFirst, completionHandler = WTFMove(completionHandler)] () mutable { > if (!m_memoryStore) { >- postTaskReply([completionHandler = WTFMove(completionHandler)]() { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > return; > } > > m_memoryStore->updateCookiePartitioningForDomains(domainsToPartition, domainsToBlock, domainsToNeitherPartitionNorBlock, shouldClearFirst, [completionHandler = WTFMove(completionHandler)]() mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler)]() { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > }); > } >@@ -763,16 +735,12 @@ void WebResourceLoadStatisticsStore::sch > ASSERT(RunLoop::isMain()); > postTask([this, domains = crossThreadCopy(domains), completionHandler = WTFMove(completionHandler)] () mutable { > if (!m_memoryStore) { >- postTaskReply([completionHandler = WTFMove(completionHandler)]() { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > return; > } > > m_memoryStore->clearPartitioningStateForDomains(domains, [completionHandler = WTFMove(completionHandler)]() mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler)]() { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > }); > } >@@ -791,13 +759,11 @@ void WebResourceLoadStatisticsStore::sch > void WebResourceLoadStatisticsStore::scheduleClearInMemory(CompletionHandler<void()>&& completionHandler) > { > ASSERT(RunLoop::isMain()); >- postTask([this, completionHandler = WTFMove(completionHandler)]() mutable { >+ postTask([this, completionHandler = WTFMove(completionHandler)] () mutable { > if (m_memoryStore) > m_memoryStore->clear(); > >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >@@ -811,9 +777,7 @@ void WebResourceLoadStatisticsStore::sch > m_persistentStorage->clear(); > > CompletionHandler<void()> callCompletionHandlerOnMainThread = [completionHandler = WTFMove(completionHandler)]() mutable { >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }; > > if (shouldGrandfather == ShouldGrandfather::Yes && m_memoryStore) >@@ -918,9 +882,7 @@ void WebResourceLoadStatisticsStore::res > if (m_memoryStore) > m_memoryStore->resetParametersToDefaultValues(); > >- postTaskReply([completionHandler = WTFMove(completionHandler)] { >- completionHandler(); >- }); >+ postTaskReply(WTFMove(completionHandler)); > }); > } > >Index: Source/WebKit/UIProcess/API/mac/WKView.mm >=================================================================== >--- Source/WebKit/UIProcess/API/mac/WKView.mm (revision 234327) >+++ Source/WebKit/UIProcess/API/mac/WKView.mm (working copy) >@@ -887,7 +887,7 @@ - (void)maybeInstallIconLoadingClient > { > RetainPtr<_WKLinkIconParameters> parameters = adoptNS([[_WKLinkIconParameters alloc] _initWithLinkIcon:linkIcon]); > >- [m_wkView performSelector:delegateSelector() withObject:parameters.get() withObject:BlockPtr<void (IconLoadCompletionHandler)>::fromCallable([completionHandler = WTFMove(completionHandler)](IconLoadCompletionHandler loadCompletionHandler) { >+ [m_wkView performSelector:delegateSelector() withObject:parameters.get() withObject:BlockPtr<void(IconLoadCompletionHandler)>::fromCallable([completionHandler = WTFMove(completionHandler)](IconLoadCompletionHandler loadCompletionHandler) mutable { > ASSERT(RunLoop::isMain()); > if (loadCompletionHandler) { > completionHandler([loadCompletionHandler = BlockPtr<void (NSData *)>(loadCompletionHandler)](API::Data* data, WebKit::CallbackBase::Error error) { >Index: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.cpp >=================================================================== >--- Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.cpp (revision 234327) >+++ Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.cpp (working copy) >@@ -229,7 +229,7 @@ void SimulatedInputDispatcher::transitio > SimulatedInputSourceState& a = inputSource.state; > SimulatedInputSourceState& b = newState; > >- AutomationCompletionHandler eventDispatchFinished = [&inputSource, &newState, completionHandler = WTFMove(completionHandler)](std::optional<AutomationCommandError> error) { >+ AutomationCompletionHandler eventDispatchFinished = [&inputSource, &newState, completionHandler = WTFMove(completionHandler)](std::optional<AutomationCommandError> error) mutable { > if (error) { > completionHandler(error); > return; >Index: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp >=================================================================== >--- Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp (revision 234327) >+++ Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp (working copy) >@@ -1458,7 +1458,7 @@ void WebAutomationSession::simulateMouse > } > > // Bridge the flushed callback to our command's completion handler. >- auto mouseEventsFlushedCallback = [completionHandler = WTFMove(completionHandler)](std::optional<AutomationCommandError> error) { >+ auto mouseEventsFlushedCallback = [completionHandler = WTFMove(completionHandler)](std::optional<AutomationCommandError> error) mutable { > completionHandler(error); > }; > >@@ -1482,7 +1482,7 @@ void WebAutomationSession::simulateMouse > void WebAutomationSession::simulateKeyboardInteraction(WebPageProxy& page, KeyboardInteraction interaction, WTF::Variant<VirtualKey, CharKey>&& key, CompletionHandler<void(std::optional<AutomationCommandError>)>&& completionHandler) > { > // Bridge the flushed callback to our command's completion handler. >- auto keyboardEventsFlushedCallback = [completionHandler = WTFMove(completionHandler)](std::optional<AutomationCommandError> error) { >+ auto keyboardEventsFlushedCallback = [completionHandler = WTFMove(completionHandler)](std::optional<AutomationCommandError> error) mutable { > completionHandler(error); > }; > >Index: Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.mm (revision 234327) >+++ Source/WebKit/UIProcess/Cocoa/AutomationSessionClient.mm (working copy) >@@ -90,11 +90,11 @@ static inline _WKAutomationSessionBrowsi > void AutomationSessionClient::requestNewPageWithOptions(WebAutomationSession& session, API::AutomationSessionBrowsingContextOptions options, CompletionHandler<void(WebKit::WebPageProxy*)>&& completionHandler) > { > if (m_delegateMethods.requestNewWebViewWithOptions) { >- [m_delegate.get() _automationSession:wrapper(session) requestNewWebViewWithOptions:toAPI(options) completionHandler:BlockPtr<void(WKWebView *)>::fromCallable([completionHandler = WTFMove(completionHandler)](WKWebView *webView) { >+ [m_delegate.get() _automationSession:wrapper(session) requestNewWebViewWithOptions:toAPI(options) completionHandler:BlockPtr<void(WKWebView *)>::fromCallable([completionHandler = WTFMove(completionHandler)](WKWebView *webView) mutable { > completionHandler(webView->_page.get()); > }).get()]; > } else if (m_delegateMethods.requestNewPageWithOptions) { >- [m_delegate.get() _automationSession:wrapper(session) requestNewPageWithOptions:toAPI(options) completionHandler:BlockPtr<void(WKPageRef)>::fromCallable([completionHandler = WTFMove(completionHandler)](WKPageRef page) { >+ [m_delegate.get() _automationSession:wrapper(session) requestNewPageWithOptions:toAPI(options) completionHandler:BlockPtr<void(WKPageRef)>::fromCallable([completionHandler = WTFMove(completionHandler)](WKPageRef page) mutable { > completionHandler(toImpl(page)); > }).get()]; > } >@@ -107,7 +107,7 @@ void AutomationSessionClient::requestSwi > return; > } > >- auto completionBlock = BlockPtr<void()>::fromCallable([completionHandler = WTFMove(completionHandler)]() { completionHandler(); }); >+ auto completionBlock = BlockPtr<void()>::fromCallable(WTFMove(completionHandler)); > if (m_delegateMethods.requestSwitchToWebView) > [m_delegate.get() _automationSession:wrapper(session) requestSwitchToWebView:fromWebPageProxy(page) completionHandler:completionBlock.get()]; > else if (m_delegateMethods.requestSwitchToPage) >@@ -121,7 +121,7 @@ void AutomationSessionClient::requestHid > return; > } > >- auto completionBlock = BlockPtr<void()>::fromCallable([completionHandler = WTFMove(completionHandler)]() { completionHandler(); }); >+ auto completionBlock = BlockPtr<void()>::fromCallable(WTFMove(completionHandler)); > if (m_delegateMethods.requestHideWindowOfWebView) > [m_delegate.get() _automationSession:wrapper(session) requestHideWindowOfWebView:fromWebPageProxy(page) completionHandler:completionBlock.get()]; > else if (m_delegateMethods.requestHideWindowOfPage) >@@ -135,7 +135,7 @@ void AutomationSessionClient::requestRes > return; > } > >- auto completionBlock = BlockPtr<void()>::fromCallable([completionHandler = WTFMove(completionHandler)]() { completionHandler(); }); >+ auto completionBlock = BlockPtr<void()>::fromCallable(WTFMove(completionHandler)); > if (m_delegateMethods.requestRestoreWindowOfWebView) > [m_delegate.get() _automationSession:wrapper(session) requestRestoreWindowOfWebView:fromWebPageProxy(page) completionHandler:completionBlock.get()]; > else if (m_delegateMethods.requestRestoreWindowOfPage) >@@ -149,7 +149,7 @@ void AutomationSessionClient::requestMax > return; > } > >- auto completionBlock = BlockPtr<void()>::fromCallable([completionHandler = WTFMove(completionHandler)]() { completionHandler(); }); >+ auto completionBlock = BlockPtr<void()>::fromCallable(WTFMove(completionHandler)); > if (m_delegateMethods.requestMaximizeWindowOfWebView) > [m_delegate.get() _automationSession:wrapper(session) requestMaximizeWindowOfWebView:fromWebPageProxy(page) completionHandler:completionBlock.get()]; > else if (m_delegateMethods.requestMaximizeWindowOfPage) >Index: Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.mm (revision 234327) >+++ Source/WebKit/UIProcess/Cocoa/IconLoadingDelegate.mm (working copy) >@@ -87,7 +87,7 @@ void IconLoadingDelegate::IconLoadingCli > > RetainPtr<_WKLinkIconParameters> parameters = adoptNS([[_WKLinkIconParameters alloc] _initWithLinkIcon:linkIcon]); > >- [delegate webView:m_iconLoadingDelegate.m_webView shouldLoadIconWithParameters:parameters.get() completionHandler:BlockPtr<void (IconLoadCompletionHandler loadCompletionHandler)>::fromCallable([completionHandler = WTFMove(completionHandler)] (IconLoadCompletionHandler loadCompletionHandler) { >+ [delegate webView:m_iconLoadingDelegate.m_webView shouldLoadIconWithParameters:parameters.get() completionHandler:BlockPtr<void (IconLoadCompletionHandler loadCompletionHandler)>::fromCallable([completionHandler = WTFMove(completionHandler)] (IconLoadCompletionHandler loadCompletionHandler) mutable { > ASSERT(RunLoop::isMain()); > if (loadCompletionHandler) { > completionHandler([loadCompletionHandler = Block_copy(loadCompletionHandler)](API::Data* data, WebKit::CallbackBase::Error error) { >Index: Source/WebKit/UIProcess/Cocoa/UIDelegate.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/UIDelegate.mm (revision 234327) >+++ Source/WebKit/UIProcess/Cocoa/UIDelegate.mm (working copy) >@@ -193,7 +193,7 @@ void UIDelegate::ContextMenuClient::menu > > if (m_uiDelegate.m_delegateMethods.webViewGetContextMenuFromProposedMenuForElementUserInfoCompletionHandler) { > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:getContextMenuFromProposedMenu:forElement:userInfo:completionHandler:)); >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView getContextMenuFromProposedMenu:menu forElement:contextMenuElementInfo.get() userInfo:userInfo ? static_cast<id <NSSecureCoding>>(userInfo->wrapper()) : nil completionHandler:BlockPtr<void(NSMenu *)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (NSMenu *menu) { >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView getContextMenuFromProposedMenu:menu forElement:contextMenuElementInfo.get() userInfo:userInfo ? static_cast<id <NSSecureCoding>>(userInfo->wrapper()) : nil completionHandler:BlockPtr<void(NSMenu *)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (NSMenu *menu) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > checker->didCallCompletionHandler(); >@@ -235,7 +235,7 @@ void UIDelegate::UIClient::createNewPage > if (m_uiDelegate.m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeaturesAsync) { > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:completionHandler:)); > >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:wrapper(apiNavigationAction) windowFeatures:wrapper(apiWindowFeatures) completionHandler:BlockPtr<void (WKWebView *)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker), relatedWebView = RetainPtr<WKWebView>(m_uiDelegate.m_webView)](WKWebView *webView) { >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:wrapper(apiNavigationAction) windowFeatures:wrapper(apiWindowFeatures) completionHandler:BlockPtr<void(WKWebView *)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker), relatedWebView = RetainPtr<WKWebView>(m_uiDelegate.m_webView)] (WKWebView *webView) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > checker->didCallCompletionHandler(); >@@ -277,7 +277,7 @@ void UIDelegate::UIClient::runJavaScript > return; > } > >- RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)); >+ auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)); > [delegate webView:m_uiDelegate.m_webView runJavaScriptAlertPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void ()>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] { > if (checker->completionHandlerHasBeenCalled()) > return; >@@ -299,8 +299,8 @@ void UIDelegate::UIClient::runJavaScript > return; > } > >- RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)); >- [delegate webView:m_uiDelegate.m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void (BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)](BOOL result) { >+ auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)); >+ [delegate webView:m_uiDelegate.m_webView runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void (BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (BOOL result) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > completionHandler(result); >@@ -322,7 +322,7 @@ void UIDelegate::UIClient::runJavaScript > } > > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)); >- [delegate webView:m_uiDelegate.m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void (NSString *)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)](NSString *result) { >+ [delegate webView:m_uiDelegate.m_webView runJavaScriptTextInputPanelWithPrompt:message defaultText:defaultValue initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void (NSString *)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (NSString *result) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > completionHandler(result); >@@ -344,7 +344,7 @@ void UIDelegate::UIClient::requestStorag > } > > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:requestStorageAccessPanelForDomain:underCurrentDomain:completionHandler:)); >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView requestStorageAccessPanelForDomain:requestingDomain underCurrentDomain:currentDomain completionHandler:BlockPtr<void(BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)](BOOL result) { >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView requestStorageAccessPanelForDomain:requestingDomain underCurrentDomain:currentDomain completionHandler:BlockPtr<void(BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (BOOL result) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > completionHandler(result); >@@ -362,7 +362,7 @@ void UIDelegate::UIClient::decidePolicyF > return; > > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:requestGeolocationPermissionForFrame:decisionHandler:)); >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView requestGeolocationPermissionForFrame:wrapper(API::FrameInfo::create(frame, securityOrigin.securityOrigin())) decisionHandler:BlockPtr<void(BOOL)>::fromCallable([completionHandler = std::exchange(completionHandler, nullptr), checker = WTFMove(checker)](BOOL result) { >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView requestGeolocationPermissionForFrame:wrapper(API::FrameInfo::create(frame, securityOrigin.securityOrigin())) decisionHandler:BlockPtr<void(BOOL)>::fromCallable([completionHandler = std::exchange(completionHandler, nullptr), checker = WTFMove(checker)] (BOOL result) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > checker->didCallCompletionHandler(); >@@ -401,7 +401,7 @@ void UIDelegate::UIClient::runBeforeUnlo > } > > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:)); >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView runBeforeUnloadConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void (BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)](BOOL result) { >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView runBeforeUnloadConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin())) completionHandler:BlockPtr<void (BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (BOOL result) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > completionHandler(result); >@@ -806,7 +806,7 @@ void UIDelegate::UIClient::decidePolicyF > return completionHandler(false); > > auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:)); >- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView requestNotificationPermissionForSecurityOrigin:wrapper(securityOrigin) decisionHandler:BlockPtr<void(BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)](BOOL result) { >+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView requestNotificationPermissionForSecurityOrigin:wrapper(securityOrigin) decisionHandler:BlockPtr<void(BOOL)>::fromCallable([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (BOOL result) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > checker->didCallCompletionHandler(); >@@ -824,17 +824,16 @@ bool UIDelegate::UIClient::runOpenPanel( > return false; > > auto frame = API::FrameInfo::create(*webFrameProxy, securityOriginData.securityOrigin()); >- RefPtr<WebOpenPanelResultListenerProxy> resultListener = listener; > >- RefPtr<CompletionHandlerCallChecker> checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:)); >+ auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:)); > >- [delegate webView:m_uiDelegate.m_webView runOpenPanelWithParameters:wrapper(*openPanelParameters) initiatedByFrame:wrapper(frame) completionHandler:[checker, resultListener](NSArray *URLs) { >+ [delegate webView:m_uiDelegate.m_webView runOpenPanelWithParameters:wrapper(*openPanelParameters) initiatedByFrame:wrapper(frame) completionHandler:BlockPtr<void(NSArray *)>::fromCallable([checker = WTFMove(checker), listener = WTFMove(listener)] (NSArray *URLs) mutable { > if (checker->completionHandlerHasBeenCalled()) > return; > checker->didCallCompletionHandler(); > > if (!URLs) { >- resultListener->cancel(); >+ listener->cancel(); > return; > } > >@@ -842,8 +841,8 @@ bool UIDelegate::UIClient::runOpenPanel( > for (NSURL *url in URLs) > filenames.append(url.path); > >- resultListener->chooseFiles(filenames); >- }]; >+ listener->chooseFiles(filenames); >+ }).get()]; > > return true; > } >Index: Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (revision 234327) >+++ Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (working copy) >@@ -150,7 +150,7 @@ void NetworkProcessProxy::fetchWebsiteDa > uint64_t callbackID = generateCallbackID(); > RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), ProcessSuspension, "%p - NetworkProcessProxy is taking a background assertion because the Network process is fetching Website data", this); > >- m_pendingFetchWebsiteDataCallbacks.add(callbackID, [this, token = throttler().backgroundActivityToken(), completionHandler = WTFMove(completionHandler), sessionID](WebsiteData websiteData) { >+ m_pendingFetchWebsiteDataCallbacks.add(callbackID, [this, token = throttler().backgroundActivityToken(), completionHandler = WTFMove(completionHandler), sessionID] (WebsiteData websiteData) mutable { > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(this); > UNUSED_PARAM(sessionID); >@@ -167,7 +167,7 @@ void NetworkProcessProxy::deleteWebsiteD > auto callbackID = generateCallbackID(); > RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), ProcessSuspension, "%p - NetworkProcessProxy is taking a background assertion because the Network process is deleting Website data", this); > >- m_pendingDeleteWebsiteDataCallbacks.add(callbackID, [this, token = throttler().backgroundActivityToken(), completionHandler = WTFMove(completionHandler), sessionID] { >+ m_pendingDeleteWebsiteDataCallbacks.add(callbackID, [this, token = throttler().backgroundActivityToken(), completionHandler = WTFMove(completionHandler), sessionID] () mutable { > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(this); > UNUSED_PARAM(sessionID); >@@ -185,7 +185,7 @@ void NetworkProcessProxy::deleteWebsiteD > uint64_t callbackID = generateCallbackID(); > RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), ProcessSuspension, "%p - NetworkProcessProxy is taking a background assertion because the Network process is deleting Website data for several origins", this); > >- m_pendingDeleteWebsiteDataForOriginsCallbacks.add(callbackID, [this, token = throttler().backgroundActivityToken(), completionHandler = WTFMove(completionHandler), sessionID] { >+ m_pendingDeleteWebsiteDataForOriginsCallbacks.add(callbackID, [this, token = throttler().backgroundActivityToken(), completionHandler = WTFMove(completionHandler), sessionID] () mutable { > #if RELEASE_LOG_DISABLED > UNUSED_PARAM(this); > UNUSED_PARAM(sessionID); >@@ -432,7 +432,7 @@ void NetworkProcessProxy::updatePrevalen > } > > auto callbackId = generateCallbackID(); >- auto addResult = m_updatePartitionOrBlockCookiesCallbackMap.add(callbackId, [protectedThis = makeRef(*this), token = throttler().backgroundActivityToken(), callback = WTFMove(callback)] { >+ auto addResult = m_updatePartitionOrBlockCookiesCallbackMap.add(callbackId, [protectedThis = makeRef(*this), token = throttler().backgroundActivityToken(), callback = WTFMove(callback)] () mutable { > callback(); > }); > ASSERT_UNUSED(addResult, addResult.isNewEntry); >Index: Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp (revision 234327) >+++ Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp (working copy) >@@ -178,17 +178,17 @@ void PluginProcessProxy::pluginProcessCr > } > > m_pendingFetchWebsiteDataRequests.clear(); >- for (const auto& callback : m_pendingFetchWebsiteDataCallbacks.values()) >+ for (auto&& callback : m_pendingFetchWebsiteDataCallbacks.values()) > callback({ }); > m_pendingFetchWebsiteDataCallbacks.clear(); > > m_pendingDeleteWebsiteDataRequests.clear(); >- for (const auto& callback : m_pendingDeleteWebsiteDataCallbacks.values()) >+ for (auto&& callback : m_pendingDeleteWebsiteDataCallbacks.values()) > callback(); > m_pendingDeleteWebsiteDataRequests.clear(); > > m_pendingDeleteWebsiteDataForHostNamesRequests.clear(); >- for (const auto& callback : m_pendingDeleteWebsiteDataForHostNamesCallbacks.values()) >+ for (auto&& callback : m_pendingDeleteWebsiteDataForHostNamesCallbacks.values()) > callback(); > m_pendingDeleteWebsiteDataForHostNamesCallbacks.clear(); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
saam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186543
:
342470
|
342483
|
342513
|
342567
|
342609
|
342635
| 345959