Diff
Modified: trunk/Source/WTF/ChangeLog (274226 => 274227)
--- trunk/Source/WTF/ChangeLog 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WTF/ChangeLog 2021-03-10 19:58:31 UTC (rev 274227)
@@ -1,3 +1,17 @@
+2021-03-09 Darin Adler <[email protected]>
+
+ [Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads
+ https://bugs.webkit.org/show_bug.cgi?id=223013
+
+ Reviewed by Geoffrey Garen.
+
+ * wtf/MainThread.cpp:
+ (WTF::ensureOnMainRunLoop): Added. For use in cases where we want to be more
+ efficient, and synchronous, when already on the main run loop, but we can do
+ the work asynchronously when called and not on the main run loop.
+
+ * wtf/MainThread.h: Added ensureOnMainRunLoop.
+
2021-03-10 Michael Catanzaro <[email protected]>
[GTK] Reenable -fvisibility=hidden
Modified: trunk/Source/WTF/wtf/MainThread.cpp (274226 => 274227)
--- trunk/Source/WTF/wtf/MainThread.cpp 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WTF/wtf/MainThread.cpp 2021-03-10 19:58:31 UTC (rev 274227)
@@ -68,6 +68,14 @@
RunLoop::main().dispatch(WTFMove(function));
}
+void ensureOnMainRunLoop(Function<void()>&& function)
+{
+ if (RunLoop::isMain())
+ function();
+ else
+ RunLoop::main().dispatch(WTFMove(function));
+}
+
void callOnMainThread(Function<void()>&& function)
{
#if USE(WEB_THREAD)
Modified: trunk/Source/WTF/wtf/MainThread.h (274226 => 274227)
--- trunk/Source/WTF/wtf/MainThread.h 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WTF/wtf/MainThread.h 2021-03-10 19:58:31 UTC (rev 274227)
@@ -57,6 +57,7 @@
WTF_EXPORT_PRIVATE bool isMainRunLoop();
WTF_EXPORT_PRIVATE void callOnMainRunLoop(Function<void()>&&);
WTF_EXPORT_PRIVATE void callOnMainRunLoopAndWait(Function<void()>&&);
+WTF_EXPORT_PRIVATE void ensureOnMainRunLoop(Function<void()>&&); // Sync if called on main run loop, async otherwise.
#if USE(WEB_THREAD)
WTF_EXPORT_PRIVATE bool isWebThread();
@@ -79,6 +80,7 @@
using WTF::callOnMainThreadAndWait;
using WTF::callOnMainRunLoop;
using WTF::callOnMainRunLoopAndWait;
+using WTF::ensureOnMainRunLoop;
using WTF::canCurrentThreadAccessThreadLocalData;
using WTF::isMainRunLoop;
using WTF::isMainThread;
@@ -85,10 +87,12 @@
using WTF::isMainThreadOrGCThread;
using WTF::isUIThread;
using WTF::isWebThread;
+
#if PLATFORM(COCOA)
using WTF::dispatchAsyncOnMainThreadWithWebThreadLockIfNeeded;
using WTF::callOnWebThreadOrDispatchAsyncOnMainThread;
#endif
+
#if USE(WEB_THREAD)
using WTF::initializeWebThread;
using WTF::initializeApplicationUIThread;
Modified: trunk/Source/WebCore/ChangeLog (274226 => 274227)
--- trunk/Source/WebCore/ChangeLog 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebCore/ChangeLog 2021-03-10 19:58:31 UTC (rev 274227)
@@ -1,3 +1,19 @@
+2021-03-09 Darin Adler <[email protected]>
+
+ [Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads
+ https://bugs.webkit.org/show_bug.cgi?id=223013
+
+ Reviewed by Geoffrey Garen.
+
+ * platform/mac/WebCoreObjCExtras.h: Added WebCoreObjCScheduleDeallocateOnMainRunLoop.
+ Use #pragma once.
+
+ * platform/mac/WebCoreObjCExtras.mm:
+ (safeIsKindOfClass): Added. Allows us to use the functions below on classes that
+ play proxying tricks with the isKindOfClass: method.
+ (WebCoreObjCScheduleDeallocateOnMainThread): Use safeIsKindOfClass.
+ (WebCoreObjCScheduleDeallocateOnMainRunLoop): Added.
+
2021-03-10 Devin Rousso <[email protected]>
Unreviewed, fix the internal build
Modified: trunk/Source/WebCore/platform/mac/WebCoreObjCExtras.h (274226 => 274227)
--- trunk/Source/WebCore/platform/mac/WebCoreObjCExtras.h 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebCore/platform/mac/WebCoreObjCExtras.h 2021-03-10 19:58:31 UTC (rev 274227)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2007-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -6,13 +6,13 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * 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.
* 3. Neither the name of Apple Inc. ("Apple") nor the names of
* its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@@ -26,13 +26,8 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebCoreObjCExtras_h
-#define WebCoreObjCExtras_h
+#pragma once
-#include <CoreFoundation/CFBase.h>
-
-// The 'Class' that should be passed in here is the class of the
-// object that implements the dealloc method that this function is called from.
-WEBCORE_EXPORT bool WebCoreObjCScheduleDeallocateOnMainThread(Class cls, id);
-
-#endif // WebCoreObjCExtras_h
+// The class passed here is the class that implements the dealloc method that this function is called from.
+WEBCORE_EXPORT bool WebCoreObjCScheduleDeallocateOnMainThread(Class, id);
+WEBCORE_EXPORT bool WebCoreObjCScheduleDeallocateOnMainRunLoop(Class, id);
Modified: trunk/Source/WebCore/platform/mac/WebCoreObjCExtras.mm (274226 => 274227)
--- trunk/Source/WebCore/platform/mac/WebCoreObjCExtras.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebCore/platform/mac/WebCoreObjCExtras.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2007-2021 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -6,13 +6,13 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * 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.
* 3. Neither the name of Apple Inc. ("Apple") nor the names of
* its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@@ -35,18 +35,49 @@
#import <wtf/ObjCRuntimeExtras.h>
#import <wtf/Threading.h>
-bool WebCoreObjCScheduleDeallocateOnMainThread(Class cls, id object)
+#if ASSERT_ENABLED
+
+// This is like the isKindOfClass: method, bypassing it to get the correct answer for our purposes even for classes that override it.
+// At the time of this writing, that included WebKit's WKObject class.
+static bool safeIsKindOfClass(id object, Class testClass)
{
- ASSERT([object isKindOfClass:cls]);
+ if (!object)
+ return false;
+ for (auto ancestorClass = object_getClass(object); ancestorClass; ancestorClass = class_getSuperclass(ancestorClass)) {
+ if (ancestorClass == testClass)
+ return true;
+ }
+ return false;
+}
+#endif
+
+bool WebCoreObjCScheduleDeallocateOnMainThread(Class deallocMethodClass, id object)
+{
+ ASSERT(safeIsKindOfClass(object, deallocMethodClass));
+
if (isMainThread())
return false;
- callOnMainThread([cls, object] {
+ callOnMainThread([deallocMethodClass, object] {
auto deallocSelector = sel_registerName("dealloc");
- wtfCallIMP<void>(method_getImplementation(class_getInstanceMethod(cls, deallocSelector)), object, deallocSelector);
+ wtfCallIMP<void>(method_getImplementation(class_getInstanceMethod(deallocMethodClass, deallocSelector)), object, deallocSelector);
});
return true;
}
+bool WebCoreObjCScheduleDeallocateOnMainRunLoop(Class deallocMethodClass, id object)
+{
+ ASSERT(safeIsKindOfClass(object, deallocMethodClass));
+
+ if (isMainRunLoop())
+ return false;
+
+ callOnMainRunLoop([deallocMethodClass, object] {
+ auto deallocSelector = sel_registerName("dealloc");
+ wtfCallIMP<void>(method_getImplementation(class_getInstanceMethod(deallocMethodClass, deallocSelector)), object, deallocSelector);
+ });
+
+ return true;
+}
Modified: trunk/Source/WebKit/ChangeLog (274226 => 274227)
--- trunk/Source/WebKit/ChangeLog 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/ChangeLog 2021-03-10 19:58:31 UTC (rev 274227)
@@ -1,3 +1,164 @@
+2021-03-09 Darin Adler <[email protected]>
+
+ [Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads
+ https://bugs.webkit.org/show_bug.cgi?id=223013
+
+ Reviewed by Geoffrey Garen.
+
+ Used ensureOnMainRunLoop in dealloc methods where possible to make them
+ thread-safe. Used WebCoreObjCScheduleDeallocateOnMainRunLoop instead in cases
+ that were too complex to be done with ensureOnMainRunLoop.
+
+ * Shared/API/APIFrameHandle.cpp:
+ (API::FrameHandle::~FrameHandle): Deleted.
+ * Shared/API/APIFrameHandle.h: Use pragma once. Marked the class final.
+ Removed explicit destructor because it is not helpful.
+
+ * Shared/API/Cocoa/_WKFrameHandle.mm:
+ (-[_WKFrameHandle dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.
+ * Shared/API/Cocoa/_WKHitTestResult.mm:
+ (-[_WKHitTestResult dealloc]): Ditto.
+ * Shared/Cocoa/WKNSArray.mm:
+ (-[WKNSArray dealloc]): Ditto.
+ * Shared/Cocoa/WKNSData.mm:
+ (-[WKNSData dealloc]): Ditto.
+ * Shared/Cocoa/WKNSDictionary.mm:
+ (-[WKNSDictionary dealloc]): Ditto.
+ * Shared/Cocoa/WKObject.mm:
+ (-[WKObject dealloc]): Ditto.
+
+ * UIProcess/API/C/mac/WKPagePrivateMac.mm:
+ (-[WKObservablePageState dealloc]): Use ensureOnMainRunLoop.
+
+ * UIProcess/API/Cocoa/PageLoadStateObserver.h: Added clearObject for use in
+ the WKObservablePageState deallc method. Removed header guards since this is
+ an Objective-C header and #import takes care of it.
+
+ * UIProcess/API/Cocoa/WKBackForwardList.mm:
+ (-[WKBackForwardList dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.
+ * UIProcess/API/Cocoa/WKBackForwardListItem.mm:
+ (-[WKBackForwardListItem dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
+ (-[WKBrowsingContextController dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:
+ (-[WKBrowsingContextGroup dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKConnection.mm:
+ (-[WKConnection dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKContentRuleList.mm:
+ (-[WKContentRuleList dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKContentRuleListStore.mm:
+ (-[WKContentRuleListStore dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKContentWorld.mm:
+ (-[WKContentWorld dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKDownload.mm:
+ (-[WKDownload dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKFrameInfo.mm:
+ (-[WKFrameInfo dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
+ (-[WKHTTPCookieStore dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKNavigation.mm:
+ (-[WKNavigation dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKNavigationAction.mm:
+ (-[WKNavigationAction dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKNavigationData.mm:
+ (-[WKNavigationData dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKNavigationResponse.mm:
+ (-[WKNavigationResponse dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKPreferences.mm:
+ (-[WKPreferences dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKProcessPool.mm:
+ (-[WKProcessPool dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKSecurityOrigin.mm:
+ (-[WKSecurityOrigin dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKUserContentController.mm:
+ (-[WKUserContentController dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKUserScript.mm:
+ (-[WKUserScript dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKWebpagePreferences.mm:
+ (-[WKWebpagePreferences dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
+ (-[WKWebsiteDataRecord dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
+ (-[WKWebsiteDataStore dealloc]): Ditto.
+ * UIProcess/API/Cocoa/WKWindowFeatures.mm:
+ (-[WKWindowFeatures dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKApplicationManifest.mm:
+ (-[_WKApplicationManifest dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKAttachment.mm:
+ (-[_WKAttachment dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKAutomationSession.mm:
+ (-[_WKAutomationSession dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKContentRuleListAction.mm:
+ (-[_WKContentRuleListAction dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKCustomHeaderFields.mm:
+ (-[_WKCustomHeaderFields dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKExperimentalFeature.mm:
+ (-[_WKExperimentalFeature dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKFrameTreeNode.mm:
+ (-[_WKFrameTreeNode dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKGeolocationPosition.mm:
+ (-[_WKGeolocationPosition dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKInspectorConfiguration.mm:
+ (-[_WKInspectorConfiguration dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.mm:
+ (-[_WKInspectorDebuggableInfo dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKInspectorExtension.mm:
+ (-[_WKInspectorExtension dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKInternalDebugFeature.mm:
+ (-[_WKInternalDebugFeature dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+ (-[_WKProcessPoolConfiguration dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:
+ (-[_WKResourceLoadInfo dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm:
+ (-[_WKResourceLoadStatisticsFirstParty dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm:
+ (-[_WKResourceLoadStatisticsThirdParty dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKUserInitiatedAction.mm:
+ (-[_WKUserInitiatedAction dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
+ (-[_WKUserStyleSheet dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKVisitedLinkStore.mm:
+ (-[_WKVisitedLinkStore dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:
+ (-[_WKWebAuthenticationAssertionResponse dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
+ (-[_WKWebAuthenticationPanel dealloc]): Ditto.
+ * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
+ (-[_WKWebsiteDataStoreConfiguration dealloc]): Ditto.
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView dealloc]): Ditto.
+
+ * UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
+ (-[WKSafeBrowsingWarning dealloc]): Use ensureOnMainRunLoop.
+ * UIProcess/mac/WKPrintingView.mm:
+ (-[WKPrintingView dealloc]): Ditto.
+
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
+ (-[WKWebProcessPlugInFrame dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:
+ (-[WKWebProcessPlugInHitTestResult dealloc]): Ditto.
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
+ (-[WKWebProcessPlugInNodeHandle dealloc]): Ditto.
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm:
+ (-[WKWebProcessPlugInPageGroup dealloc]): Ditto.
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:
+ (-[WKWebProcessPlugInRangeHandle dealloc]): Ditto.
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:
+ (-[WKWebProcessPlugInScriptWorld dealloc]): Ditto.
+
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
+ (-[WKDOMNode dealloc]): Use ensureOnMainRunLoop.
+ * WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
+ (-[WKDOMRange dealloc]): Ditto.
+
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
+ (-[WKWebProcessPlugInController dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+ (-[WKWebProcessPlugInBrowserContextController dealloc]): Ditto.
+
2021-03-10 Wenson Hsieh <[email protected]>
Logic for updating the text selection when dragging selection handles should account for image overlays
Modified: trunk/Source/WebKit/Shared/API/APIFrameHandle.cpp (274226 => 274227)
--- trunk/Source/WebKit/Shared/API/APIFrameHandle.cpp 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/API/APIFrameHandle.cpp 2021-03-10 19:58:31 UTC (rev 274227)
@@ -48,10 +48,6 @@
{
}
-FrameHandle::~FrameHandle()
-{
-}
-
void FrameHandle::encode(IPC::Encoder& encoder) const
{
encoder << m_frameID;
Modified: trunk/Source/WebKit/Shared/API/APIFrameHandle.h (274226 => 274227)
--- trunk/Source/WebKit/Shared/API/APIFrameHandle.h 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/API/APIFrameHandle.h 2021-03-10 19:58:31 UTC (rev 274227)
@@ -23,8 +23,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef APIFrameHandle_h
-#define APIFrameHandle_h
+#pragma once
#include "APIObject.h"
#include <WebCore/FrameIdentifier.h>
@@ -37,13 +36,12 @@
namespace API {
-class FrameHandle : public ObjectImpl<Object::Type::FrameHandle> {
+class FrameHandle final : public ObjectImpl<Object::Type::FrameHandle> {
public:
static Ref<FrameHandle> create(WebCore::FrameIdentifier);
static Ref<FrameHandle> createAutoconverting(WebCore::FrameIdentifier);
explicit FrameHandle(WebCore::FrameIdentifier, bool isAutoconverting);
- virtual ~FrameHandle();
WebCore::FrameIdentifier frameID() const { return m_frameID; }
bool isAutoconverting() const { return m_isAutoconverting; }
@@ -57,5 +55,3 @@
};
} // namespace API
-
-#endif // APIFrameHandle_h
Modified: trunk/Source/WebKit/Shared/API/Cocoa/_WKFrameHandle.mm (274226 => 274227)
--- trunk/Source/WebKit/Shared/API/Cocoa/_WKFrameHandle.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/API/Cocoa/_WKFrameHandle.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,11 +27,15 @@
#import "_WKFrameHandleInternal.h"
#import <WebCore/FrameIdentifier.h>
+#import <WebCore/WebCoreObjCExtras.h>
@implementation _WKFrameHandle
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKFrameHandle.class, self))
+ return;
+
_frameHandle->~FrameHandle();
[super dealloc];
Modified: trunk/Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.mm (274226 => 274227)
--- trunk/Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,10 +28,15 @@
#if PLATFORM(MAC)
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation _WKHitTestResult
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKHitTestResult.class, self))
+ return;
+
_hitTestResult->~HitTestResult();
[super dealloc];
Modified: trunk/Source/WebKit/Shared/Cocoa/WKNSArray.mm (274226 => 274227)
--- trunk/Source/WebKit/Shared/Cocoa/WKNSArray.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/Cocoa/WKNSArray.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,8 @@
#import "config.h"
#import "WKNSArray.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation WKNSArray {
API::ObjectStorage<API::Array> _array;
}
@@ -32,6 +34,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNSArray.class, self))
+ return;
+
_array->~Array();
[super dealloc];
Modified: trunk/Source/WebKit/Shared/Cocoa/WKNSData.mm (274226 => 274227)
--- trunk/Source/WebKit/Shared/Cocoa/WKNSData.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/Cocoa/WKNSData.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,8 @@
#import "config.h"
#import "WKNSData.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation WKNSData {
API::ObjectStorage<API::Data> _data;
}
@@ -32,6 +34,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNSData.class, self))
+ return;
+
_data->~Data();
[super dealloc];
Modified: trunk/Source/WebKit/Shared/Cocoa/WKNSDictionary.mm (274226 => 274227)
--- trunk/Source/WebKit/Shared/Cocoa/WKNSDictionary.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/Cocoa/WKNSDictionary.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "WKNSDictionary.h"
#import "WKNSArray.h"
+#import <WebCore/WebCoreObjCExtras.h>
using namespace WebKit;
@@ -36,6 +37,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNSDictionary.class, self))
+ return;
+
_dictionary->~Dictionary();
[super dealloc];
Modified: trunk/Source/WebKit/Shared/Cocoa/WKObject.mm (274226 => 274227)
--- trunk/Source/WebKit/Shared/Cocoa/WKObject.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/Shared/Cocoa/WKObject.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "WKObject.h"
#import "APIObject.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
@interface NSObject ()
@@ -51,6 +52,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKObject.class, self))
+ return;
+
API::Object::fromWKObjectExtraSpace(self).~Object();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/C/mac/WKPagePrivateMac.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/C/mac/WKPagePrivateMac.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/C/mac/WKPagePrivateMac.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -37,6 +37,7 @@
#import "WebPageProxy.h"
#import "WebPreferences.h"
#import "WebProcessPool.h"
+#import <wtf/MainThread.h>
@interface WKObservablePageState : NSObject <_WKObservablePageState> {
RefPtr<WebKit::WebPageProxy> _page;
@@ -61,8 +62,12 @@
- (void)dealloc
{
- _page->pageLoadState().removeObserver(*_observer);
+ _observer->clearObject();
+ ensureOnMainRunLoop([page = WTFMove(_page), observer = WTFMove(_observer)] {
+ page->pageLoadState().removeObserver(*observer);
+ });
+
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/PageLoadStateObserver.h (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/PageLoadStateObserver.h 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/PageLoadStateObserver.h 2021-03-10 19:58:31 UTC (rev 274227)
@@ -23,9 +23,6 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PageLoadStateObserver_h
-#define PageLoadStateObserver_h
-
#import "PageLoadState.h"
namespace WebKit {
@@ -39,6 +36,11 @@
{
}
+ void clearObject()
+ {
+ m_object = nil;
+ }
+
private:
void willChangeIsLoading() override
{
@@ -115,5 +117,3 @@
};
}
-
-#endif // PageLoadStateObserver_h
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBackForwardList.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBackForwardList.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBackForwardList.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import "WKBackForwardListItemInternal.h"
#import "WKNSArray.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKBackForwardList {
API::ObjectStorage<WebKit::WebBackForwardList> _list;
@@ -35,6 +36,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKBackForwardList.class, self))
+ return;
+
_list->~WebBackForwardList();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "WKBackForwardListItemInternal.h"
#import "WKNSURLExtras.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKBackForwardListItem {
API::ObjectStorage<WebKit::WebBackForwardListItem> _item;
@@ -34,6 +35,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKBackForwardListItem.class, self))
+ return;
+
_item->~WebBackForwardListItem();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -56,6 +56,7 @@
#import "WebProcessPool.h"
#import "WebProtectionSpace.h"
#import "_WKRemoteObjectRegistryInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/NeverDestroyed.h>
#import <wtf/WeakObjCPtr.h>
@@ -90,6 +91,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKBrowsingContextController.class, self))
+ return;
+
ASSERT(browsingContextControllerMap().get(_page.get()) == self);
browsingContextControllerMap().remove(_page.get());
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextGroup.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextGroup.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextGroup.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -38,6 +38,7 @@
#import "WKStringCF.h"
#import "WKURL.h"
#import "WKURLCF.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/Vector.h>
ALLOW_DEPRECATED_IMPLEMENTATIONS_BEGIN
@@ -48,6 +49,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKBrowsingContextGroup.class, self))
+ return;
+
_pageGroup->~WebPageGroup();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKConnection.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -30,6 +30,7 @@
#import "WKRetainPtr.h"
#import "WKSharedAPICast.h"
#import "WKStringCF.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
#import <wtf/WeakObjCPtr.h>
#import <wtf/text/WTFString.h>
@@ -42,6 +43,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKConnection.class, self))
+ return;
+
self._connection.~WebConnection();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,11 +27,15 @@
#import "WKContentRuleListInternal.h"
#import "WebCompiledContentRuleList.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKContentRuleList
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKContentRuleList.class, self))
+ return;
+
_contentRuleList->~ContentRuleList();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListStore.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListStore.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListStore.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -30,6 +30,7 @@
#import "APIContentRuleListStore.h"
#import "NetworkCacheFileSystem.h"
#import "WKErrorInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/BlockPtr.h>
#import <wtf/CompletionHandler.h>
#import <wtf/cocoa/VectorCocoa.h>
@@ -55,6 +56,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKContentRuleListStore.class, self))
+ return;
+
_contentRuleListStore->~ContentRuleListStore();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "WKContentWorldInternal.h"
#import "_WKUserContentWorldInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKContentWorld
@@ -47,6 +48,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKContentWorld.class, self))
+ return;
+
_contentWorld->~ContentWorld();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKDownload.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKDownload.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKDownload.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -34,6 +34,7 @@
#import "WKNSURLAuthenticationChallenge.h"
#import "WKWebViewInternal.h"
#import <Foundation/Foundation.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/WeakObjCPtr.h>
class DownloadClient final : public API::DownloadClient {
@@ -242,6 +243,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKDownload.class, self))
+ return;
_download->~DownloadProxy();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKFrameInfo.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKFrameInfo.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKFrameInfo.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -29,11 +29,15 @@
#import "WKSecurityOriginInternal.h"
#import "WKWebViewInternal.h"
#import "_WKFrameHandleInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKFrameInfo
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKFrameInfo.class, self))
+ return;
+
_frameInfo->~FrameInfo();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -29,6 +29,7 @@
#import <WebCore/Cookie.h>
#import <WebCore/HTTPCookieAcceptPolicy.h>
#import <WebCore/HTTPCookieAcceptPolicyCocoa.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <pal/spi/cf/CFNetworkSPI.h>
#import <wtf/BlockPtr.h>
#import <wtf/HashMap.h>
@@ -67,6 +68,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKHTTPCookieStore.class, self))
+ return;
+
for (auto& observer : _observers.values())
_cookieStore->unregisterObserver(*observer);
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigation.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigation.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigation.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import "WKWebpagePreferencesInternal.h"
#import "APINavigation.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKNavigation {
API::ObjectStorage<API::Navigation> _navigation;
@@ -35,6 +36,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNavigation.class, self))
+ return;
+
_navigation->~Navigation();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -32,6 +32,7 @@
#import "WebEventFactory.h"
#import "_WKUserInitiatedActionInternal.h"
#import <WebCore/FloatPoint.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
#if PLATFORM(IOS_FAMILY)
@@ -79,6 +80,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNavigationAction.class, self))
+ return;
+
_navigationAction->~NavigationAction();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationData.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationData.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationData.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -29,6 +29,7 @@
#import "WKNSURLExtras.h"
#import <WebCore/ResourceRequest.h>
#import <WebCore/ResourceResponse.h>
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKNavigationData {
API::ObjectStorage<API::NavigationData> _data;
@@ -36,6 +37,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNavigationData.class, self))
+ return;
+
_data->~NavigationData();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationResponse.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationResponse.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationResponse.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,11 +27,15 @@
#import "WKNavigationResponseInternal.h"
#import "WKFrameInfoInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKNavigationResponse
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKNavigationResponse.class, self))
+ return;
+
_navigationResponse->~NavigationResponse();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -34,6 +34,7 @@
#import "_WKInternalDebugFeatureInternal.h"
#import <WebCore/SecurityOrigin.h>
#import <WebCore/Settings.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
@implementation WKPreferences
@@ -49,6 +50,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKPreferences.class, self))
+ return;
+
_preferences->~WebPreferences();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -53,6 +53,7 @@
#import <WebCore/HTTPCookieAcceptPolicyCocoa.h>
#import <WebCore/PluginData.h>
#import <WebCore/RegistrableDomain.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <pal/spi/cf/CFNetworkSPI.h>
#import <wtf/BlockPtr.h>
#import <wtf/RetainPtr.h>
@@ -99,6 +100,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKProcessPool.class, self))
+ return;
+
_processPool->~WebProcessPool();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKSecurityOrigin.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKSecurityOrigin.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKSecurityOrigin.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import <WebCore/ResourceRequest.h>
#import <WebCore/SecurityOrigin.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RefPtr.h>
@implementation WKSecurityOrigin
@@ -34,6 +35,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKSecurityOrigin.class, self))
+ return;
+
_securityOrigin->~SecurityOrigin();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -46,6 +46,7 @@
#import <WebCore/SecurityOrigin.h>
#import <WebCore/SecurityOriginData.h>
#import <WebCore/SerializedScriptValue.h>
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKUserContentController
@@ -61,6 +62,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKUserContentController.class, self))
+ return;
+
_userContentControllerProxy->~WebUserContentControllerProxy();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKUserScript.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKUserScript.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKUserScript.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import "WKContentWorldInternal.h"
#import "_WKUserContentWorldInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation WKUserScript
@@ -49,6 +50,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKUserScript.class, self))
+ return;
+
_userScript->~UserScript();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -138,6 +138,7 @@
#import <WebCore/TextManipulationController.h>
#import <WebCore/VersionChecks.h>
#import <WebCore/ViewportArguments.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <WebCore/WebViewVisualIdentificationOverlay.h>
#import <WebCore/WritingMode.h>
#import <wtf/BlockPtr.h>
@@ -616,6 +617,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebView.class, self))
+ return;
+
#if PLATFORM(MAC)
[_textFinderClient willDestroyView:self];
#endif
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -34,6 +34,7 @@
#import "_WKCustomHeaderFieldsInternal.h"
#import "_WKWebsitePoliciesInternal.h"
#import <WebCore/DocumentLoader.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
namespace WebKit {
@@ -109,6 +110,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebpagePreferences.class, self))
+ return;
+
_websitePolicies->API::WebsitePolicies::~WebsitePolicies();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import "_WKWebsiteDataSizeInternal.h"
#import <WebCore/SecurityOriginData.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/HashSet.h>
NSString * const WKWebsiteDataTypeFetchCache = @"WKWebsiteDataTypeFetchCache";
@@ -60,6 +61,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebsiteDataRecord.class, self))
+ return;
+
_websiteDataRecord->API::WebsiteDataRecord::~WebsiteDataRecord();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -44,6 +44,7 @@
#import <WebCore/Credential.h>
#import <WebCore/RegistrationDatabase.h>
#import <WebCore/VersionChecks.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/BlockPtr.h>
#import <wtf/URL.h>
#import <wtf/WeakObjCPtr.h>
@@ -131,6 +132,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebsiteDataStore.class, self))
+ return;
+
_websiteDataStore->WebKit::WebsiteDataStore::~WebsiteDataStore();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWindowFeatures.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWindowFeatures.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWindowFeatures.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,7 @@
#import "config.h"
#import "WKWindowFeaturesInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <WebCore/WindowFeatures.h>
#import <wtf/RetainPtr.h>
@@ -33,6 +34,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWindowFeatures.class, self))
+ return;
+
_windowFeatures->API::WindowFeatures::~WindowFeatures();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import <WebCore/ApplicationManifest.h>
#import <WebCore/ApplicationManifestParser.h>
+#import <WebCore/WebCoreObjCExtras.h>
@implementation _WKApplicationManifest
@@ -63,6 +64,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKApplicationManifest.class, self))
+ return;
+
_applicationManifest->~ApplicationManifest();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -31,6 +31,7 @@
#import "_WKAttachmentInternal.h"
#import <WebCore/MIMETypeRegistry.h>
#import <WebCore/SharedBuffer.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/BlockPtr.h>
#import <wtf/CompletionHandler.h>
@@ -105,6 +106,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKAttachment.class, self))
+ return;
+
_attachment->~Attachment();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -32,6 +32,7 @@
#import "WebAutomationSession.h"
#import "_WKAutomationSessionConfiguration.h"
#import "_WKAutomationSessionDelegate.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/WeakObjCPtr.h>
@implementation _WKAutomationSession {
@@ -58,6 +59,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKAutomationSession.class, self))
+ return;
+
_session->setClient(nullptr);
_session->~WebAutomationSession();
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKContentRuleListAction.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKContentRuleListAction.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKContentRuleListAction.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,7 @@
#import "config.h"
#import "_WKContentRuleListActionInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation _WKContentRuleListAction
@@ -32,6 +33,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKContentRuleListAction.class, self))
+ return;
+
_action->~ContentRuleListAction();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKCustomHeaderFields.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKCustomHeaderFields.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKCustomHeaderFields.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "_WKCustomHeaderFields.h"
#import "_WKCustomHeaderFieldsInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/BlockPtr.h>
#import <wtf/cocoa/VectorCocoa.h>
@@ -43,6 +44,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKCustomHeaderFields.class, self))
+ return;
_fields->API::CustomHeaderFields::~CustomHeaderFields();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,10 +26,15 @@
#import "config.h"
#import "_WKExperimentalFeatureInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation _WKExperimentalFeature
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKExperimentalFeature.class, self))
+ return;
+
_experimentalFeature->API::ExperimentalFeature::~ExperimentalFeature();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKFrameTreeNode.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKFrameTreeNode.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKFrameTreeNode.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -29,6 +29,7 @@
#import "WKWebViewInternal.h"
#import "_WKFrameHandleInternal.h"
#import "_WKFrameTreeNodeInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation _WKFrameTreeNode
@@ -35,6 +36,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKFrameTreeNode.class, self))
+ return;
_node->API::FrameTreeNode::~FrameTreeNode();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKGeolocationPosition.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKGeolocationPosition.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKGeolocationPosition.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -29,6 +29,7 @@
#if PLATFORM(IOS_FAMILY)
#import <CoreLocation/CLLocation.h>
+#import <WebCore/WebCoreObjCExtras.h>
@implementation _WKGeolocationPosition
@@ -42,6 +43,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKGeolocationPosition.class, self))
+ return;
+
_geolocationPosition->~WebGeolocationPosition();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorConfiguration.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorConfiguration.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorConfiguration.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -29,6 +29,7 @@
#import "WKProcessPoolInternal.h"
#import "WKWebViewConfigurationPrivate.h"
#import "WebURLSchemeHandlerCocoa.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation _WKInspectorConfiguration
@@ -44,6 +45,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKInspectorConfiguration.class, self))
+ return;
_configuration->API::InspectorConfiguration::~InspectorConfiguration();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,8 @@
#import "config.h"
#import "_WKInspectorDebuggableInfoInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation _WKInspectorDebuggableInfo
- (instancetype)init
@@ -90,6 +92,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKInspectorDebuggableInfo.class, self))
+ return;
+
_debuggableInfo->~DebuggableInfo();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -33,6 +33,7 @@
#import "WKError.h"
#import "WKWebViewInternal.h"
#import <WebCore/ExceptionDetails.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/BlockPtr.h>
#import <wtf/URL.h>
@@ -40,6 +41,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKInspectorExtension.class, self))
+ return;
+
_extension->API::InspectorExtension::~InspectorExtension();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,10 +26,15 @@
#import "config.h"
#import "_WKInternalDebugFeatureInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation _WKInternalDebugFeature
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKInternalDebugFeature.class, self))
+ return;
+
_internalDebugFeature->API::InternalDebugFeature::~InternalDebugFeature();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "_WKProcessPoolConfigurationInternal.h"
#import "LegacyGlobalSettings.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <objc/runtime.h>
#import <wtf/RetainPtr.h>
#import <wtf/cocoa/VectorCocoa.h>
@@ -45,6 +46,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKProcessPoolConfiguration.class, self))
+ return;
+
_processPoolConfiguration->~ProcessPoolConfiguration();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadInfo.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadInfo.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadInfo.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -31,6 +31,7 @@
#import "ResourceLoadInfo.h"
#import "_WKFrameHandleInternal.h"
#import "_WKResourceLoadInfoInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
static _WKResourceLoadInfoResourceType toWKResourceLoadInfoResourceType(WebKit::ResourceLoadInfo::Type type)
{
@@ -77,6 +78,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKResourceLoadInfo.class, self))
+ return;
_info->API::ResourceLoadInfo::~ResourceLoadInfo();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,10 +26,14 @@
#import "config.h"
#import "_WKResourceLoadStatisticsFirstPartyInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation _WKResourceLoadStatisticsFirstParty
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKResourceLoadStatisticsFirstParty.class, self))
+ return;
_firstParty->API::ResourceLoadStatisticsFirstParty::~ResourceLoadStatisticsFirstParty();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "_WKResourceLoadStatisticsThirdPartyInternal.h"
#import "APIArray.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation _WKResourceLoadStatisticsThirdParty
@@ -33,6 +34,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKResourceLoadStatisticsThirdParty.class, self))
+ return;
_thirdParty->API::ResourceLoadStatisticsThirdParty::~ResourceLoadStatisticsThirdParty();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKUserInitiatedAction.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKUserInitiatedAction.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKUserInitiatedAction.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,10 +26,15 @@
#import "config.h"
#import "_WKUserInitiatedActionInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation _WKUserInitiatedAction
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKUserInitiatedAction.class, self))
+ return;
+
_userInitiatedAction->~UserInitiatedAction();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKUserStyleSheet.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKUserStyleSheet.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKUserStyleSheet.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -34,6 +34,7 @@
#import "WebKit2Initialize.h"
#import "WebPageProxy.h"
#import "_WKUserContentWorldInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation _WKUserStyleSheet
@@ -63,6 +64,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKUserStyleSheet.class, self))
+ return;
+
_userStyleSheet->~UserStyleSheet();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKVisitedLinkStore.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKVisitedLinkStore.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKVisitedLinkStore.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -28,6 +28,7 @@
#import "VisitedLinkStore.h"
#import <WebCore/SharedStringHash.h>
+#import <WebCore/WebCoreObjCExtras.h>
@implementation _WKVisitedLinkStore
@@ -43,6 +44,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKVisitedLinkStore.class, self))
+ return;
+
_visitedLinkStore->~VisitedLinkStore();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "_WKWebAuthenticationAssertionResponseInternal.h"
#import "WKNSData.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation _WKWebAuthenticationAssertionResponse
@@ -34,6 +35,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKWebAuthenticationAssertionResponse.class, self))
+ return;
+
_response->~WebAuthenticationAssertionResponse();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -50,6 +50,7 @@
#import <WebCore/PublicKeyCredentialCreationOptions.h>
#import <WebCore/PublicKeyCredentialRequestOptions.h>
#import <WebCore/WebAuthenticationConstants.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <pal/crypto/CryptoDigest.h>
#import <wtf/BlockPtr.h>
#import <wtf/RetainPtr.h>
@@ -107,6 +108,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKWebAuthenticationPanel.class, self))
+ return;
+
_panel->~WebAuthenticationPanel();
[super dealloc];
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,7 @@
#import "config.h"
#import "_WKWebsiteDataStoreConfigurationInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
static void checkURLArgument(NSURL *url)
@@ -60,6 +61,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(_WKWebsiteDataStoreConfiguration.class, self))
+ return;
_configuration->~WebsiteDataStoreConfiguration();
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/API/mac/WKView.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/API/mac/WKView.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/API/mac/WKView.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -43,6 +43,7 @@
#import "WebProcessPool.h"
#import "WebViewImpl.h"
#import "_WKLinkIconParametersInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <WebCore/WebViewVisualIdentificationOverlay.h>
#import <WebKit/WKDragDestinationAction.h>
#import <pal/spi/cocoa/AVKitSPI.h>
@@ -90,6 +91,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKView.class, self))
+ return;
+
_data->_impl->page().setIconLoadingClient(nullptr);
_data->_impl = nullptr;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WKSafeBrowsingWarning.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/Cocoa/WKSafeBrowsingWarning.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WKSafeBrowsingWarning.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -30,9 +30,11 @@
#import "PageClient.h"
#import "SafeBrowsingWarning.h"
#import <WebCore/LocalizedStrings.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/URL.h>
#import <wtf/BlockPtr.h>
#import <wtf/Language.h>
+#import <wtf/MainThread.h>
#if PLATFORM(WATCHOS)
#import "PepperUICoreSPI.h"
@@ -511,8 +513,10 @@
- (void)dealloc
{
- if (_completionHandler)
- _completionHandler(WebKit::ContinueUnsafeLoad::No);
+ ensureOnMainRunLoop([completionHandler = WTFMove(_completionHandler), warning = WTFMove(_warning)] () mutable {
+ if (completionHandler)
+ completionHandler(WebKit::ContinueUnsafeLoad::No);
+ });
[super dealloc];
}
Modified: trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm (274226 => 274227)
--- trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/UIProcess/mac/WKPrintingView.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -37,7 +37,6 @@
#import <Quartz/Quartz.h>
#import <WebCore/GraphicsContext.h>
#import <WebCore/LocalDefaultSystemAppearance.h>
-#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RunLoop.h>
NSString * const WebKitOriginalTopPrintingMarginKey = @"WebKitOriginalTopMargin";
@@ -63,7 +62,7 @@
- (void)dealloc
{
- callOnMainRunLoop([frame = WTFMove(_webFrame), previews = WTFMove(_pagePreviews)] {
+ ensureOnMainRunLoop([frame = WTFMove(_webFrame), previews = WTFMove(_pagePreviews)] {
// Deallocate these on the main thread, not the current thread, since the
// reference counting and the destructors aren't threadsafe.
});
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -41,6 +41,7 @@
#import <WebCore/IntPoint.h>
#import <WebCore/LinkIconCollector.h>
#import <WebCore/LinkIconType.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation WKWebProcessPlugInFrame {
@@ -59,6 +60,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInFrame.class, self))
+ return;
_frame->~WebFrame();
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -27,6 +27,7 @@
#import "WKWebProcessPlugInHitTestResultInternal.h"
#import "WKWebProcessPlugInNodeHandleInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKWebProcessPlugInHitTestResult {
API::ObjectStorage<WebKit::InjectedBundleHitTestResult> _hitTestResult;
@@ -34,6 +35,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInHitTestResult.class, self))
+ return;
_hitTestResult->~InjectedBundleHitTestResult();
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -31,6 +31,7 @@
#import "WKWebProcessPlugInFrameInternal.h"
#import <WebCore/HTMLTextFormControlElement.h>
#import <WebCore/IntRect.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <WebKit/WebImage.h>
@implementation WKWebProcessPlugInNodeHandle {
@@ -39,6 +40,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInNodeHandle.class, self))
+ return;
_nodeHandle->~InjectedBundleNodeHandle();
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -31,6 +31,7 @@
#import "WKNSString.h"
#import "WKRetainPtr.h"
#import "WebPageGroupProxy.h"
+#import <WebCore/WebCoreObjCExtras.h>
@implementation WKWebProcessPlugInPageGroup {
API::ObjectStorage<WebKit::WebPageGroupProxy> _bundlePageGroup;
@@ -43,6 +44,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInPageGroup.class, self))
+ return;
_bundlePageGroup->~WebPageGroupProxy();
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -30,6 +30,7 @@
#import "WKWebProcessPlugInFrameInternal.h"
#import <WebCore/DataDetection.h>
#import <WebCore/Range.h>
+#import <WebCore/WebCoreObjCExtras.h>
#if ENABLE(DATA_DETECTION)
#import "WKDataDetectorTypesInternal.h"
@@ -41,6 +42,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInRangeHandle.class, self))
+ return;
_rangeHandle->~InjectedBundleRangeHandle();
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -26,6 +26,8 @@
#import "config.h"
#import "WKWebProcessPlugInScriptWorldInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
+
@implementation WKWebProcessPlugInScriptWorld {
API::ObjectStorage<WebKit::InjectedBundleScriptWorld> _world;
}
@@ -42,6 +44,8 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInScriptWorld.class, self))
+ return;
_world->~InjectedBundleScriptWorld();
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -32,6 +32,7 @@
#import <WebCore/Document.h>
#import <WebCore/RenderObject.h>
#import <WebCore/SimpleRange.h>
+#import <wtf/MainThread.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation WKDOMNode
@@ -50,7 +51,9 @@
- (void)dealloc
{
- WebKit::WKDOMNodeCache().remove(_impl.get());
+ ensureOnMainRunLoop([node = WTFMove(_impl)] {
+ WebKit::WKDOMNodeCache().remove(node.get());
+ });
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -32,6 +32,7 @@
#import <WebCore/Document.h>
#import <WebCore/TextIterator.h>
#import <WebCore/VisibleUnits.h>
+#import <wtf/MainThread.h>
#import <wtf/cocoa/VectorCocoa.h>
@implementation WKDOMRange
@@ -55,7 +56,9 @@
- (void)dealloc
{
- WebKit::WKDOMRangeCache().remove(_impl.get());
+ ensureOnMainRunLoop([range = WTFMove(_impl)] {
+ WebKit::WKDOMRangeCache().remove(range.get());
+ });
[super dealloc];
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -33,6 +33,7 @@
#import "WKRetainPtr.h"
#import "WKStringCF.h"
#import "WKWebProcessPlugInBrowserContextControllerInternal.h"
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/RetainPtr.h>
@interface WKWebProcessPlugInController () {
@@ -45,6 +46,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInController.class, self))
+ return;
+
_bundle->~InjectedBundle();
[super dealloc];
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (274226 => 274227)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm 2021-03-10 19:27:23 UTC (rev 274226)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm 2021-03-10 19:58:31 UTC (rev 274227)
@@ -61,6 +61,7 @@
#import <WebCore/Frame.h>
#import <WebCore/HTMLFormElement.h>
#import <WebCore/HTMLInputElement.h>
+#import <WebCore/WebCoreObjCExtras.h>
#import <wtf/WeakObjCPtr.h>
@interface NSObject (WKDeprecatedDelegateMethods)
@@ -369,6 +370,9 @@
- (void)dealloc
{
+ if (WebCoreObjCScheduleDeallocateOnMainRunLoop(WKWebProcessPlugInBrowserContextController.class, self))
+ return;
+
if (_remoteObjectRegistry)
[_remoteObjectRegistry _invalidate];