Diff
Modified: trunk/Source/WebKit/ChangeLog (272701 => 272702)
--- trunk/Source/WebKit/ChangeLog 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/ChangeLog 2021-02-11 03:06:39 UTC (rev 272702)
@@ -1,3 +1,91 @@
+2021-02-10 Alex Christensen <achristen...@webkit.org>
+
+ Stop using GenericCallback from WebPageProxy
+ https://bugs.webkit.org/show_bug.cgi?id=221653
+
+ Reviewed by Chris Dumez.
+
+ There are still two uses in the DrawingAreaProxy implementations, but those are quite tangled and deserve their own patch.
+
+ * UIProcess/API/APIAttachment.cpp:
+ (API::Attachment::updateAttributes):
+ * UIProcess/API/APIAttachment.h:
+ * UIProcess/API/C/WKPage.cpp:
+ (CompletionHandler<void):
+ (WKPageRenderTreeExternalRepresentation):
+ (WKPageGetSourceForFrame):
+ (WKPageGetContentsAsString):
+ (WKPageGetBytecodeProfile):
+ (WKPageGetSamplingProfilerOutput):
+ (WTF::Function<void): Deleted.
+ * UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
+ (API::Attachment::updateFromSerializedRepresentation):
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
+ (-[WKWebView _getContentsAsStringWithCompletionHandler:]):
+ (-[WKWebView _getContentsOfAllFramesAsStringWithCompletionHandler:]):
+ * UIProcess/API/Cocoa/_WKAttachment.mm:
+ (-[_WKAttachment setFileWrapper:contentType:completion:]):
+ * UIProcess/Cocoa/WebViewImpl.mm:
+ (WebKit::WebViewImpl::startSpeaking):
+ * UIProcess/GenericCallback.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::dispatchActivityStateChange):
+ (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
+ (WebKit::WebPageProxy::getSourceForFrame):
+ (WebKit::WebPageProxy::getContentsAsString):
+ (WebKit::WebPageProxy::getBytecodeProfile):
+ (WebKit::WebPageProxy::getSamplingProfilerOutput):
+ (WebKit::WebPageProxy::getSelectionOrContentsAsString):
+ (WebKit::WebPageProxy::didCommitLoadForFrame):
+ (WebKit::WebPageProxy::didFailLoadForFrame):
+ (WebKit::WebPageProxy::resetState):
+ (WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
+ (WebKit::WebPageProxy::insertAttachment):
+ (WebKit::WebPageProxy::updateAttachmentAttributes):
+ (WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):
+ (WebKit::WebPageProxy::clearLoadDependentCallbacks): Deleted.
+ (WebKit::WebPageProxy::voidCallback): Deleted.
+ (WebKit::WebPageProxy::stringCallback): Deleted.
+ (WebKit::WebPageProxy::invalidateStringCallback): Deleted.
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView _shareForWebView:]):
+ (-[WKContentView _defineForWebView:]):
+ (-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
+ (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::applyAutocorrection):
+ * UIProcess/mac/WKTextFinderClient.mm:
+ (-[WKTextFinderClient getSelectedText:]):
+ * WebProcess/Notifications/NotificationPermissionRequestManager.h:
+ * WebProcess/WebCoreSupport/WebNotificationClient.h:
+ * WebProcess/WebPage/DrawingArea.h:
+ (WebKit::DrawingArea::activityStateDidChange):
+ * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
+ * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+ (WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::reinitializeWebPage):
+ (WebKit::WebPage::setActivityState):
+ (WebKit::WebPage::getContentsAsString):
+ (WebKit::WebPage::getRenderTreeExternalRepresentation):
+ (WebKit::WebPage::getSelectionOrContentsAsString):
+ (WebKit::WebPage::getSourceForFrame):
+ (WebKit::WebPage::getBytecodeProfile):
+ (WebKit::WebPage::getSamplingProfilerOutput):
+ (WebKit::WebPage::insertAttachment):
+ (WebKit::WebPage::updateAttachmentAttributes):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::applyAutocorrection):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::handleActivityStateChangeCallbacks):
+ (WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
+
2021-02-10 Simon Fraser <simon.fra...@apple.com>
REGRESSION (r269824) IOSurface allocation failure causes crash in RemoteLayerBackingStore::display()
Modified: trunk/Source/WebKit/UIProcess/API/APIAttachment.cpp (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/API/APIAttachment.cpp 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/API/APIAttachment.cpp 2021-02-11 03:06:39 UTC (rev 272702)
@@ -49,15 +49,15 @@
{
}
-void Attachment::updateAttributes(Function<void(WebKit::CallbackBase::Error)>&& callback)
+void Attachment::updateAttributes(CompletionHandler<void()>&& callback)
{
if (!m_webPage) {
- callback(WebKit::CallbackBase::Error::OwnerWasInvalidated);
+ callback();
return;
}
if (m_webPage->willUpdateAttachmentAttributes(*this) == WebKit::WebPageProxy::ShouldUpdateAttachmentAttributes::No) {
- callback(WebKit::CallbackBase::Error::None);
+ callback();
return;
}
Modified: trunk/Source/WebKit/UIProcess/API/APIAttachment.h (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/API/APIAttachment.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/API/APIAttachment.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -55,7 +55,7 @@
enum class InsertionState : uint8_t { NotInserted, Inserted };
const WTF::String& identifier() const { return m_identifier; }
- void updateAttributes(Function<void(WebKit::CallbackBase::Error)>&&);
+ void updateAttributes(CompletionHandler<void()>&&);
void invalidate();
bool isValid() const { return !!m_webPage; }
Modified: trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2021-02-11 03:06:39 UTC (rev 272702)
@@ -2534,36 +2534,36 @@
}
#endif
-static WTF::Function<void (const String&, WebKit::CallbackBase::Error)> toGenericCallbackFunction(void* context, void (*callback)(WKStringRef, WKErrorRef, void*))
+static CompletionHandler<void(const String&)> toStringCallback(void* context, void(*callback)(WKStringRef, WKErrorRef, void*))
{
- return [context, callback](const String& returnValue, WebKit::CallbackBase::Error error) {
- callback(toAPI(API::String::create(returnValue).ptr()), error != WebKit::CallbackBase::Error::None ? toAPI(API::Error::create().ptr()) : 0, context);
+ return [context, callback] (const String& returnValue) {
+ callback(toAPI(API::String::create(returnValue).ptr()), nullptr, context);
};
}
void WKPageRenderTreeExternalRepresentation(WKPageRef pageRef, void* context, WKPageRenderTreeExternalRepresentationFunction callback)
{
- toImpl(pageRef)->getRenderTreeExternalRepresentation(toGenericCallbackFunction(context, callback));
+ toImpl(pageRef)->getRenderTreeExternalRepresentation(toStringCallback(context, callback));
}
void WKPageGetSourceForFrame(WKPageRef pageRef, WKFrameRef frameRef, void* context, WKPageGetSourceForFrameFunction callback)
{
- toImpl(pageRef)->getSourceForFrame(toImpl(frameRef), toGenericCallbackFunction(context, callback));
+ toImpl(pageRef)->getSourceForFrame(toImpl(frameRef), toStringCallback(context, callback));
}
void WKPageGetContentsAsString(WKPageRef pageRef, void* context, WKPageGetContentsAsStringFunction callback)
{
- toImpl(pageRef)->getContentsAsString(ContentAsStringIncludesChildFrames::No, toGenericCallbackFunction(context, callback));
+ toImpl(pageRef)->getContentsAsString(ContentAsStringIncludesChildFrames::No, toStringCallback(context, callback));
}
void WKPageGetBytecodeProfile(WKPageRef pageRef, void* context, WKPageGetBytecodeProfileFunction callback)
{
- toImpl(pageRef)->getBytecodeProfile(toGenericCallbackFunction(context, callback));
+ toImpl(pageRef)->getBytecodeProfile(toStringCallback(context, callback));
}
void WKPageGetSamplingProfilerOutput(WKPageRef pageRef, void* context, WKPageGetSamplingProfilerOutputFunction callback)
{
- toImpl(pageRef)->getSamplingProfilerOutput(toGenericCallbackFunction(context, callback));
+ toImpl(pageRef)->getSamplingProfilerOutput(toStringCallback(context, callback));
}
void WKPageGetSelectionAsWebArchiveData(WKPageRef pageRef, void* context, WKPageGetSelectionAsWebArchiveDataFunction callback)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/APIAttachmentCocoa.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/APIAttachmentCocoa.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/APIAttachmentCocoa.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -187,7 +187,7 @@
return;
setFileWrapperAndUpdateContentType(fileWrapper, contentType);
- m_webPage->updateAttachmentAttributes(*this, [] (auto) { });
+ m_webPage->updateAttachmentAttributes(*this, [] { });
}
void Attachment::setFileWrapperGenerator(Function<RetainPtr<NSFileWrapper>(void)>&& fileWrapperGenerator)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -2313,9 +2313,9 @@
auto identifier = createCanonicalUUIDString();
auto attachment = API::Attachment::create(identifier, *_page);
attachment->setFileWrapperAndUpdateContentType(fileWrapper, contentType);
- _page->insertAttachment(attachment.copyRef(), [capturedHandler = makeBlockPtr(completionHandler)] (WebKit::CallbackBase::Error error) {
+ _page->insertAttachment(attachment.copyRef(), [capturedHandler = makeBlockPtr(completionHandler)] {
if (capturedHandler)
- capturedHandler(error == WebKit::CallbackBase::Error::None);
+ capturedHandler(true);
});
#if HAVE(QUICKLOOK_THUMBNAILING)
_page->requestThumbnailWithFileWrapper(fileWrapper, identifier);
@@ -2561,25 +2561,15 @@
- (void)_getContentsAsStringWithCompletionHandler:(void (^)(NSString *, NSError *))completionHandler
{
- auto handler = makeBlockPtr(completionHandler);
-
- _page->getContentsAsString(WebKit::ContentAsStringIncludesChildFrames::No, [handler](String string, WebKit::CallbackBase::Error error) {
- if (error != WebKit::CallbackBase::Error::None) {
- // FIXME: Pipe a proper error in from the WebPageProxy.
- handler(nil, [NSError errorWithDomain:WKErrorDomain code:static_cast<int>(error) userInfo:nil]);
- } else
- handler(string, nil);
+ _page->getContentsAsString(WebKit::ContentAsStringIncludesChildFrames::No, [handler = makeBlockPtr(completionHandler)](String string) {
+ handler(string, nil);
});
}
- (void)_getContentsOfAllFramesAsStringWithCompletionHandler:(void (^)(NSString *))completionHandler
{
- auto handler = makeBlockPtr(completionHandler);
- _page->getContentsAsString(WebKit::ContentAsStringIncludesChildFrames::Yes, [handler](String string, WebKit::CallbackBase::Error error) {
- if (error != WebKit::CallbackBase::Error::None)
- handler(nil);
- else
- handler(string);
+ _page->getContentsAsString(WebKit::ContentAsStringIncludesChildFrames::Yes, [handler = makeBlockPtr(completionHandler)](String string) {
+ handler(string);
});
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -32,6 +32,7 @@
#import <WebCore/MIMETypeRegistry.h>
#import <WebCore/SharedBuffer.h>
#import <wtf/BlockPtr.h>
+#import <wtf/CompletionHandler.h>
#if PLATFORM(IOS_FAMILY)
#import <MobileCoreServices/MobileCoreServices.h>
@@ -139,14 +140,9 @@
// from the SPI client, the corresponding file path of the data is unknown, if it even exists at all.
_attachment->setFilePath({ });
_attachment->setFileWrapperAndUpdateContentType(fileWrapper, contentType);
- _attachment->updateAttributes([capturedBlock = makeBlockPtr(completionHandler)] (auto error) {
- if (!capturedBlock)
- return;
-
- if (error == WebKit::CallbackBase::Error::None)
+ _attachment->updateAttributes([capturedBlock = makeBlockPtr(completionHandler)] {
+ if (capturedBlock)
capturedBlock(nil);
- else
- capturedBlock([NSError errorWithDomain:WKErrorDomain code:UnspecifiedAttachmentErrorCode userInfo:nil]);
});
}
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -3162,9 +3162,7 @@
void WebViewImpl::startSpeaking()
{
ASSERT(hasProcessPrivilege(ProcessPrivilege::CanCommunicateWithWindowServer));
- m_page->getSelectionOrContentsAsString([](const String& string, WebKit::CallbackBase::Error error) {
- if (error != WebKit::CallbackBase::Error::None)
- return;
+ m_page->getSelectionOrContentsAsString([](const String& string) {
if (!string)
return;
Modified: trunk/Source/WebKit/UIProcess/GenericCallback.h (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/GenericCallback.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/GenericCallback.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -146,14 +146,6 @@
#endif
};
-template<typename APIReturnValueType, typename InternalReturnValueType = typename APITypeInfo<APIReturnValueType>::ImplType*>
-static typename GenericCallback<InternalReturnValueType>::CallbackFunction toGenericCallbackFunction(void* context, void (*callback)(APIReturnValueType, WKErrorRef, void*))
-{
- return [context, callback](InternalReturnValueType returnValue, CallbackBase::Error error) {
- callback(toAPI(returnValue), error != CallbackBase::Error::None ? toAPI(API::Error::create().ptr()) : 0, context);
- };
-}
-
typedef GenericCallback<> VoidCallback;
template<typename T>
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-02-11 03:06:39 UTC (rev 272702)
@@ -2016,11 +2016,13 @@
auto activityStateChangeID = m_activityStateChangeWantsSynchronousReply ? takeNextActivityStateChangeID() : static_cast<ActivityStateChangeID>(ActivityStateChangeAsynchronous);
- if (changed || activityStateChangeID != ActivityStateChangeAsynchronous || !m_nextActivityStateChangeCallbacks.isEmpty())
- send(Messages::WebPage::SetActivityState(m_activityState, activityStateChangeID, m_nextActivityStateChangeCallbacks));
+ if (changed || activityStateChangeID != ActivityStateChangeAsynchronous || !m_nextActivityStateChangeCallbacks.isEmpty()) {
+ sendWithAsyncReply(Messages::WebPage::SetActivityState(m_activityState, activityStateChangeID), [callbacks = std::exchange(m_nextActivityStateChangeCallbacks, { })] () mutable {
+ for (auto& callback : callbacks)
+ callback();
+ });
+ }
- m_nextActivityStateChangeCallbacks.clear();
-
// This must happen after the SetActivityState message is sent, to ensure the page visibility event can fire.
updateThrottleState();
@@ -4077,39 +4079,19 @@
});
}
-void WebPageProxy::getRenderTreeExternalRepresentation(WTF::Function<void (const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::getRenderTreeExternalRepresentation(CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getRenderTreeExternalRepresentation"_s));
- send(Messages::WebPage::GetRenderTreeExternalRepresentation(callbackID));
+ sendWithAsyncReply(Messages::WebPage::GetRenderTreeExternalRepresentation(), WTFMove(callback));
}
-void WebPageProxy::getSourceForFrame(WebFrameProxy* frame, WTF::Function<void (const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::getSourceForFrame(WebFrameProxy* frame, CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getSourceForFrame"_s));
- m_loadDependentStringCallbackIDs.add(callbackID);
- send(Messages::WebPage::GetSourceForFrame(frame->frameID(), callbackID));
+ sendWithAsyncReply(Messages::WebPage::GetSourceForFrame(frame->frameID()), WTFMove(callback));
}
-void WebPageProxy::getContentsAsString(ContentAsStringIncludesChildFrames includesChildFrames, WTF::Function<void(const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::getContentsAsString(ContentAsStringIncludesChildFrames includesChildFrames, CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getContentsAsString"_s));
- m_loadDependentStringCallbackIDs.add(callbackID);
- send(Messages::WebPage::GetContentsAsString(includesChildFrames, callbackID));
+ sendWithAsyncReply(Messages::WebPage::GetContentsAsString(includesChildFrames), WTFMove(callback));
}
#if PLATFORM(COCOA)
@@ -4129,28 +4111,14 @@
sendWithAsyncReply(Messages::WebPage::GetAllFrames(), WTFMove(completionHandler));
}
-void WebPageProxy::getBytecodeProfile(WTF::Function<void (const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::getBytecodeProfile(CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getBytecodeProfile"_s));
- m_loadDependentStringCallbackIDs.add(callbackID);
- send(Messages::WebPage::GetBytecodeProfile(callbackID));
+ sendWithAsyncReply(Messages::WebPage::GetBytecodeProfile(), WTFMove(callback));
}
-void WebPageProxy::getSamplingProfilerOutput(WTF::Function<void (const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::getSamplingProfilerOutput(CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getSamplingProfilerOutput"_s));
- m_loadDependentStringCallbackIDs.add(callbackID);
- send(Messages::WebPage::GetSamplingProfilerOutput(callbackID));
+ sendWithAsyncReply(Messages::WebPage::GetSamplingProfilerOutput(), WTFMove(callback));
}
static CompletionHandler<void(const IPC::DataReference& data)> toAPIDataCallback(CompletionHandler<void(API::Data*)>&& callback)
@@ -4167,15 +4135,9 @@
}
#endif
-void WebPageProxy::getSelectionOrContentsAsString(WTF::Function<void (const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::getSelectionOrContentsAsString(CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getSelectionOrContentsAsString"_s));
- send(Messages::WebPage::GetSelectionOrContentsAsString(callbackID));
+ sendWithAsyncReply(Messages::WebPage::GetSelectionOrContentsAsString(), callback);
}
void WebPageProxy::getSelectionAsWebArchiveData(CompletionHandler<void(API::Data*)>&& callback)
@@ -4580,15 +4542,6 @@
m_provisionalPage = nullptr;
}
-void WebPageProxy::clearLoadDependentCallbacks()
-{
- HashSet<CallbackID> loadDependentStringCallbackIDs = WTFMove(m_loadDependentStringCallbackIDs);
- for (auto& callbackID : loadDependentStringCallbackIDs) {
- if (auto callback = m_callbacks.take<StringCallback>(callbackID))
- callback->invalidate();
- }
-}
-
#if ENABLE(RESOURCE_LOAD_STATISTICS)
static OptionSet<CrossSiteNavigationDataTransfer::Flag> checkIfNavigationContainsDataTransfer(const SecurityOriginData requesterOrigin, const ResourceRequest& currentRequest)
{
@@ -4663,8 +4616,6 @@
pageClient().resetSecureInputState();
#endif
- clearLoadDependentCallbacks();
-
frame->didCommitLoad(mimeType, webCertificateInfo, containsPluginDocument);
if (frame->isMainFrame()) {
@@ -4827,8 +4778,6 @@
if (frame->isMainFrame() && navigationID)
navigation = navigationState().navigation(navigationID);
- clearLoadDependentCallbacks();
-
auto transaction = m_pageLoadState.transaction();
bool isMainFrame = frame->isMainFrame();
@@ -7114,45 +7063,6 @@
}
}
-void WebPageProxy::voidCallback(CallbackID callbackID)
-{
- auto callback = m_callbacks.take<VoidCallback>(callbackID);
- if (!callback) {
- // FIXME: Log error or assert.
- return;
- }
-
- callback->performCallback();
-}
-
-void WebPageProxy::stringCallback(const String& resultString, CallbackID callbackID)
-{
- auto callback = m_callbacks.take<StringCallback>(callbackID);
- if (!callback) {
- // FIXME: Log error or assert.
- // this can validly happen if a load invalidated the callback, though
- return;
- }
-
- m_loadDependentStringCallbackIDs.remove(callbackID);
-
- callback->performCallbackWithReturnValue(resultString.impl());
-}
-
-void WebPageProxy::invalidateStringCallback(CallbackID callbackID)
-{
- auto callback = m_callbacks.take<StringCallback>(callbackID);
- if (!callback) {
- // FIXME: Log error or assert.
- // this can validly happen if a load invalidated the callback, though
- return;
- }
-
- m_loadDependentStringCallbackIDs.remove(callbackID);
-
- callback->invalidate();
-}
-
void WebPageProxy::editorStateChanged(const EditorState& editorState)
{
updateEditorState(editorState);
@@ -7556,9 +7466,6 @@
break;
}
- m_callbacks.invalidate(error);
- m_loadDependentStringCallbackIDs.clear();
-
for (auto& editCommand : std::exchange(m_editCommandSet, { }))
editCommand->invalidate();
@@ -9233,7 +9140,7 @@
#endif
-void WebPageProxy::installActivityStateChangeCompletionHandler(Function<void()>&& completionHandler)
+void WebPageProxy::installActivityStateChangeCompletionHandler(CompletionHandler<void()>&& completionHandler)
{
if (!hasRunningProcess()) {
completionHandler();
@@ -9240,11 +9147,7 @@
return;
}
- auto voidCallback = VoidCallback::create([completionHandler = WTFMove(completionHandler)] (auto) {
- completionHandler();
- }, m_process->throttler().backgroundActivity("WebPageProxy::installActivityStateChangeCompletionHandler"_s));
- auto callbackID = m_callbacks.put(WTFMove(voidCallback));
- m_nextActivityStateChangeCallbacks.append(callbackID);
+ m_nextActivityStateChangeCallbacks.append(WTFMove(completionHandler));
}
void WebPageProxy::imageOrMediaDocumentSizeChanged(const WebCore::IntSize& newSize)
@@ -9618,32 +9521,20 @@
return m_attachmentIdentifierToAttachmentMap.get(identifier);
}
-void WebPageProxy::insertAttachment(Ref<API::Attachment>&& attachment, Function<void(CallbackBase::Error)>&& callback)
+void WebPageProxy::insertAttachment(Ref<API::Attachment>&& attachment, CompletionHandler<void()>&& callback)
{
- if (!hasRunningProcess()) {
- callback(CallbackBase::Error::OwnerWasInvalidated);
- return;
- }
-
auto attachmentIdentifier = attachment->identifier();
- auto callbackID = m_callbacks.put(WTFMove(callback), m_process->throttler().backgroundActivity("WebPageProxy::insertAttachment"_s));
- send(Messages::WebPage::InsertAttachment(attachmentIdentifier, attachment->fileSizeForDisplay(), attachment->fileName(), attachment->contentType(), callbackID));
+ sendWithAsyncReply(Messages::WebPage::InsertAttachment(attachmentIdentifier, attachment->fileSizeForDisplay(), attachment->fileName(), attachment->contentType()), WTFMove(callback));
m_attachmentIdentifierToAttachmentMap.set(attachmentIdentifier, WTFMove(attachment));
}
-void WebPageProxy::updateAttachmentAttributes(const API::Attachment& attachment, Function<void(CallbackBase::Error)>&& callback)
+void WebPageProxy::updateAttachmentAttributes(const API::Attachment& attachment, CompletionHandler<void()>&& callback)
{
- if (!hasRunningProcess()) {
- callback(CallbackBase::Error::OwnerWasInvalidated);
- return;
- }
-
IPC::SharedBufferDataReference dataReference;
if (auto data = ""
dataReference = { *data };
- auto callbackID = m_callbacks.put(WTFMove(callback), m_process->throttler().backgroundActivity("WebPageProxy::updateAttachmentAttributes"_s));
- send(Messages::WebPage::UpdateAttachmentAttributes(attachment.identifier(), attachment.fileSizeForDisplay(), attachment.contentType(), attachment.fileName(), WTFMove(dataReference), callbackID));
+ sendWithAsyncReply(Messages::WebPage::UpdateAttachmentAttributes(attachment.identifier(), attachment.fileSizeForDisplay(), attachment.contentType(), attachment.fileName(), WTFMove(dataReference)), WTFMove(callback));
}
#if HAVE(QUICKLOOK_THUMBNAILING)
@@ -9799,7 +9690,7 @@
pageClient().didInsertAttachment(attachment.get(), source);
if (!attachment->isEmpty() && hasEnclosingImage)
- updateAttachmentAttributes(attachment.get(), [] (auto) { });
+ updateAttachmentAttributes(attachment.get(), [] { });
}
void WebPageProxy::didRemoveAttachmentWithIdentifier(const String& identifier)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -380,8 +380,6 @@
enum class UndoOrRedo : bool;
enum class WebContentMode : uint8_t;
-typedef GenericCallback<const String&> StringCallback;
-
#if HAVE(VISIBILITY_PROPAGATION_VIEW)
using LayerHostingContextID = uint32_t;
#endif
@@ -764,7 +762,7 @@
void updateSelectionWithExtentPoint(const WebCore::IntPoint, bool isInteractingWithFocusedElement, RespectSelectionAnchor, CompletionHandler<void(bool)>&&);
void updateSelectionWithExtentPointAndBoundary(const WebCore::IntPoint, WebCore::TextGranularity, bool isInteractingWithFocusedElement, CompletionHandler<void(bool)>&&);
void requestAutocorrectionData(const String& textForAutocorrection, CompletionHandler<void(WebAutocorrectionData)>&&);
- void applyAutocorrection(const String& correction, const String& originalText, WTF::Function<void (const String&, CallbackBase::Error)>&&);
+ void applyAutocorrection(const String& correction, const String& originalText, CompletionHandler<void(const String&)>&&);
bool applyAutocorrection(const String& correction, const String& originalText);
void requestAutocorrectionContext();
void handleAutocorrectionContext(const WebAutocorrectionContext&);
@@ -1114,12 +1112,12 @@
void didFailToFindString(const String&);
void didFindStringMatches(const String&, const Vector<Vector<WebCore::IntRect>>& matchRects, int32_t firstIndexAfterSelection);
- void getContentsAsString(ContentAsStringIncludesChildFrames, WTF::Function<void(const String&, CallbackBase::Error)>&&);
+ void getContentsAsString(ContentAsStringIncludesChildFrames, CompletionHandler<void(const String&)>&&);
#if PLATFORM(COCOA)
void getContentsAsAttributedString(CompletionHandler<void(const WebCore::AttributedString&)>&&);
#endif
- void getBytecodeProfile(WTF::Function<void (const String&, CallbackBase::Error)>&&);
- void getSamplingProfilerOutput(WTF::Function<void (const String&, CallbackBase::Error)>&&);
+ void getBytecodeProfile(CompletionHandler<void(const String&)>&&);
+ void getSamplingProfilerOutput(CompletionHandler<void(const String&)>&&);
#if ENABLE(MHTML)
void getContentsAsMHTMLData(CompletionHandler<void(API::Data*)>&&);
@@ -1126,10 +1124,10 @@
#endif
void getMainResourceDataOfFrame(WebFrameProxy*, CompletionHandler<void(API::Data*)>&&);
void getResourceDataFromFrame(WebFrameProxy&, API::URL*, CompletionHandler<void(API::Data*)>&&);
- void getRenderTreeExternalRepresentation(WTF::Function<void (const String&, CallbackBase::Error)>&&);
- void getSelectionOrContentsAsString(WTF::Function<void (const String&, CallbackBase::Error)>&&);
+ void getRenderTreeExternalRepresentation(CompletionHandler<void(const String&)>&&);
+ void getSelectionOrContentsAsString(CompletionHandler<void(const String&)>&&);
void getSelectionAsWebArchiveData(CompletionHandler<void(API::Data*)>&&);
- void getSourceForFrame(WebFrameProxy*, WTF::Function<void (const String&, CallbackBase::Error)>&&);
+ void getSourceForFrame(WebFrameProxy*, CompletionHandler<void(const String&)>&&);
void getWebArchiveOfFrame(WebFrameProxy*, CompletionHandler<void(API::Data*)>&&);
void runJavaScriptInMainFrame(WebCore::RunJavaScriptParameters&&, CompletionHandler<void(Expected<RefPtr<API::SerializedScriptValue>, WebCore::ExceptionDetails>&&)>&&);
void runJavaScriptInFrameInScriptWorld(WebCore::RunJavaScriptParameters&&, Optional<WebCore::FrameIdentifier>, API::ContentWorld&, CompletionHandler<void(Expected<RefPtr<API::SerializedScriptValue>, WebCore::ExceptionDetails>&&)>&&);
@@ -1477,7 +1475,7 @@
bool scrollingUpdatesDisabledForTesting();
- void installActivityStateChangeCompletionHandler(Function<void()>&&);
+ void installActivityStateChangeCompletionHandler(CompletionHandler<void()>&&);
#if USE(UNIFIED_TEXT_CHECKING)
void checkTextOfParagraph(const String& text, OptionSet<WebCore::TextCheckingType> checkingTypes, int32_t insertionPoint, CompletionHandler<void(Vector<WebCore::TextCheckingResult>&&)>&&);
@@ -1615,8 +1613,8 @@
#if ENABLE(ATTACHMENT_ELEMENT)
RefPtr<API::Attachment> attachmentForIdentifier(const String& identifier) const;
- void insertAttachment(Ref<API::Attachment>&&, Function<void(CallbackBase::Error)>&&);
- void updateAttachmentAttributes(const API::Attachment&, Function<void(CallbackBase::Error)>&&);
+ void insertAttachment(Ref<API::Attachment>&&, CompletionHandler<void()>&&);
+ void updateAttachmentAttributes(const API::Attachment&, CompletionHandler<void()>&&);
void serializedAttachmentDataForIdentifiers(const Vector<String>&, CompletionHandler<void(Vector<WebCore::SerializedAttachmentData>&&)>&&);
void registerAttachmentIdentifier(const String&);
void didInvalidateDataForAttachment(API::Attachment&);
@@ -2153,10 +2151,6 @@
void discardQueuedMouseEvents();
void didReceiveEvent(uint32_t opaqueType, bool handled);
-
- void voidCallback(CallbackID);
- void stringCallback(const String&, CallbackID);
- void invalidateStringCallback(CallbackID);
#if PLATFORM(MAC)
void didUpdateRenderingAfterCommittingLoad();
void fontAtSelectionCallback(const FontInfo&, double, bool, CallbackID);
@@ -2233,8 +2227,6 @@
RetainPtr<NSArray> m_dataDetectionResults;
#endif
- void clearLoadDependentCallbacks();
-
void performDragControllerAction(DragControllerAction, WebCore::DragData&, const String& dragStorageName, SandboxExtension::Handle&&, SandboxExtension::HandleArray&&);
void updateBackingStoreDiscardableState();
@@ -2484,9 +2476,6 @@
std::unique_ptr<WebAuthenticatorCoordinatorProxy> m_credentialsMessenger;
#endif
- CallbackMap m_callbacks;
- HashSet<CallbackID> m_loadDependentStringCallbackIDs;
-
HashSet<WebEditCommandProxy*> m_editCommandSet;
#if PLATFORM(COCOA)
@@ -2764,7 +2753,7 @@
OptionSet<WebCore::ActivityState::Flag> m_potentiallyChangedActivityStateFlags;
bool m_activityStateChangeWantsSynchronousReply { false };
- Vector<CallbackID> m_nextActivityStateChangeCallbacks;
+ Vector<CompletionHandler<void()>> m_nextActivityStateChangeCallbacks;
WebCore::MediaProducer::MediaStateFlags m_mediaState { WebCore::MediaProducer::IsNotPlaying };
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2021-02-11 03:06:39 UTC (rev 272702)
@@ -162,10 +162,6 @@
# Forms messages
WillSubmitForm(WebCore::FrameIdentifier frameID, WebCore::FrameIdentifier sourceFrameID, Vector<std::pair<String, String>> textFieldValues, uint64_t listenerID, WebKit::UserData userData)
- # Callback messages
- VoidCallback(WebKit::CallbackID callbackID)
- StringCallback(String resultString, WebKit::CallbackID callbackID)
- InvalidateStringCallback(WebKit::CallbackID callbackID)
#if PLATFORM(IOS_FAMILY)
InterpretKeyEvent(struct WebKit::EditorState state, bool isCharEvent) -> (bool handled) Synchronous
DidReceivePositionInformation(struct WebKit::InteractionInformationAtPosition information)
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -3226,10 +3226,7 @@
- (void)_shareForWebView:(id)sender
{
RetainPtr<WKContentView> view = self;
- _page->getSelectionOrContentsAsString([view](const String& string, WebKit::CallbackBase::Error error) {
- if (error != WebKit::CallbackBase::Error::None)
- return;
-
+ _page->getSelectionOrContentsAsString([view](const String& string) {
if (!view->_textInteractionAssistant || !string || view->_page->editorState().isMissingPostLayoutData)
return;
@@ -3805,9 +3802,7 @@
#endif
RetainPtr<WKContentView> view = self;
- _page->getSelectionOrContentsAsString([view](const String& string, WebKit::CallbackBase::Error error) {
- if (error != WebKit::CallbackBase::Error::None)
- return;
+ _page->getSelectionOrContentsAsString([view](const String& string) {
if (!string)
return;
@@ -3819,9 +3814,7 @@
{
RetainPtr<WKContentView> view = self;
RetainPtr<WKWebView> webView = _webView.get();
- _page->getSelectionOrContentsAsString([view, webView](const String& string, WebKit::CallbackBase::Error error) {
- if (error != WebKit::CallbackBase::Error::None)
- return;
+ _page->getSelectionOrContentsAsString([view, webView](const String& string) {
[webView _accessibilityDidGetSpeakSelectionContent:string];
if ([view respondsToSelector:@selector(accessibilitySpeakSelectionSetContent:)])
[view accessibilitySpeakSelectionSetContent:string];
@@ -4387,7 +4380,7 @@
return;
}
- _page->applyAutocorrection(correction, input, [view = retainPtr(self), completion = makeBlockPtr(completionHandler)](auto& string, auto error) {
+ _page->applyAutocorrection(correction, input, [view = retainPtr(self), completion = makeBlockPtr(completionHandler)](auto& string) {
if (completion)
completion(!string.isNull() ? [WKAutocorrectionRects autocorrectionRectsWithFirstCGRect:view->_autocorrectionData.textFirstRect lastCGRect:view->_autocorrectionData.textLastRect] : nil);
});
Modified: trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -430,15 +430,9 @@
sendWithAsyncReply(Messages::WebPage::RequestAutocorrectionData(textForAutocorrection), WTFMove(callback));
}
-void WebPageProxy::applyAutocorrection(const String& correction, const String& originalText, WTF::Function<void (const String&, CallbackBase::Error)>&& callbackFunction)
+void WebPageProxy::applyAutocorrection(const String& correction, const String& originalText, CompletionHandler<void(const String&)>&& callback)
{
- if (!hasRunningProcess()) {
- callbackFunction(String(), CallbackBase::Error::Unknown);
- return;
- }
-
- auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::applyAutocorrection"_s));
- m_process->send(Messages::WebPage::ApplyAutocorrection(correction, originalText, callbackID), m_webPageID);
+ sendWithAsyncReply(Messages::WebPage::ApplyAutocorrection(correction, originalText), WTFMove(callback));
}
bool WebPageProxy::applyAutocorrection(const String& correction, const String& originalText)
Modified: trunk/Source/WebKit/UIProcess/mac/WKTextFinderClient.mm (272701 => 272702)
--- trunk/Source/WebKit/UIProcess/mac/WKTextFinderClient.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/UIProcess/mac/WKTextFinderClient.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -243,7 +243,7 @@
{
void (^copiedCompletionHandler)(NSString *) = Block_copy(completionHandler);
- _page->getSelectionOrContentsAsString([copiedCompletionHandler] (const String& string, WebKit::CallbackBase::Error) {
+ _page->getSelectionOrContentsAsString([copiedCompletionHandler] (const String& string) {
copiedCompletionHandler(string);
Block_release(copiedCompletionHandler);
});
Modified: trunk/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -29,7 +29,6 @@
#include <WebCore/NotificationClient.h>
#include <WebCore/NotificationPermissionCallback.h>
#include <WebCore/SecurityOriginHash.h>
-#include <WebCore/VoidCallback.h>
#include <wtf/HashMap.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebNotificationClient.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebNotificationClient.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebNotificationClient.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -33,7 +33,6 @@
namespace WebCore {
class NotificationPermissionCallback;
class ScriptExecutionContext;
-class VoidCallback;
} // namespace WebCore
namespace WebKit {
Modified: trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp 2021-02-11 03:06:39 UTC (rev 272702)
@@ -385,7 +385,7 @@
return m_layerTreeHost->createDisplayRefreshMonitor(displayID);
}
-void DrawingAreaCoordinatedGraphics::activityStateDidChange(OptionSet<ActivityState::Flag> changed, ActivityStateChangeID, const Vector<CallbackID>&)
+void DrawingAreaCoordinatedGraphics::activityStateDidChange(OptionSet<ActivityState::Flag> changed, ActivityStateChangeID, CompletionHandler<void()>&& completionHandler)
{
if (changed & ActivityState::IsVisible) {
if (m_webPage.isVisible())
@@ -393,6 +393,7 @@
else
suspendPainting();
}
+ completionHandler();
}
void DrawingAreaCoordinatedGraphics::attachViewOverlayGraphicsLayer(GraphicsLayer* viewOverlayRootLayer)
Modified: trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -77,7 +77,7 @@
RefPtr<WebCore::DisplayRefreshMonitor> createDisplayRefreshMonitor(WebCore::PlatformDisplayID) override;
- void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID, const Vector<CallbackID>& /* callbackIDs */) override;
+ void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID, CompletionHandler<void()>&&) override;
void attachViewOverlayGraphicsLayer(WebCore::GraphicsLayer*) override;
// IPC message handlers.
Modified: trunk/Source/WebKit/WebProcess/WebPage/DrawingArea.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/DrawingArea.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/DrawingArea.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -121,7 +121,7 @@
virtual void dispatchAfterEnsuringUpdatedScrollPosition(WTF::Function<void ()>&&);
- virtual void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID, const Vector<CallbackID>&) { }
+ virtual void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID, CompletionHandler<void()>&& completionHandler) { completionHandler(); };
virtual void setLayerHostingMode(LayerHostingMode) { }
virtual bool markLayersVolatileImmediatelyIfPossible() { return true; }
Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -106,7 +106,7 @@
void mainFrameContentSizeChanged(const WebCore::IntSize&) override;
- void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag> changed, ActivityStateChangeID, const Vector<CallbackID>& callbackIDs) override;
+ void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag> changed, ActivityStateChangeID, CompletionHandler<void()>&&) override;
bool addMilestonesToDispatch(OptionSet<WebCore::LayoutMilestone>) override;
Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -483,7 +483,7 @@
m_connection->sendMessage(WTFMove(m_commitEncoder), { });
}
-void RemoteLayerTreeDrawingArea::activityStateDidChange(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID activityStateChangeID, const Vector<CallbackID>& callbackIDs)
+void RemoteLayerTreeDrawingArea::activityStateDidChange(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID activityStateChangeID, CompletionHandler<void()>&& callback)
{
// FIXME: Should we suspend painting while not visible, like TiledCoreAnimationDrawingArea? Probably.
@@ -495,8 +495,7 @@
// FIXME: We may want to match behavior in TiledCoreAnimationDrawingArea by firing these callbacks after the next compositing flush, rather than immediately after
// handling an activity state change.
- for (auto& callbackID : callbackIDs)
- m_webPage.send(Messages::WebPageProxy::VoidCallback(callbackID));
+ callback();
}
void RemoteLayerTreeDrawingArea::addTransactionCallbackID(CallbackID callbackID)
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2021-02-11 03:06:39 UTC (rev 272702)
@@ -923,7 +923,7 @@
setSizeToContentAutoSizeMaximumSize(parameters.sizeToContentAutoSizeMaximumSize);
if (m_activityState != parameters.activityState)
- setActivityState(parameters.activityState, ActivityStateChangeAsynchronous, Vector<CallbackID>());
+ setActivityState(parameters.activityState, ActivityStateChangeAsynchronous, [] { });
if (m_layerHostingMode != parameters.layerHostingMode)
setLayerHostingMode(parameters.layerHostingMode);
@@ -3362,7 +3362,7 @@
}
}
-void WebPage::setActivityState(OptionSet<ActivityState::Flag> activityState, ActivityStateChangeID activityStateChangeID, const Vector<CallbackID>& callbackIDs)
+void WebPage::setActivityState(OptionSet<ActivityState::Flag> activityState, ActivityStateChangeID activityStateChangeID, CompletionHandler<void()>&& callback)
{
LOG_WITH_STREAM(ActivityState, stream << "WebPage " << identifier().toUInt64() << " setActivityState to " << activityState);
@@ -3381,7 +3381,7 @@
for (auto* pluginView : m_pluginViews)
pluginView->activityStateDidChange(changed);
- m_drawingArea->activityStateDidChange(changed, activityStateChangeID, callbackIDs);
+ m_drawingArea->activityStateDidChange(changed, activityStateChangeID, WTFMove(callback));
WebProcess::singleton().pageActivityStateDidChange(m_identifier, changed);
if (changed & ActivityState::IsInWindow)
@@ -3608,12 +3608,12 @@
runJavaScript(webFrame, WTFMove(parameters), worldData.first, WTFMove(completionHandler));
}
-void WebPage::getContentsAsString(ContentAsStringIncludesChildFrames includeChildFrames, CallbackID callbackID)
+void WebPage::getContentsAsString(ContentAsStringIncludesChildFrames includeChildFrames, CompletionHandler<void(const String&)>&& callback)
{
switch (includeChildFrames) {
case ContentAsStringIncludesChildFrames::No: {
String resultString = m_mainFrame->contentsAsString();
- send(Messages::WebPageProxy::StringCallback(resultString, callbackID));
+ callback(resultString);
break;
}
case ContentAsStringIncludesChildFrames::Yes: {
@@ -3627,7 +3627,7 @@
}
}
- send(Messages::WebPageProxy::StringCallback(builder.toString(), callbackID));
+ callback(builder.toString());
break;
}
}
@@ -3640,10 +3640,9 @@
}
#endif
-void WebPage::getRenderTreeExternalRepresentation(CallbackID callbackID)
+void WebPage::getRenderTreeExternalRepresentation(CompletionHandler<void(const String&)>&& callback)
{
- String resultString = renderTreeExternalRepresentation();
- send(Messages::WebPageProxy::StringCallback(resultString, callbackID));
+ callback(renderTreeExternalRepresentation());
}
static Frame* frameWithSelection(Page* page)
@@ -3672,22 +3671,22 @@
callback(dataReference);
}
-void WebPage::getSelectionOrContentsAsString(CallbackID callbackID)
+void WebPage::getSelectionOrContentsAsString(CompletionHandler<void(const String&)>&& callback)
{
WebFrame* focusedOrMainFrame = WebFrame::fromCoreFrame(m_page->focusController().focusedOrMainFrame());
String resultString = focusedOrMainFrame->selectionAsString();
if (resultString.isEmpty())
resultString = focusedOrMainFrame->contentsAsString();
- send(Messages::WebPageProxy::StringCallback(resultString, callbackID));
+ callback(resultString);
}
-void WebPage::getSourceForFrame(FrameIdentifier frameID, CallbackID callbackID)
+void WebPage::getSourceForFrame(FrameIdentifier frameID, CompletionHandler<void(const String&)>&& callback)
{
String resultString;
if (WebFrame* frame = WebProcess::singleton().webFrame(frameID))
resultString = frame->source();
- send(Messages::WebPageProxy::StringCallback(resultString, callbackID));
+ callback(resultString);
}
void WebPage::getMainResourceDataOfFrame(FrameIdentifier frameID, CompletionHandler<void(const IPC::SharedBufferDataReference&)>&& callback)
@@ -6438,33 +6437,29 @@
}
}
-void WebPage::getBytecodeProfile(CallbackID callbackID)
+void WebPage::getBytecodeProfile(CompletionHandler<void(const String&)>&& callback)
{
- if (LIKELY(!commonVM().m_perBytecodeProfiler)) {
- send(Messages::WebPageProxy::StringCallback(String(), callbackID));
- return;
- }
+ if (LIKELY(!commonVM().m_perBytecodeProfiler))
+ return callback({ });
String result = commonVM().m_perBytecodeProfiler->toJSON();
ASSERT(result.length());
- send(Messages::WebPageProxy::StringCallback(result, callbackID));
+ callback(result);
}
-void WebPage::getSamplingProfilerOutput(CallbackID callbackID)
+void WebPage::getSamplingProfilerOutput(CompletionHandler<void(const String&)>&& callback)
{
#if ENABLE(SAMPLING_PROFILER)
SamplingProfiler* samplingProfiler = commonVM().samplingProfiler();
- if (!samplingProfiler) {
- send(Messages::WebPageProxy::InvalidateStringCallback(callbackID));
- return;
- }
+ if (!samplingProfiler)
+ return callback({ });
StringPrintStream result;
samplingProfiler->reportTopFunctions(result);
samplingProfiler->reportTopBytecodes(result);
- send(Messages::WebPageProxy::StringCallback(result.toString(), callbackID));
+ callback(result.toString());
#else
- send(Messages::WebPageProxy::InvalidateStringCallback(callbackID));
+ callback({ });
#endif
}
@@ -6910,14 +6905,14 @@
#if ENABLE(ATTACHMENT_ELEMENT)
-void WebPage::insertAttachment(const String& identifier, Optional<uint64_t>&& fileSize, const String& fileName, const String& contentType, CallbackID callbackID)
+void WebPage::insertAttachment(const String& identifier, Optional<uint64_t>&& fileSize, const String& fileName, const String& contentType, CompletionHandler<void()>&& callback)
{
auto& frame = m_page->focusController().focusedOrMainFrame();
frame.editor().insertAttachment(identifier, WTFMove(fileSize), fileName, contentType);
- send(Messages::WebPageProxy::VoidCallback(callbackID));
+ callback();
}
-void WebPage::updateAttachmentAttributes(const String& identifier, Optional<uint64_t>&& fileSize, const String& contentType, const String& fileName, const IPC::DataReference& enclosingImageData, CallbackID callbackID)
+void WebPage::updateAttachmentAttributes(const String& identifier, Optional<uint64_t>&& fileSize, const String& contentType, const String& fileName, const IPC::DataReference& enclosingImageData, CompletionHandler<void()>&& callback)
{
if (auto attachment = attachmentElementWithIdentifier(identifier)) {
attachment->document().updateLayout();
@@ -6924,7 +6919,7 @@
attachment->updateAttributes(WTFMove(fileSize), contentType, fileName);
attachment->updateEnclosingImageWithData(contentType, SharedBuffer::create(enclosingImageData.data(), enclosingImageData.size()));
}
- send(Messages::WebPageProxy::VoidCallback(callbackID));
+ callback();
}
void WebPage::updateAttachmentIcon(const String& identifier, const ShareableBitmap::Handle& qlThumbnailHandle)
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -753,7 +753,7 @@
void replaceDictatedText(const String& oldText, const String& newText);
void replaceSelectedText(const String& oldText, const String& newText);
void requestAutocorrectionData(const String& textForAutocorrection, CompletionHandler<void(WebAutocorrectionData)>&& reply);
- void applyAutocorrection(const String& correction, const String& originalText, CallbackID);
+ void applyAutocorrection(const String& correction, const String& originalText, CompletionHandler<void(const String&)>&&);
void syncApplyAutocorrection(const String& correction, const String& originalText, CompletionHandler<void(bool)>&&);
void requestAutocorrectionContext();
void getPositionInformation(const InteractionInformationRequest&, CompletionHandler<void(InteractionInformationAtPosition&&)>&&);
@@ -1149,8 +1149,8 @@
Ref<WebCore::DocumentLoader> createDocumentLoader(WebCore::Frame&, const WebCore::ResourceRequest&, const WebCore::SubstituteData&);
void updateCachedDocumentLoader(WebDocumentLoader&, WebCore::Frame&);
- void getBytecodeProfile(CallbackID);
- void getSamplingProfilerOutput(CallbackID);
+ void getBytecodeProfile(CompletionHandler<void(const String&)>&&);
+ void getSamplingProfilerOutput(CompletionHandler<void(const String&)>&&);
#if ENABLE(SERVICE_CONTROLS) || ENABLE(TELEPHONE_NUMBER_DETECTION)
void handleTelephoneNumberClick(const String& number, const WebCore::IntPoint&);
@@ -1253,8 +1253,8 @@
void showContactPicker(const WebCore::ContactsRequestData&, CompletionHandler<void(Optional<Vector<WebCore::ContactInfo>>&&)>&&);
#if ENABLE(ATTACHMENT_ELEMENT)
- void insertAttachment(const String& identifier, Optional<uint64_t>&& fileSize, const String& fileName, const String& contentType, CallbackID);
- void updateAttachmentAttributes(const String& identifier, Optional<uint64_t>&& fileSize, const String& contentType, const String& fileName, const IPC::DataReference& enclosingImageData, CallbackID);
+ void insertAttachment(const String& identifier, Optional<uint64_t>&& fileSize, const String& fileName, const String& contentType, CompletionHandler<void()>&&);
+ void updateAttachmentAttributes(const String& identifier, Optional<uint64_t>&& fileSize, const String& contentType, const String& fileName, const IPC::DataReference& enclosingImageData, CompletionHandler<void()>&&);
void updateAttachmentIcon(const String& identifier, const ShareableBitmap::Handle& qlThumbnailHandle);
#endif
@@ -1515,7 +1515,7 @@
void setInitialFocus(bool forward, bool isKeyboardEventValid, const WebKeyboardEvent&, CompletionHandler<void()>&&);
void updateIsInWindow(bool isInitialState = false);
void visibilityDidChange();
- void setActivityState(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID, const Vector<CallbackID>& callbackIDs);
+ void setActivityState(OptionSet<WebCore::ActivityState::Flag>, ActivityStateChangeID, CompletionHandler<void()>&&);
void validateCommand(const String&, CompletionHandler<void(bool, int32_t)>&&);
void executeEditCommand(const String&, const String&);
void setEditable(bool);
@@ -1580,7 +1580,7 @@
void viewWillStartLiveResize();
void viewWillEndLiveResize();
- void getContentsAsString(ContentAsStringIncludesChildFrames, CallbackID);
+ void getContentsAsString(ContentAsStringIncludesChildFrames, CompletionHandler<void(const String&)>&&);
#if PLATFORM(COCOA)
void getContentsAsAttributedString(CompletionHandler<void(const WebCore::AttributedString&)>&&);
#endif
@@ -1589,10 +1589,10 @@
#endif
void getMainResourceDataOfFrame(WebCore::FrameIdentifier, CompletionHandler<void(const IPC::SharedBufferDataReference&)>&&);
void getResourceDataFromFrame(WebCore::FrameIdentifier, const String& resourceURL, CompletionHandler<void(const IPC::SharedBufferDataReference&)>&&);
- void getRenderTreeExternalRepresentation(CallbackID);
- void getSelectionOrContentsAsString(CallbackID);
+ void getRenderTreeExternalRepresentation(CompletionHandler<void(const String&)>&&);
+ void getSelectionOrContentsAsString(CompletionHandler<void(const String&)>&&);
void getSelectionAsWebArchiveData(CompletionHandler<void(const IPC::DataReference&)>&&);
- void getSourceForFrame(WebCore::FrameIdentifier, CallbackID);
+ void getSourceForFrame(WebCore::FrameIdentifier, CompletionHandler<void(const String&)>&&);
void getWebArchiveOfFrame(WebCore::FrameIdentifier, CompletionHandler<void(const IPC::DataReference&)>&&);
void runJavaScript(WebFrame*, WebCore::RunJavaScriptParameters&&, ContentWorldIdentifier, CompletionHandler<void(const IPC::DataReference&, const Optional<WebCore::ExceptionDetails>&)>&&);
void runJavaScriptInFrameInScriptWorld(WebCore::RunJavaScriptParameters&&, Optional<WebCore::FrameIdentifier>, const std::pair<ContentWorldIdentifier, String>& worldData, CompletionHandler<void(const IPC::DataReference&, const Optional<WebCore::ExceptionDetails>&)>&&);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2021-02-11 03:06:39 UTC (rev 272702)
@@ -22,7 +22,7 @@
messages -> WebPage LegacyReceiver {
SetInitialFocus(bool forward, bool isKeyboardEventValid, WebKit::WebKeyboardEvent event) -> () Async
- SetActivityState(OptionSet<WebCore::ActivityState::Flag> activityState, WebKit::ActivityStateChangeID activityStateChangeID, Vector<WebKit::CallbackID> callbackIDs)
+ SetActivityState(OptionSet<WebCore::ActivityState::Flag> activityState, WebKit::ActivityStateChangeID activityStateChangeID) -> () Async
SetLayerHostingMode(enum:uint8_t WebKit::LayerHostingMode layerHostingMode)
SetBackgroundColor(Optional<WebCore::Color> color)
@@ -82,7 +82,7 @@
ReplaceDictatedText(String oldText, String newText)
ReplaceSelectedText(String oldText, String newText)
RequestAutocorrectionData(String textForAutocorrection) -> (struct WebKit::WebAutocorrectionData data) Async
- ApplyAutocorrection(String correction, String originalText, WebKit::CallbackID callbackID)
+ ApplyAutocorrection(String correction, String originalText) -> (String string) Async
SyncApplyAutocorrection(String correction, String originalText) -> (bool autocorrectionApplied) Synchronous
RequestAutocorrectionContext()
RequestEvasionRectsAboveSelection() -> (Vector<WebCore::FloatRect> rects) Async
@@ -204,7 +204,7 @@
RestoreSelectionInFocusedEditableElement()
# Callbacks.
- GetContentsAsString(enum:bool WebKit::ContentAsStringIncludesChildFrames inChildFrames, WebKit::CallbackID callbackID)
+ GetContentsAsString(enum:bool WebKit::ContentAsStringIncludesChildFrames inChildFrames) -> (String string) Async
GetAllFrames() -> (struct WebKit::FrameTreeNodeData mainFrame) Async
#if PLATFORM(COCOA)
GetContentsAsAttributedString() -> (struct WebCore::AttributedString result) Async
@@ -214,10 +214,10 @@
#endif
GetMainResourceDataOfFrame(WebCore::FrameIdentifier frameID) -> (IPC::SharedBufferDataReference dataReference) Async
GetResourceDataFromFrame(WebCore::FrameIdentifier frameID, String resourceURL) -> (IPC::SharedBufferDataReference dataReference) Async
- GetRenderTreeExternalRepresentation(WebKit::CallbackID callbackID)
- GetSelectionOrContentsAsString(WebKit::CallbackID callbackID)
+ GetRenderTreeExternalRepresentation() -> (String string) Async
+ GetSelectionOrContentsAsString() -> (String string) Async
GetSelectionAsWebArchiveData() -> (IPC::DataReference data) Async
- GetSourceForFrame(WebCore::FrameIdentifier frameID, WebKit::CallbackID callbackID)
+ GetSourceForFrame(WebCore::FrameIdentifier frameID) -> (String string) Async
GetWebArchiveOfFrame(WebCore::FrameIdentifier frameID) -> (IPC::DataReference dataReference) Async
RunJavaScriptInFrameInScriptWorld(struct WebCore::RunJavaScriptParameters parameters, Optional<WebCore::FrameIdentifier> frameID, std::pair<WebKit::ContentWorldIdentifier, String> world) -> (IPC::DataReference resultData, Optional<WebCore::ExceptionDetails> details) Async
@@ -487,9 +487,9 @@
SetScrollPinningBehavior(uint32_t pinning)
SetScrollbarOverlayStyle(Optional<uint32_t> scrollbarStyle)
- GetBytecodeProfile(WebKit::CallbackID callbackID)
+ GetBytecodeProfile() -> (String string) Async
- GetSamplingProfilerOutput(WebKit::CallbackID callbackID)
+ GetSamplingProfilerOutput() -> (String string) Async
TakeSnapshot(WebCore::IntRect snapshotRect, WebCore::IntSize bitmapSize, uint32_t options) -> (WebKit::ShareableBitmap::Handle image) Async
#if PLATFORM(MAC)
@@ -565,8 +565,8 @@
SetIsSuspended(bool suspended)
#if ENABLE(ATTACHMENT_ELEMENT)
- InsertAttachment(String identifier, Optional<uint64_t> fileSize, String fileName, String contentType, WebKit::CallbackID callbackID)
- UpdateAttachmentAttributes(String identifier, Optional<uint64_t> fileSize, String contentType, String fileName, IPC::SharedBufferDataReference enclosingImageData, WebKit::CallbackID callbackID)
+ InsertAttachment(String identifier, Optional<uint64_t> fileSize, String fileName, String contentType) -> () Async
+ UpdateAttachmentAttributes(String identifier, Optional<uint64_t> fileSize, String contentType, String fileName, IPC::SharedBufferDataReference enclosingImageData) -> () Async
UpdateAttachmentIcon(String identifier, WebKit::ShareableBitmap::Handle qlThumbnailHandle)
#endif
Modified: trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -2351,9 +2351,9 @@
reply({ WTFMove(rootViewSelectionRects) , (__bridge UIFont *)font });
}
-void WebPage::applyAutocorrection(const String& correction, const String& originalText, CallbackID callbackID)
+void WebPage::applyAutocorrection(const String& correction, const String& originalText, CompletionHandler<void(const String&)>&& callback)
{
- send(Messages::WebPageProxy::StringCallback(applyAutocorrectionInternal(correction, originalText) ? correction : String(), callbackID));
+ callback(applyAutocorrectionInternal(correction, originalText) ? correction : String());
}
Seconds WebPage::eventThrottlingDelay() const
Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h 2021-02-11 03:06:39 UTC (rev 272702)
@@ -82,7 +82,7 @@
bool shouldUseTiledBackingForFrameView(const WebCore::FrameView&) const override;
- void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag> changed, ActivityStateChangeID, const Vector<CallbackID>&) override;
+ void activityStateDidChange(OptionSet<WebCore::ActivityState::Flag> changed, ActivityStateChangeID, CompletionHandler<void()>&&) override;
void attachViewOverlayGraphicsLayer(WebCore::GraphicsLayer*) override;
@@ -151,7 +151,7 @@
double m_transientZoomScale { 1 };
WebCore::FloatPoint m_transientZoomOrigin;
- Vector<CallbackID> m_nextActivityStateChangeCallbackIDs;
+ Vector<CompletionHandler<void()>> m_nextActivityStateChangeCallbacks;
ActivityStateChangeID m_activityStateChangeID { ActivityStateChangeAsynchronous };
RefPtr<WebCore::GraphicsLayer> m_viewOverlayRootLayer;
Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (272701 => 272702)
--- trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2021-02-11 02:25:21 UTC (rev 272701)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2021-02-11 03:06:39 UTC (rev 272702)
@@ -498,9 +498,8 @@
if (m_activityStateChangeID != ActivityStateChangeAsynchronous)
m_webPage.send(Messages::WebPageProxy::DidUpdateActivityState());
- for (auto& callbackID : m_nextActivityStateChangeCallbackIDs)
- m_webPage.send(Messages::WebPageProxy::VoidCallback(callbackID));
- m_nextActivityStateChangeCallbackIDs.clear();
+ for (auto& callback : std::exchange(m_nextActivityStateChangeCallbacks, { }))
+ callback();
m_activityStateChangeID = ActivityStateChangeAsynchronous;
}
@@ -531,9 +530,9 @@
} forPhase:kCATransactionPhasePostCommit];
}
-void TiledCoreAnimationDrawingArea::activityStateDidChange(OptionSet<ActivityState::Flag> changed, ActivityStateChangeID activityStateChangeID, const Vector<CallbackID>& nextActivityStateChangeCallbackIDs)
+void TiledCoreAnimationDrawingArea::activityStateDidChange(OptionSet<ActivityState::Flag> changed, ActivityStateChangeID activityStateChangeID, CompletionHandler<void()>&& nextActivityStateChangeCallback)
{
- m_nextActivityStateChangeCallbackIDs.appendVector(nextActivityStateChangeCallbackIDs);
+ m_nextActivityStateChangeCallbacks.append(WTFMove(nextActivityStateChangeCallback));
m_activityStateChangeID = std::max(m_activityStateChangeID, activityStateChangeID);
if (changed & ActivityState::IsVisible) {
@@ -543,7 +542,7 @@
suspendPainting();
}
- if (m_activityStateChangeID != ActivityStateChangeAsynchronous || !m_nextActivityStateChangeCallbackIDs.isEmpty()) {
+ if (m_activityStateChangeID != ActivityStateChangeAsynchronous || !m_nextActivityStateChangeCallbacks.isEmpty()) {
m_shouldHandleActivityStateChangeCallbacks = true;
triggerRenderingUpdate();
}