Diff
Modified: trunk/Source/WebKit/ChangeLog (282855 => 282856)
--- trunk/Source/WebKit/ChangeLog 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/ChangeLog 2021-09-22 00:34:47 UTC (rev 282856)
@@ -1,3 +1,72 @@
+2021-09-21 Alex Christensen <[email protected]>
+
+ Remove GenericCallback
+ https://bugs.webkit.org/show_bug.cgi?id=229366
+
+ Reviewed by Chris Dumez.
+
+ It has been replaced by sendWithAsyncReply.
+
+ This last use can't really be replaced by sendWithAsyncReply because the CallbackIDs are sent, then further encoded
+ in RemoteLayerTreeTransaction::encode/decode which you can't really do with a CompletionHandler. But we can replace
+ GenericCallback with WTF::Function.
+
+ * Shared/CallbackID.h:
+ * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
+ * UIProcess/API/APIAttachment.h:
+ * UIProcess/API/APIIconLoadingClient.h:
+ * UIProcess/API/APIInspectorExtension.cpp:
+ * UIProcess/API/APIUIClient.h:
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageCallAfterNextPresentationUpdate):
+ * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
+ * UIProcess/API/Cocoa/WKErrorInternal.h:
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
+ (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]):
+ * UIProcess/API/Cocoa/_WKInspectorExtension.mm:
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _doAfterNextPresentationUpdate:]):
+ * UIProcess/Automation/WebAutomationSession.cpp:
+ (WebKit::WebAutomationSession::takeScreenshot):
+ * UIProcess/Automation/mac/WebAutomationSessionMac.mm:
+ * UIProcess/Cocoa/WebProcessProxyCocoa.mm:
+ * UIProcess/Cocoa/WebViewImpl.mm:
+ * UIProcess/DrawingAreaProxy.h:
+ (WebKit::DrawingAreaProxy::dispatchAfterEnsuringDrawing):
+ * UIProcess/GenericCallback.h: Removed.
+ * UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
+ * UIProcess/Inspector/mac/WKInspectorViewController.mm:
+ * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
+ * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
+ * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
+ * UIProcess/WebContextClient.cpp:
+ * UIProcess/WebCookieManagerProxy.h:
+ * UIProcess/WebFrameProxy.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::forceRepaint):
+ (WebKit::WebPageProxy::callAfterNextPresentationUpdate):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebProcessPool.cpp:
+ * UIProcess/WebProcessPool.h:
+ * UIProcess/ios/ViewGestureControllerIOS.mm:
+ (WebKit::ViewGestureController::endSwipeGesture):
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView willFinishIgnoringCalloutBarFadeAfterPerformingAction]):
+ (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
+ * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
+ * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
+ (WebKit::TiledCoreAnimationDrawingAreaProxy::~TiledCoreAnimationDrawingAreaProxy):
+ (WebKit::TiledCoreAnimationDrawingAreaProxy::dispatchAfterEnsuringDrawing):
+ (WebKit::TiledCoreAnimationDrawingAreaProxy::dispatchPresentationCallbacksAfterFlushingLayers):
+ * UIProcess/mac/WKFullScreenWindowController.h:
+ * UIProcess/mac/WKTextFinderClient.mm:
+ * WebKit.xcodeproj/project.pbxproj:
+ * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
+
2021-09-21 Chris Dumez <[email protected]>
Launch the new process a bit earlier when doing a COOP process-swap
Modified: trunk/Source/WebKit/Shared/CallbackID.h (282855 => 282856)
--- trunk/Source/WebKit/Shared/CallbackID.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/Shared/CallbackID.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -98,7 +98,6 @@
ASSERT(newID != HashTraits<uint64_t>::emptyValue());
}
- friend class CallbackMap;
template <typename CallbackType> friend class SpecificCallbackMap;
friend struct WTF::CallbackIDHash;
friend HashTraits<WebKit::CallbackID>;
Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h (282855 => 282856)
--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -25,10 +25,10 @@
#pragma once
+#include "CallbackID.h"
#include "DrawingAreaInfo.h"
#include "DynamicViewportSizeUpdate.h"
#include "EditorState.h"
-#include "GenericCallback.h"
#include "PlatformCAAnimationRemote.h"
#include "RemoteLayerBackingStore.h"
#include "TransactionID.h"
Modified: trunk/Source/WebKit/UIProcess/API/APIAttachment.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/APIAttachment.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/APIAttachment.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -28,7 +28,6 @@
#if ENABLE(ATTACHMENT_ELEMENT)
#include "APIObject.h"
-#include "GenericCallback.h"
#include "WKBase.h"
#include <wtf/RefPtr.h>
#include <wtf/WeakPtr.h>
Modified: trunk/Source/WebKit/UIProcess/API/APIIconLoadingClient.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/APIIconLoadingClient.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/APIIconLoadingClient.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -25,7 +25,6 @@
#pragma once
-#include "GenericCallback.h"
#include <WebCore/LinkIcon.h>
#include <wtf/CompletionHandler.h>
#include <wtf/Function.h>
@@ -32,12 +31,14 @@
namespace API {
+class Data;
+
class IconLoadingClient {
WTF_MAKE_FAST_ALLOCATED;
public:
virtual ~IconLoadingClient() { }
- virtual void getLoadDecisionForIcon(const WebCore::LinkIcon&, CompletionHandler<void(CompletionHandler<void(API::Data*)>&&)>&& completionHandler)
+ virtual void getLoadDecisionForIcon(const WebCore::LinkIcon&, CompletionHandler<void(CompletionHandler<void(Data*)>&&)>&& completionHandler)
{
completionHandler(nullptr);
}
Modified: trunk/Source/WebKit/UIProcess/API/APIInspectorExtension.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/APIInspectorExtension.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/APIInspectorExtension.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -28,6 +28,7 @@
#if ENABLE(INSPECTOR_EXTENSIONS)
+#include "APISerializedScriptValue.h"
#include "InspectorExtensionTypes.h"
#include "WebInspectorUIExtensionControllerProxy.h"
#include <WebCore/ExceptionDetails.h>
Modified: trunk/Source/WebKit/UIProcess/API/APIUIClient.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/APIUIClient.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/APIUIClient.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,6 +26,7 @@
#pragma once
#include "APIInspectorConfiguration.h"
+#include "APISecurityOrigin.h"
#include "WKPage.h"
#include "WebEvent.h"
#include "WebHitTestResultData.h"
Modified: trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -45,6 +45,7 @@
#include "APIOpenPanelParameters.h"
#include "APIPageConfiguration.h"
#include "APIPolicyClient.h"
+#include "APISerializedScriptValue.h"
#include "APISessionState.h"
#include "APIUIClient.h"
#include "APIWebAuthenticationPanel.h"
@@ -3005,8 +3006,8 @@
void WKPageCallAfterNextPresentationUpdate(WKPageRef pageRef, void* context, WKPagePostPresentationUpdateFunction callback)
{
CRASH_IF_SUSPENDED;
- toImpl(pageRef)->callAfterNextPresentationUpdate([context, callback](WebKit::CallbackBase::Error error) {
- callback(error != WebKit::CallbackBase::Error::None ? toAPI(API::Error::create().ptr()) : 0, context);
+ toImpl(pageRef)->callAfterNextPresentationUpdate([context, callback]() {
+ callback(nullptr, context);
});
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -42,6 +42,7 @@
#if PLATFORM(IOS_FAMILY)
#import <UIKitSPI.h>
+#import <WebCore/WAKAppKitStubs.h>
#endif
NSString * const NSReadAccessURLDocumentOption = @"ReadAccessURL";
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -32,6 +32,7 @@
#import "PageLoadStateObserver.h"
#import "RemoteObjectRegistry.h"
#import "RemoteObjectRegistryMessages.h"
+#import "WKAPICast.h"
#import "WKBackForwardListInternal.h"
#import "WKBackForwardListItemInternal.h"
#import "WKBrowsingContextGroupInternal.h"
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKErrorInternal.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKErrorInternal.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKErrorInternal.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,7 +26,6 @@
#import "WKErrorPrivate.h"
#import <wtf/RetainPtr.h>
-#import "GenericCallback.h"
RetainPtr<NSError> createNSError(WKErrorCode, NSError* underlyingError = nil);
NSString *localizedDescriptionForErrorCode(WKErrorCode);
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -1168,7 +1168,9 @@
- (void)takeSnapshotWithConfiguration:(WKSnapshotConfiguration *)snapshotConfiguration completionHandler:(void(^)(CocoaImage *, NSError *))completionHandler
{
THROW_IF_SUSPENDED;
+#if USE(APPKIT)
constexpr bool snapshotFailedTraceValue = false;
+#endif
tracePoint(TakeSnapshotStart);
CGRect rectInViewCoordinates = snapshotConfiguration && !CGRectIsNull(snapshotConfiguration.rect) ? snapshotConfiguration.rect : self.bounds;
@@ -1243,13 +1245,7 @@
return;
}
- _page->callAfterNextPresentationUpdate([callSnapshotRect = WTFMove(callSnapshotRect), handler](WebKit::CallbackBase::Error error) mutable {
- if (error != WebKit::CallbackBase::Error::None) {
- tracePoint(TakeSnapshotEnd, snapshotFailedTraceValue);
- handler(nil, createNSError(WKErrorUnknown).get());
- return;
- }
-
+ _page->callAfterNextPresentationUpdate([callSnapshotRect = WTFMove(callSnapshotRect), handler]() mutable {
// Create an implicit transaction to ensure a commit will happen next.
[CATransaction activate];
@@ -1519,7 +1515,7 @@
auto updateBlockCopy = makeBlockPtr(updateBlock);
RetainPtr<WKWebView> strongSelf = self;
- _page->callAfterNextPresentationUpdate([updateBlockCopy, withoutWaitingForAnimatedResize, strongSelf](WebKit::CallbackBase::Error error) {
+ _page->callAfterNextPresentationUpdate([updateBlockCopy, withoutWaitingForAnimatedResize, strongSelf] {
if (!updateBlockCopy)
return;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -28,6 +28,7 @@
#if ENABLE(INSPECTOR_EXTENSIONS)
+#import "APISerializedScriptValue.h"
#import "InspectorExtensionDelegate.h"
#import "InspectorExtensionTypes.h"
#import "WKError.h"
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitContextMenuClient.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitContextMenuClient.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitContextMenuClient.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -21,6 +21,7 @@
#include "WebKitContextMenuClient.h"
#include "APIContextMenuClient.h"
+#include "APIString.h"
#include "WebContextMenuItem.h"
#include "WebKitWebViewPrivate.h"
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitFindController.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitFindController.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitFindController.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -21,6 +21,7 @@
#include "WebKitFindController.h"
#include "APIFindClient.h"
+#include "WebFindOptions.h"
#include "WebKitEnumTypes.h"
#include "WebKitWebViewPrivate.h"
#include <glib/gi18n-lib.h>
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitInjectedBundleClient.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -20,7 +20,12 @@
#include "config.h"
#include "WebKitInjectedBundleClient.h"
+#include "APIError.h"
#include "APIInjectedBundleClient.h"
+#include "APINumber.h"
+#include "APIString.h"
+#include "APIURLRequest.h"
+#include "APIURLResponse.h"
#include "WebImage.h"
#include "WebKitPrivate.h"
#include "WebKitURIRequestPrivate.h"
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitNotificationProvider.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitNotificationProvider.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitNotificationProvider.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -29,6 +29,7 @@
#include "APIArray.h"
#include "APINotificationProvider.h"
+#include "APINumber.h"
#include "WebKitNotificationPrivate.h"
#include "WebKitWebContextPrivate.h"
#include "WebKitWebViewPrivate.h"
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebResource.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -21,6 +21,7 @@
#include "WebKitWebResource.h"
#include "APIData.h"
+#include "APIURL.h"
#include "WebFrameProxy.h"
#include "WebKitURIRequest.h"
#include "WebKitWebResourcePrivate.h"
Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -25,6 +25,7 @@
#include "APIContentWorld.h"
#include "APIData.h"
#include "APINavigation.h"
+#include "APINumber.h"
#include "APISerializedScriptValue.h"
#include "DataReference.h"
#include "ImageOptions.h"
Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitPrintOperation.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitPrintOperation.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitPrintOperation.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -20,6 +20,7 @@
#include "config.h"
#include "WebKitPrintOperation.h"
+#include "APIError.h"
#include "WebKitPrintCustomWidgetPrivate.h"
#include "WebKitPrintOperationPrivate.h"
#include "WebKitPrivate.h"
Modified: trunk/Source/WebKit/UIProcess/API/mac/WKView.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/API/mac/WKView.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/API/mac/WKView.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -1677,7 +1677,7 @@
- (void)_doAfterNextPresentationUpdate:(void (^)(void))updateBlock
{
auto updateBlockCopy = makeBlockPtr(updateBlock);
- _data->_impl->page().callAfterNextPresentationUpdate([updateBlockCopy](WebKit::CallbackBase::Error error) {
+ _data->_impl->page().callAfterNextPresentationUpdate([updateBlockCopy] {
if (updateBlockCopy)
updateBlockCopy();
});
Modified: trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -31,6 +31,7 @@
#include "APIAutomationSessionClient.h"
#include "APINavigation.h"
#include "APIOpenPanelParameters.h"
+#include "APIString.h"
#include "AutomationProtocolObjects.h"
#include "CoordinateSystem.h"
#include "WebAutomationSessionMacros.h"
@@ -2205,9 +2206,7 @@
#if PLATFORM(GTK)
Function<void(WebPageProxy&, std::optional<WebCore::IntRect>&&, Ref<TakeScreenshotCallback>&&)> takeViewSnapsot = [](WebPageProxy& page, std::optional<WebCore::IntRect>&& rect, Ref<TakeScreenshotCallback>&& callback) {
- page.callAfterNextPresentationUpdate([page = makeRef(page), rect = WTFMove(rect), callback = WTFMove(callback)](CallbackBase::Error error) mutable {
- if (error != CallbackBase::Error::None)
- ASYNC_FAIL_WITH_PREDEFINED_ERROR(InternalError);
+ page.callAfterNextPresentationUpdate([page = makeRef(page), rect = WTFMove(rect), callback = WTFMove(callback)]() mutable {
auto snapshot = page->takeViewSnapshot(WTFMove(rect));
if (!snapshot)
Modified: trunk/Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -31,6 +31,7 @@
#import "Logging.h"
#import "WebAutomationSessionMacros.h"
#import "WebInspectorUIProxy.h"
+#import "WebMouseEvent.h"
#import "WebPageProxy.h"
#import "_WKAutomationSession.h"
#import <Carbon/Carbon.h>
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -33,6 +33,7 @@
#import "ObjCObjectGraph.h"
#import "SandboxUtilities.h"
#import "SharedBufferDataReference.h"
+#import "WKAPICast.h"
#import "WKBrowsingContextControllerInternal.h"
#import "WKBrowsingContextHandleInternal.h"
#import "WKTypeRefWrapper.h"
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -36,7 +36,6 @@
#import "CoreTextHelpers.h"
#import "FontInfo.h"
#import "FullscreenClient.h"
-#import "GenericCallback.h"
#import "InsertTextOptions.h"
#import "Logging.h"
#import "NativeWebGestureEvent.h"
Modified: trunk/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -417,7 +417,7 @@
return false;
}
-void DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::start(WTF::Function<void(CallbackBase::Error)>&& callback)
+void DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::start(Function<void()>&& callback)
{
m_startTime = MonotonicTime::now();
m_callback = WTFMove(callback);
@@ -441,10 +441,8 @@
g_signal_handlers_disconnect_by_func(m_webPage.viewWidget(), reinterpret_cast<gpointer>(webViewDrawCallback), this);
#endif
m_startTime = MonotonicTime();
- if (m_callback) {
- m_callback(CallbackBase::Error::None);
- m_callback = nullptr;
- }
+ if (auto callback = std::exchange(m_callback, nullptr))
+ callback();
}
void DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::didDraw()
@@ -458,12 +456,10 @@
m_timer.startOneShot(16_ms);
}
-void DrawingAreaProxyCoordinatedGraphics::dispatchAfterEnsuringDrawing(WTF::Function<void(CallbackBase::Error)>&& callbackFunction)
+void DrawingAreaProxyCoordinatedGraphics::dispatchAfterEnsuringDrawing(Function<void()>&& callbackFunction)
{
- if (!m_webPageProxy.hasRunningProcess()) {
- callbackFunction(CallbackBase::Error::OwnerWasInvalidated);
- return;
- }
+ if (!m_webPageProxy.hasRunningProcess())
+ return callbackFunction();
if (!m_drawingMonitor)
m_drawingMonitor = makeUnique<DrawingAreaProxyCoordinatedGraphics::DrawingMonitor>(m_webPageProxy);
Modified: trunk/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -88,7 +88,7 @@
void discardBackingStore();
#endif
- void dispatchAfterEnsuringDrawing(WTF::Function<void(CallbackBase::Error)>&&) override;
+ void dispatchAfterEnsuringDrawing(Function<void()>&&) override;
class DrawingMonitor {
WTF_MAKE_NONCOPYABLE(DrawingMonitor); WTF_MAKE_FAST_ALLOCATED;
@@ -96,7 +96,7 @@
DrawingMonitor(WebPageProxy&);
~DrawingMonitor();
- void start(WTF::Function<void(CallbackBase::Error)>&&);
+ void start(Function<void()>&&);
private:
static int webViewDrawCallback(DrawingMonitor*);
@@ -105,7 +105,7 @@
void didDraw();
MonotonicTime m_startTime;
- WTF::Function<void(CallbackBase::Error)> m_callback;
+ Function<void()> m_callback;
RunLoop::Timer<DrawingMonitor> m_timer;
#if PLATFORM(GTK)
WebPageProxy& m_webPage;
Modified: trunk/Source/WebKit/UIProcess/DrawingAreaProxy.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/DrawingAreaProxy.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/DrawingAreaProxy.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,8 +26,8 @@
#pragma once
+#include "CallbackID.h"
#include "DrawingAreaInfo.h"
-#include "GenericCallback.h"
#include "MessageReceiver.h"
#include "MessageSender.h"
#include <WebCore/FloatRect.h>
@@ -98,7 +98,7 @@
virtual void waitForDidUpdateActivityState(ActivityStateChangeID) { }
- virtual void dispatchAfterEnsuringDrawing(WTF::Function<void (CallbackBase::Error)>&&) { ASSERT_NOT_REACHED(); }
+ virtual void dispatchAfterEnsuringDrawing(Function<void()>&&) { ASSERT_NOT_REACHED(); }
// Hide the content until the currently pending update arrives.
virtual void hideContentUntilPendingUpdate() { ASSERT_NOT_REACHED(); }
Deleted: trunk/Source/WebKit/UIProcess/GenericCallback.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/GenericCallback.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/GenericCallback.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -1,210 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "APIError.h"
-#include "APISerializedScriptValue.h"
-#include "CallbackID.h"
-#include "ProcessThrottler.h"
-#include "ShareableBitmap.h"
-#include "WKAPICast.h"
-#include <wtf/Function.h>
-#include <wtf/HashMap.h>
-#include <wtf/MainThread.h>
-#include <wtf/RefCounted.h>
-#include <wtf/Threading.h>
-
-namespace WebKit {
-
-class CallbackBase : public RefCounted<CallbackBase> {
-public:
- enum class Error {
- None,
- Unknown,
- ProcessExited,
- OwnerWasInvalidated,
- };
-
- virtual ~CallbackBase()
- {
- }
-
- CallbackID callbackID() const { return m_callbackID; }
-
- template<class T>
- T* as()
- {
- if (T::type() == m_type)
- return static_cast<T*>(this);
-
- return nullptr;
- }
-
- virtual void invalidate(Error) = 0;
-
-protected:
- struct TypeTag { };
- typedef const TypeTag* Type;
-
- explicit CallbackBase(Type type, ProcessThrottler::ActivityVariant&& activity)
- : m_type(type)
- , m_callbackID(CallbackID::generateID())
- , m_activity(WTFMove(activity))
- {
- }
-
-private:
- Type m_type;
- CallbackID m_callbackID;
- ProcessThrottler::ActivityVariant m_activity;
-};
-
-template<typename... T>
-class GenericCallback : public CallbackBase {
-public:
- typedef Function<void (T..., Error)> CallbackFunction;
-
- static Ref<GenericCallback> create(CallbackFunction&& callback, ProcessThrottler::ActivityVariant&& activity = nullptr)
- {
- return adoptRef(*new GenericCallback(WTFMove(callback), WTFMove(activity)));
- }
-
- virtual ~GenericCallback()
- {
- ASSERT(m_originThread.ptr() == &Thread::current());
- ASSERT(!m_callback);
- }
-
- void performCallbackWithReturnValue(T... returnValue)
- {
- ASSERT(m_originThread.ptr() == &Thread::current());
-
- if (!m_callback)
- return;
-
- auto callback = std::exchange(m_callback, std::nullopt);
- callback.value()(returnValue..., Error::None);
- }
-
- void performCallback()
- {
- performCallbackWithReturnValue();
- }
-
- void invalidate(Error error = Error::Unknown) final
- {
- ASSERT(m_originThread.ptr() == &Thread::current());
-
- if (!m_callback)
- return;
-
- auto callback = std::exchange(m_callback, std::nullopt);
- callback.value()(typename std::remove_reference<T>::type()..., error);
- }
-
-private:
- GenericCallback(CallbackFunction&& callback, ProcessThrottler::ActivityVariant&& activity)
- : CallbackBase(type(), WTFMove(activity))
- , m_callback(WTFMove(callback))
- {
- }
-
- friend class CallbackBase;
- static Type type()
- {
- static TypeTag tag;
- return &tag;
- }
-
- std::optional<CallbackFunction> m_callback;
-
-#if ASSERT_ENABLED
- Ref<Thread> m_originThread { Thread::current() };
-#endif
-};
-
-typedef GenericCallback<> VoidCallback;
-
-template<typename T>
-void invalidateCallbackMap(HashMap<uint64_t, T>& callbackMap, CallbackBase::Error error)
-{
- auto map = WTFMove(callbackMap);
- for (auto& callback : map.values())
- callback->invalidate(error);
-}
-
-class CallbackMap {
-public:
- CallbackID put(Ref<CallbackBase>&& callback)
- {
- RELEASE_ASSERT(RunLoop::isMain());
- auto callbackID = callback->callbackID();
- RELEASE_ASSERT(callbackID.isValid());
- RELEASE_ASSERT(!m_map.contains(callbackID.m_id));
- m_map.set(callbackID.m_id, WTFMove(callback));
- return callbackID;
- }
-
- template<unsigned I, typename T, typename... U>
- struct GenericCallbackType {
- typedef typename GenericCallbackType<I - 1, U..., T>::type type;
- };
-
- template<typename... U>
- struct GenericCallbackType<1, CallbackBase::Error, U...> {
- typedef GenericCallback<U...> type;
- };
-
- template<typename... T>
- CallbackID put(Function<void(T...)>&& function, ProcessThrottler::ActivityVariant&& activity)
- {
- auto callback = GenericCallbackType<sizeof...(T), T...>::type::create(WTFMove(function), WTFMove(activity));
- return put(WTFMove(callback));
- }
-
- template<class T>
- RefPtr<T> take(CallbackID callbackID)
- {
- RELEASE_ASSERT(callbackID.isValid());
- RELEASE_ASSERT(RunLoop::isMain());
- auto base = m_map.take(callbackID.m_id);
- if (!base)
- return nullptr;
-
- return adoptRef(base.leakRef()->as<T>());
- }
-
- void invalidate(CallbackBase::Error error)
- {
- RELEASE_ASSERT(RunLoop::isMain());
- invalidateCallbackMap(m_map, error);
- }
-
-private:
- HashMap<uint64_t, RefPtr<CallbackBase>> m_map;
-};
-
-} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -29,6 +29,7 @@
#if ENABLE(INSPECTOR_EXTENSIONS)
#include "APIInspectorExtension.h"
+#include "APISerializedScriptValue.h"
#include "WebInspectorUIExtensionControllerMessages.h"
#include "WebInspectorUIExtensionControllerProxyMessages.h"
#include "WebPageProxy.h"
Modified: trunk/Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -31,9 +31,11 @@
#include "APINavigation.h"
#include "APINavigationAction.h"
+#include "WKAPICast.h"
#include "WKArray.h"
#include "WKContextMenuItem.h"
#include "WKMutableArray.h"
+#include "WKSharedAPICast.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebInspectorUIMessages.h"
#include "WebInspectorUIProxyClient.h"
Modified: trunk/Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -29,7 +29,7 @@
#if PLATFORM(MAC)
#import "APINavigation.h"
-#import <WebKit/WKFrameInfo.h>
+#import "WKAPICast.h"
#import "WKInspectorResourceURLSchemeHandler.h"
#import "WKInspectorWKWebView.h"
#import <WebKit/WKNavigationAction.h>
@@ -45,6 +45,7 @@
#import "WebPageProxy.h"
#import "_WKInspectorConfigurationInternal.h"
#import <WebCore/VersionChecks.h>
+#import <WebKit/WKFrameInfo.h>
#import <wtf/WeakObjCPtr.h>
static NSString * const WKInspectorResourceScheme = @"inspector-resource";
Modified: trunk/Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -32,6 +32,7 @@
#include "APIPageConfiguration.h"
#include "InspectorResourceURLSchemeHandler.h"
#include "PageClientImpl.h"
+#include "WKAPICast.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebPageGroup.h"
#include "WebPageProxy.h"
Modified: trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -29,6 +29,7 @@
#include "APIArray.h"
#include "APINotificationProvider.h"
#include "APISecurityOrigin.h"
+#include "WKSharedAPICast.h"
#include "WebNotification.h"
#include "WebNotificationManagerMessages.h"
#include "WebPageProxy.h"
Modified: trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,6 +26,7 @@
#pragma once
#include "DrawingAreaProxy.h"
+#include "ProcessThrottler.h"
#include "RemoteLayerTreeHost.h"
#include "TransactionID.h"
#include <WebCore/AnimationFrameRate.h>
@@ -68,7 +69,7 @@
// For now, all callbacks are called before committing changes, because that's what the only client requires.
// Once we have other callbacks, it may make sense to have a before-commit/after-commit option.
- void dispatchAfterEnsuringDrawing(WTF::Function<void (CallbackBase::Error)>&&) final;
+ void dispatchAfterEnsuringDrawing(Function<void()>&&) final;
#if PLATFORM(MAC)
void didChangeViewExposedRect() final;
@@ -120,7 +121,7 @@
TransactionID m_transactionIDForUnhidingContent;
ActivityStateChangeID m_activityStateChangeID { ActivityStateChangeAsynchronous };
- CallbackMap m_callbacks;
+ HashMap<CallbackID, std::pair<Function<void()>, std::unique_ptr<ProcessThrottler::BackgroundActivity>>> m_callbacks;
RetainPtr<WKOneShotDisplayLinkHandler> m_displayLinkHandler;
};
Modified: trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -127,7 +127,6 @@
RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy()
{
- m_callbacks.invalidate(CallbackBase::Error::OwnerWasInvalidated);
process().removeMessageReceiver(Messages::RemoteLayerTreeDrawingAreaProxy::messageReceiverName(), m_identifier);
#if PLATFORM(IOS_FAMILY)
@@ -269,8 +268,8 @@
m_webPageProxy.didReachLayoutMilestone(milestones);
for (auto& callbackID : layerTreeTransaction.callbackIDs()) {
- if (auto callback = m_callbacks.take<VoidCallback>(callbackID))
- callback->performCallback();
+ if (auto callback = m_callbacks.take(callbackID).first)
+ callback();
}
}
@@ -471,14 +470,16 @@
}
}
-void RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing(WTF::Function<void (CallbackBase::Error)>&& callbackFunction)
+void RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing(Function<void()>&& callbackFunction)
{
if (!m_webPageProxy.hasRunningProcess()) {
- callbackFunction(CallbackBase::Error::OwnerWasInvalidated);
+ callbackFunction();
return;
}
- send(Messages::DrawingArea::AddTransactionCallbackID(m_callbacks.put(WTFMove(callbackFunction), process().throttler().backgroundActivity("RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing"_s))));
+ auto callbackID = CallbackID::generateID();
+ m_callbacks.set(callbackID, std::make_pair(WTFMove(callbackFunction), process().throttler().backgroundActivity("RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing"_s).moveToUniquePtr()));
+ send(Messages::DrawingArea::AddTransactionCallbackID(callbackID));
}
void RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate()
Modified: trunk/Source/WebKit/UIProcess/WebContextClient.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebContextClient.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebContextClient.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,6 +26,7 @@
#include "config.h"
#include "WebContextClient.h"
+#include "WKAPICast.h"
#include "WebProcessPool.h"
namespace WebKit {
Modified: trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,9 +26,9 @@
#pragma once
#include "APIObject.h"
-#include "GenericCallback.h"
#include "MessageReceiver.h"
#include "WebContextSupplement.h"
+#include <WebCore/HTTPCookieAcceptPolicy.h>
#include <pal/SessionID.h>
#include <wtf/Forward.h>
#include <wtf/HashMap.h>
Modified: trunk/Source/WebKit/UIProcess/WebFrameProxy.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebFrameProxy.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebFrameProxy.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -27,7 +27,6 @@
#include "APIObject.h"
#include "FrameLoadState.h"
-#include "GenericCallback.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebPageProxy.h"
#include <WebCore/FrameLoaderTypes.h>
@@ -41,6 +40,7 @@
namespace API {
class Navigation;
+class URL;
}
namespace IPC {
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -52,6 +52,7 @@
#include "APIPolicyClient.h"
#include "APIResourceLoadClient.h"
#include "APISecurityOrigin.h"
+#include "APISerializedScriptValue.h"
#include "APIUIClient.h"
#include "APIURLRequest.h"
#include "APIWebsitePolicies.h"
@@ -4478,9 +4479,7 @@
m_drawingArea->waitForBackingStoreUpdateOnNextPaint();
sendWithAsyncReply(Messages::WebPage::ForceRepaint(), [this, protectedThis = Ref { *this }, callback = WTFMove(callback)] () mutable {
- callAfterNextPresentationUpdate([callback = WTFMove(callback)] (auto) mutable {
- callback();
- });
+ callAfterNextPresentationUpdate(WTFMove(callback));
});
}
@@ -9830,12 +9829,10 @@
send(Messages::WebPage::ClearWheelEventTestMonitor());
}
-void WebPageProxy::callAfterNextPresentationUpdate(WTF::Function<void (CallbackBase::Error)>&& callback)
+void WebPageProxy::callAfterNextPresentationUpdate(Function<void()>&& callback)
{
- if (!hasRunningProcess() || !m_drawingArea) {
- callback(CallbackBase::Error::OwnerWasInvalidated);
- return;
- }
+ if (!hasRunningProcess() || !m_drawingArea)
+ return callback();
m_drawingArea->dispatchAfterEnsuringDrawing(WTFMove(callback));
}
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -68,6 +68,7 @@
#include "WebContextMenuItemData.h"
#include "WebCoreArgumentCoders.h"
#include "WebDataListSuggestionsDropdown.h"
+#include "WebEvent.h"
#include "WebFrameProxy.h"
#include "WebPageCreationParameters.h"
#include "WebPageDiagnosticLoggingClient.h"
@@ -198,6 +199,7 @@
#endif
namespace API {
+class Array;
class Attachment;
class ContentWorld;
class ContextMenuClient;
@@ -208,13 +210,19 @@
class FormClient;
class FullscreenClient;
class HistoryClient;
+class HitTestResult;
class IconLoadingClient;
class LoaderClient;
class Navigation;
+class NavigationAction;
class NavigationClient;
+class NavigationResponse;
+class PageConfiguration;
class PolicyClient;
class ResourceLoadClient;
+class SerializedScriptValue;
class UIClient;
+class URL;
class URLRequest;
}
@@ -336,7 +344,10 @@
namespace WebKit {
class AudioSessionRoutingArbitratorProxy;
+class AuthenticationChallengeProxy;
+class CallbackID;
class DrawingAreaProxy;
+class DownloadProxy;
class GamepadData;
class MediaUsageManager;
class NativeWebGestureEvent;
@@ -360,6 +371,7 @@
class WebBackForwardListItem;
class WebContextMenuProxy;
class WebEditCommandProxy;
+class WebFrameProxy;
class WebFullScreenManagerProxy;
class PlaybackSessionManagerProxy;
class UserMediaPermissionRequestProxy;
@@ -367,6 +379,7 @@
class WebAuthenticatorCoordinatorProxy;
class WebBackForwardCache;
class WebDeviceOrientationUpdateProviderProxy;
+class WebInspectorUIProxy;
class WebKeyboardEvent;
class WebMouseEvent;
class WebNavigationState;
@@ -411,6 +424,7 @@
struct WebPopupItem;
struct WebSpeechSynthesisVoice;
+enum class FindOptions : uint16_t;
enum class ImageAnalysisType : uint8_t;
enum class TapHandlingResult : uint8_t;
enum class TextRecognitionUpdateResult : uint8_t;
@@ -420,6 +434,8 @@
enum class UndoOrRedo : bool;
enum class WebContentMode : uint8_t;
+typedef uint32_t SnapshotOptions;
+
#if HAVE(VISIBILITY_PROPAGATION_VIEW)
using LayerHostingContextID = uint32_t;
#endif
@@ -1619,7 +1635,7 @@
// For testing
void clearWheelEventTestMonitor();
- void callAfterNextPresentationUpdate(WTF::Function<void (CallbackBase::Error)>&&);
+ void callAfterNextPresentationUpdate(Function<void()>&&);
void didReachLayoutMilestone(OptionSet<WebCore::LayoutMilestone>);
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2021-09-22 00:34:47 UTC (rev 282856)
@@ -36,6 +36,8 @@
#include "APINavigation.h"
#include "APIPageConfiguration.h"
#include "APIProcessPoolConfiguration.h"
+#include "APIString.h"
+#include "APIURLRequest.h"
#include "AuxiliaryProcessMessages.h"
#include "DownloadProxy.h"
#include "DownloadProxyMessages.h"
@@ -55,6 +57,7 @@
#include "TextChecker.h"
#include "UIGamepad.h"
#include "UIGamepadProvider.h"
+#include "WKAPICast.h"
#include "WKContextPrivate.h"
#include "WebAutomationSession.h"
#include "WebBackForwardCache.h"
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -29,7 +29,6 @@
#include "APIObject.h"
#include "APIProcessPoolConfiguration.h"
#include "GPUProcessProxy.h"
-#include "GenericCallback.h"
#include "HiddenPageThrottlingAutoIncreasesCounter.h"
#include "MessageReceiver.h"
#include "MessageReceiverMap.h"
Modified: trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -371,9 +371,9 @@
return;
}
- drawingArea->dispatchAfterEnsuringDrawing([pageID, gestureID] (CallbackBase::Error error) {
+ drawingArea->dispatchAfterEnsuringDrawing([pageID, gestureID] {
if (auto gestureController = controllerForGesture(pageID, gestureID))
- gestureController->willCommitPostSwipeTransitionLayerTree(error == CallbackBase::Error::None);
+ gestureController->willCommitPostSwipeTransitionLayerTree(true);
});
drawingArea->hideContentUntilPendingUpdate();
};
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -4954,7 +4954,7 @@
{
_ignoreSelectionCommandFadeCount++;
_page->scheduleFullEditorStateUpdate();
- _page->callAfterNextPresentationUpdate([weakSelf = WeakObjCPtr<WKContentView>(self)] (auto) {
+ _page->callAfterNextPresentationUpdate([weakSelf = WeakObjCPtr<WKContentView>(self)] {
if (auto strongSelf = weakSelf.get())
strongSelf->_ignoreSelectionCommandFadeCount--;
});
@@ -9019,7 +9019,7 @@
RELEASE_LOG(DragAndDrop, "Drag interaction willAnimateCancelWithAnimator (animation completion block fired)");
page->dragCancelled();
if (auto completion = protectedSelf->_dragDropInteractionState.takeDragCancelSetDownBlock()) {
- page->callAfterNextPresentationUpdate([completion, protectedSelf] (WebKit::CallbackBase::Error) {
+ page->callAfterNextPresentationUpdate([completion, protectedSelf] {
completion();
protectedSelf->_isAnimatingDragCancel = NO;
});
Modified: trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -52,7 +52,7 @@
void commitTransientZoom(double scale, WebCore::FloatPoint origin) override;
void waitForDidUpdateActivityState(ActivityStateChangeID) override;
- void dispatchAfterEnsuringDrawing(WTF::Function<void (CallbackBase::Error)>&&) override;
+ void dispatchAfterEnsuringDrawing(Function<void()>&&) override;
void dispatchPresentationCallbacksAfterFlushingLayers(const Vector<CallbackID>&) final;
void willSendUpdateGeometry() override;
@@ -76,7 +76,7 @@
// The last maxmium size for size-to-content auto-sizing we sent to the web process.
WebCore::IntSize m_lastSentSizeToContentAutoSizeMaximumSize;
- CallbackMap m_callbacks;
+ HashMap<CallbackID, Function<void()>> m_callbacks;
};
} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -50,7 +50,6 @@
TiledCoreAnimationDrawingAreaProxy::~TiledCoreAnimationDrawingAreaProxy()
{
- m_callbacks.invalidate(CallbackBase::Error::OwnerWasInvalidated);
}
void TiledCoreAnimationDrawingAreaProxy::deviceScaleFactorDidChange()
@@ -203,21 +202,23 @@
send(Messages::DrawingArea::CommitTransientZoom(scale, origin));
}
-void TiledCoreAnimationDrawingAreaProxy::dispatchAfterEnsuringDrawing(WTF::Function<void (CallbackBase::Error)>&& callback)
+void TiledCoreAnimationDrawingAreaProxy::dispatchAfterEnsuringDrawing(Function<void()>&& callback)
{
if (!m_webPageProxy.hasRunningProcess()) {
- callback(CallbackBase::Error::OwnerWasInvalidated);
+ callback();
return;
}
- send(Messages::DrawingArea::AddTransactionCallbackID(m_callbacks.put(WTFMove(callback), nullptr)));
+ auto callbackID = CallbackID::generateID();
+ m_callbacks.set(callbackID, WTFMove(callback));
+ send(Messages::DrawingArea::AddTransactionCallbackID(callbackID));
}
void TiledCoreAnimationDrawingAreaProxy::dispatchPresentationCallbacksAfterFlushingLayers(const Vector<CallbackID>& callbackIDs)
{
for (auto& callbackID : callbackIDs) {
- if (auto callback = m_callbacks.take<VoidCallback>(callbackID))
- callback->performCallback();
+ if (auto callback = m_callbacks.take(callbackID))
+ callback();
}
}
Modified: trunk/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,7 +26,6 @@
#if ENABLE(FULLSCREEN_API) && PLATFORM(MAC)
#import <AppKit/AppKit.h>
-#import "GenericCallback.h"
#import <wtf/NakedPtr.h>
#import <wtf/NakedRef.h>
#import <wtf/RetainPtr.h>
Modified: trunk/Source/WebKit/UIProcess/mac/WKTextFinderClient.mm (282855 => 282856)
--- trunk/Source/WebKit/UIProcess/mac/WKTextFinderClient.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/UIProcess/mac/WKTextFinderClient.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -30,6 +30,7 @@
#import "APIFindClient.h"
#import "APIFindMatchesClient.h"
+#import "WebFindOptions.h"
#import "WebImage.h"
#import "WebPageProxy.h"
#import <algorithm>
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (282855 => 282856)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2021-09-22 00:34:47 UTC (rev 282856)
@@ -1696,7 +1696,6 @@
BC14DF9F120B635F00826C0C /* WKBundleScriptWorld.h in Headers */ = {isa = PBXBuildFile; fileRef = BC14DF9D120B635F00826C0C /* WKBundleScriptWorld.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC14E10A120B905E00826C0C /* InjectedBundlePageFormClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC14E108120B905E00826C0C /* InjectedBundlePageFormClient.h */; };
BC177465118B9FF4007D9E9A /* WKPagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BC177464118B9FF4007D9E9A /* WKPagePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
- BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = BC17753E118BABF0007D9E9A /* GenericCallback.h */; };
BC1A7C581136E19C00FB7167 /* ProcessLauncher.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1A7C571136E19C00FB7167 /* ProcessLauncher.h */; };
BC1B419811D41D570011E8DD /* WKBundlePagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1B419711D41D570011E8DD /* WKBundlePagePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC1BE1E012D54A410004A228 /* WebGeolocationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1BE1DE12D54A410004A228 /* WebGeolocationClient.h */; };
@@ -5322,7 +5321,6 @@
BC14E107120B905E00826C0C /* InjectedBundlePageFormClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundlePageFormClient.cpp; sourceTree = "<group>"; };
BC14E108120B905E00826C0C /* InjectedBundlePageFormClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundlePageFormClient.h; sourceTree = "<group>"; };
BC177464118B9FF4007D9E9A /* WKPagePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPagePrivate.h; sourceTree = "<group>"; };
- BC17753E118BABF0007D9E9A /* GenericCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericCallback.h; sourceTree = "<group>"; };
BC1A7C571136E19C00FB7167 /* ProcessLauncher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProcessLauncher.h; sourceTree = "<group>"; };
BC1B419711D41D570011E8DD /* WKBundlePagePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePagePrivate.h; sourceTree = "<group>"; };
BC1BE1DE12D54A410004A228 /* WebGeolocationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationClient.h; sourceTree = "<group>"; };
@@ -10172,7 +10170,6 @@
1A6422FC12DD08FE00CAAE2C /* DrawingAreaProxy.messages.in */,
1AE00D5E1831792100087DD7 /* FrameLoadState.cpp */,
1AE00D5F1831792100087DD7 /* FrameLoadState.h */,
- BC17753E118BABF0007D9E9A /* GenericCallback.h */,
9EC532A22447FBAD00215216 /* GeolocationIdentifier.h */,
BC06F44912DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.cpp */,
BC06F44812DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.h */,
@@ -12193,7 +12190,6 @@
CD19D2EA2046406F0017074A /* FullscreenTouchSecheuristic.h in Headers */,
CDA93DB022F8BCF400490A69 /* FullscreenTouchSecheuristicParameters.h in Headers */,
515BE1B31D5902DD00DD7C68 /* GamepadData.h in Headers */,
- BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */,
9EC532A32447FBAD00215216 /* GeolocationIdentifier.h in Headers */,
BC06F42F12DBB9B6002D78DE /* GeolocationPermissionRequestManager.h in Headers */,
BC06F44A12DBD1F5002D78DE /* GeolocationPermissionRequestManagerProxy.h in Headers */,
Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm (282855 => 282856)
--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm 2021-09-22 00:32:43 UTC (rev 282855)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm 2021-09-22 00:34:47 UTC (rev 282856)
@@ -26,7 +26,6 @@
#import "config.h"
#import "RemoteLayerTreeContext.h"
-#import "GenericCallback.h"
#import "GraphicsLayerCARemote.h"
#import "PlatformCALayerRemote.h"
#import "RemoteLayerBackingStoreCollection.h"