Title: [282844] trunk
Revision
282844
Author
[email protected]
Date
2021-09-21 15:13:24 -0700 (Tue, 21 Sep 2021)

Log Message

Rename {checked,dynamic}_ns_cast<> to {checked,dynamic}_objc_cast<>
<https://webkit.org/b/230508>
<rdar://problem/83323145>

Reviewed by Brent Fulgham.

Source/WebCore:

* Modules/applepay/PaymentInstallmentConfiguration.mm:
* Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
- Also fix *SoftLink.h header order.
* platform/graphics/cocoa/WebCoreCALayerExtras.mm:
* platform/mac/BlocklistUpdater.mm:
* rendering/RenderThemeIOS.mm:
- Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
  WTF::dynamic_objc_cast<> from RetainPtr.h to that header.

Source/WebKit:

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::extractWebProcessPool):
- Update for rename.

* Shared/Cocoa/ArgumentCodersCocoa.mm:
* Shared/mac/ObjCObjectGraph.mm:
* UIProcess/API/Cocoa/NSAttributedString.mm:
* UIProcess/Cocoa/MediaPermissionUtilities.mm:
- Also fix *SoftLink.h header order.
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
* UIProcess/ios/WKContentViewInteraction.mm:
* WebProcess/cocoa/WebProcessCocoa.mm:
- Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
  WTF::dynamic_objc_cast<> from RetainPtr.h to that header.

Source/WebKitLegacy/mac:

* WebCoreSupport/WebDragClient.mm:
* WebView/WebHTMLView.mm:
- Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
  WTF::dynamic_objc_cast<> from RetainPtr.h to that header.

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/PlatformMac.cmake:
- Update for rename of TypeCastsNS.h to TypeCastsCocoa.h.

* wtf/RetainPtr.h:
(WTF::dynamic_objc_cast):
- Move dynamic_ns_cast<> from TypeCastsNS.h to here.
- Remove `using` statements to limit Objective-C types without
  asterisks to match RetainPtr<>.
* wtf/cocoa/TypeCastsCocoa.h: Rename from TypeCastsNS.h.
(WTF::checked_objc_cast):
(WTF::dynamic_objc_cast):
- Do the rename.
- Remove "using WTF::dynamic_ns_cast;" instead of renaming it
  since this is already in RetainPtr.h.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- Update for rename of TypeCastsNS.h to TypeCastsCocoa.h.
* TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm: Rename from TypeCastsNS.mm.
(TestWebKitAPI::TEST):
- Update for rename.

* TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:
* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
- Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
  WTF::dynamic_objc_cast<> from RetainPtr.h to that header.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (282843 => 282844)


--- trunk/Source/WTF/ChangeLog	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WTF/ChangeLog	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,3 +1,27 @@
+2021-09-21  David Kilzer  <[email protected]>
+
+        Rename {checked,dynamic}_ns_cast<> to {checked,dynamic}_objc_cast<>
+        <https://webkit.org/b/230508>
+        <rdar://problem/83323145>
+
+        Reviewed by Brent Fulgham.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/PlatformMac.cmake:
+        - Update for rename of TypeCastsNS.h to TypeCastsCocoa.h.
+
+        * wtf/RetainPtr.h:
+        (WTF::dynamic_objc_cast):
+        - Move dynamic_ns_cast<> from TypeCastsNS.h to here.
+        - Remove `using` statements to limit Objective-C types without
+          asterisks to match RetainPtr<>.
+        * wtf/cocoa/TypeCastsCocoa.h: Rename from TypeCastsNS.h.
+        (WTF::checked_objc_cast):
+        (WTF::dynamic_objc_cast):
+        - Do the rename.
+        - Remove "using WTF::dynamic_ns_cast;" instead of renaming it
+          since this is already in RetainPtr.h.
+
 2021-09-21  Jer Noble  <[email protected]>
 
         [iOS] Enable MSE in WKWebViews by default on iPad

Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (282843 => 282844)


--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2021-09-21 22:13:24 UTC (rev 282844)
@@ -392,7 +392,7 @@
 		4427C5A921F6D6C300A612A4 /* ASCIICType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASCIICType.cpp; sourceTree = "<group>"; };
 		44309D4026EFC14A00402A67 /* NSObjCRuntimeSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSObjCRuntimeSPI.h; sourceTree = "<group>"; };
 		4468567225094FE8008CCA05 /* ThreadSanitizerSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadSanitizerSupport.h; sourceTree = "<group>"; };
-		44CDE4D226EE6CDA009F6ACB /* TypeCastsNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCastsNS.h; sourceTree = "<group>"; };
+		44CDE4D226EE6CDA009F6ACB /* TypeCastsCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCastsCocoa.h; sourceTree = "<group>"; };
 		46209A27266D543A007F8F4A /* CancellableTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CancellableTask.h; sourceTree = "<group>"; };
 		46BA9EAB1F4CD61E009A2BBC /* CompletionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompletionHandler.h; sourceTree = "<group>"; };
 		46BEB6E922FFDDD500269867 /* RefCounted.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RefCounted.cpp; sourceTree = "<group>"; };
@@ -1625,7 +1625,7 @@
 				A30D412C1F0DE0BA00B71954 /* SoftLinking.h */,
 				BC3FEB5E267FCD460054006A /* SpanCocoa.h */,
 				EB61EDC62409CCC0001EFE36 /* SystemTracingCocoa.cpp */,
-				44CDE4D226EE6CDA009F6ACB /* TypeCastsNS.h */,
+				44CDE4D226EE6CDA009F6ACB /* TypeCastsCocoa.h */,
 				5CC0EE862162BC2200A1A842 /* URLCocoa.mm */,
 				93241657243BC2E50032FAAE /* VectorCocoa.h */,
 				E4A0AD3C1A96253C00536DF6 /* WorkQueueCocoa.cpp */,

Modified: trunk/Source/WTF/wtf/PlatformMac.cmake (282843 => 282844)


--- trunk/Source/WTF/wtf/PlatformMac.cmake	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WTF/wtf/PlatformMac.cmake	2021-09-21 22:13:24 UTC (rev 282844)
@@ -20,7 +20,7 @@
     cocoa/RuntimeApplicationChecksCocoa.h
     cocoa/SoftLinking.h
     cocoa/SpanCocoa.h
-    cocoa/TypeCastsNS.h
+    cocoa/TypeCastsCocoa.h
     cocoa/VectorCocoa.h
 
     darwin/WeakLinking.h

Modified: trunk/Source/WTF/wtf/RetainPtr.h (282843 => 282844)


--- trunk/Source/WTF/wtf/RetainPtr.h	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WTF/wtf/RetainPtr.h	2021-09-21 22:13:24 UTC (rev 282844)
@@ -376,12 +376,13 @@
 }
 
 #ifdef __OBJC__
+// FIXME: Move to TypeCastsCocoa.h once all clients include that header.
 template<typename T> T* dynamic_objc_cast(id object)
 {
-    if ([object isKindOfClass:[T class]])
-        return (T *)object;
+    if (![object isKindOfClass:[T class]])
+        return nullptr;
 
-    return nil;
+    return reinterpret_cast<T*>(object);
 }
 #endif
 

Copied: trunk/Source/WTF/wtf/cocoa/TypeCastsCocoa.h (from rev 282843, trunk/Source/WTF/wtf/cocoa/TypeCastsNS.h) (0 => 282844)


--- trunk/Source/WTF/wtf/cocoa/TypeCastsCocoa.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/cocoa/TypeCastsCocoa.h	2021-09-21 22:13:24 UTC (rev 282844)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2014-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
+ * 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 <wtf/Assertions.h>
+#include <wtf/RetainPtr.h>
+
+namespace WTF {
+
+// Use checked_objc_cast<> instead of dynamic_objc_cast<> when a specific NS type is required.
+
+template<typename T> T* checked_objc_cast(id object)
+{
+    using ValueType = std::remove_pointer_t<T>;
+    using PtrType = ValueType*;
+
+    if (!object)
+        return nullptr;
+
+    RELEASE_ASSERT_WITH_SECURITY_IMPLICATION([object isKindOfClass:[ValueType class]]);
+
+    return reinterpret_cast<PtrType>(object);
+}
+
+// Use dynamic_objc_cast<> instead of checked_objc_cast<> when actively checking NS types,
+// similar to dynamic_cast<> in C++. Be sure to include a nil check.
+
+// See RetainPtr.h for: template<typename T> T* dynamic_objc_cast(id object).
+
+template<typename T, typename U> RetainPtr<T> dynamic_objc_cast(RetainPtr<U>&& object)
+{
+    if (![object isKindOfClass:[T class]])
+        return nullptr;
+
+    return WTFMove(object);
+}
+
+} // namespace WTF
+
+using WTF::checked_objc_cast;

Deleted: trunk/Source/WTF/wtf/cocoa/TypeCastsNS.h (282843 => 282844)


--- trunk/Source/WTF/wtf/cocoa/TypeCastsNS.h	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WTF/wtf/cocoa/TypeCastsNS.h	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2014-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
- * 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 <wtf/Assertions.h>
-#include <wtf/RetainPtr.h>
-
-namespace WTF {
-
-// Use checked_ns_cast<> instead of dynamic_ns_cast<> when a specific NS type is required.
-
-template<typename T> T* checked_ns_cast(id object)
-{
-    using ValueType = std::remove_pointer_t<T>;
-    using PtrType = ValueType*;
-
-    if (!object)
-        return nullptr;
-
-    RELEASE_ASSERT_WITH_SECURITY_IMPLICATION([object isKindOfClass:[ValueType class]]);
-
-    return reinterpret_cast<PtrType>(object);
-}
-
-// Use dynamic_ns_cast<> instead of checked_ns_cast<> when actively checking NS types,
-// similar to dynamic_cast<> in C++. Be sure to include a nil check.
-
-template<typename T> T* dynamic_ns_cast(id object)
-{
-    using ValueType = std::remove_pointer_t<T>;
-    using PtrType = ValueType*;
-
-    if (![object isKindOfClass:[ValueType class]])
-        return nullptr;
-
-    return reinterpret_cast<PtrType>(object);
-}
-
-template<typename T, typename U> RetainPtr<T> dynamic_ns_cast(RetainPtr<U>&& object)
-{
-    if (![object isKindOfClass:[T class]])
-        return nullptr;
-
-    return WTFMove(object);
-}
-
-} // namespace WTF
-
-using WTF::checked_ns_cast;
-using WTF::dynamic_ns_cast;

Modified: trunk/Source/WebCore/ChangeLog (282843 => 282844)


--- trunk/Source/WebCore/ChangeLog	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebCore/ChangeLog	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,3 +1,20 @@
+2021-09-21  David Kilzer  <[email protected]>
+
+        Rename {checked,dynamic}_ns_cast<> to {checked,dynamic}_objc_cast<>
+        <https://webkit.org/b/230508>
+        <rdar://problem/83323145>
+
+        Reviewed by Brent Fulgham.
+
+        * Modules/applepay/PaymentInstallmentConfiguration.mm:
+        * Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
+        - Also fix *SoftLink.h header order.
+        * platform/graphics/cocoa/WebCoreCALayerExtras.mm:
+        * platform/mac/BlocklistUpdater.mm:
+        * rendering/RenderThemeIOS.mm:
+        - Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
+          WTF::dynamic_objc_cast<> from RetainPtr.h to that header.
+
 2021-09-21  Simon Fraser  <[email protected]>
 
         Modernize ENABLE_IOSURFACE_POOL_STATISTICS logging

Modified: trunk/Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm (282843 => 282844)


--- trunk/Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebCore/Modules/applepay/PaymentInstallmentConfiguration.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -32,6 +32,7 @@
 #import "ApplePayInstallmentItemType.h"
 #import "ApplePayInstallmentRetailChannel.h"
 #import "ExceptionOr.h"
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/cocoa/VectorCocoa.h>
 
 #import <pal/cocoa/PassKitSoftLink.h>

Modified: trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm (282843 => 282844)


--- trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebCore/Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -29,6 +29,8 @@
 #if ENABLE(APPLE_PAY)
 
 #import <_javascript_Core/JSONObject.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
+
 #import <pal/cocoa/PassKitSoftLink.h>
 
 namespace WebCore {

Modified: trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm (282843 => 282844)


--- trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebCore/platform/graphics/cocoa/WebCoreCALayerExtras.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -27,6 +27,7 @@
 #import "WebCoreCALayerExtras.h"
 
 #import <pal/spi/cocoa/QuartzCoreSPI.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 @implementation CALayer (WebCoreCALayerExtras)
 

Modified: trunk/Source/WebCore/platform/mac/BlocklistUpdater.mm (282843 => 282844)


--- trunk/Source/WebCore/platform/mac/BlocklistUpdater.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebCore/platform/mac/BlocklistUpdater.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -32,7 +32,7 @@
 #import "WebGLBlocklist.h"
 #import <sys/stat.h>
 #import <sys/time.h>
-#import <wtf/RetainPtr.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 // The time after which we'll check the blocklist data.
 static time_t blocklistNextCheckTime;

Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (282843 => 282844)


--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -83,8 +83,8 @@
 #import <pal/spi/ios/UIKitSPI.h>
 #import <wtf/NeverDestroyed.h>
 #import <wtf/ObjCRuntimeExtras.h>
-#import <wtf/RefPtr.h>
 #import <wtf/StdLibExtras.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 #if ENABLE(DATALIST_ELEMENT)
 #include "HTMLDataListElement.h"

Modified: trunk/Source/WebKit/ChangeLog (282843 => 282844)


--- trunk/Source/WebKit/ChangeLog	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/ChangeLog	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,3 +1,26 @@
+2021-09-21  David Kilzer  <[email protected]>
+
+        Rename {checked,dynamic}_ns_cast<> to {checked,dynamic}_objc_cast<>
+        <https://webkit.org/b/230508>
+        <rdar://problem/83323145>
+
+        Reviewed by Brent Fulgham.
+
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::extractWebProcessPool):
+        - Update for rename.
+
+        * Shared/Cocoa/ArgumentCodersCocoa.mm:
+        * Shared/mac/ObjCObjectGraph.mm:
+        * UIProcess/API/Cocoa/NSAttributedString.mm:
+        * UIProcess/Cocoa/MediaPermissionUtilities.mm:
+        - Also fix *SoftLink.h header order.
+        * UIProcess/Cocoa/WebProcessProxyCocoa.mm:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        - Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
+          WTF::dynamic_objc_cast<> from RetainPtr.h to that header.
+
 2021-09-21  Michael Catanzaro  <[email protected]>
 
         REGRESSION(241918@main): [WPE][GTK] New test is timing out on bots

Modified: trunk/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm (282843 => 282844)


--- trunk/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -38,6 +38,7 @@
 #import <wtf/HashSet.h>
 #import <wtf/cf/CFURLExtras.h>
 #import <wtf/cocoa/NSURLExtras.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 #if USE(APPKIT)
 #import <WebCore/ColorMac.h>

Modified: trunk/Source/WebKit/Shared/mac/ObjCObjectGraph.mm (282843 => 282844)


--- trunk/Source/WebKit/Shared/mac/ObjCObjectGraph.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/Shared/mac/ObjCObjectGraph.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -34,6 +34,7 @@
 #import "WKBrowsingContextHandleInternal.h"
 #import "WKTypeRefWrapper.h"
 #import <wtf/EnumTraits.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 namespace WebKit {
 

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm (282843 => 282844)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -38,7 +38,7 @@
 #import <WebKit/_WKProcessPoolConfiguration.h>
 #import <wtf/Deque.h>
 #import <wtf/MemoryPressureHandler.h>
-#import <wtf/RetainPtr.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 #if PLATFORM(IOS_FAMILY)
 #import <UIKitSPI.h>

Modified: trunk/Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm (282843 => 282844)


--- trunk/Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -27,19 +27,21 @@
 #import "MediaPermissionUtilities.h"
 
 #import "SandboxUtilities.h"
-#import "TCCSoftLink.h"
 #import "WKWebViewInternal.h"
 #import "WebPageProxy.h"
 #import <WebCore/LocalizedStrings.h>
 #import <WebCore/SecurityOriginData.h>
 #import <mutex>
-#import <pal/cocoa/AVFoundationSoftLink.h>
-#import <pal/cocoa/SpeechSoftLink.h>
 #import <wtf/BlockPtr.h>
 #import <wtf/URLHelpers.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/spi/cf/CFBundleSPI.h>
 #import <wtf/spi/darwin/SandboxSPI.h>
 
+#import "TCCSoftLink.h"
+#import <pal/cocoa/AVFoundationSoftLink.h>
+#import <pal/cocoa/SpeechSoftLink.h>
+
 namespace WebKit {
 
 bool checkSandboxRequirementForType(MediaPermissionType type)

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (282843 => 282844)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -72,7 +72,7 @@
 #import <wtf/SoftLinking.h>
 #import <wtf/cocoa/Entitlements.h>
 #import <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
-#import <wtf/cocoa/TypeCastsNS.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/spi/cocoa/NSObjCRuntimeSPI.h>
 #import <wtf/spi/darwin/SandboxSPI.h>
 #import <wtf/spi/darwin/dyldSPI.h>
@@ -637,7 +637,7 @@
 
 static inline RefPtr<WebProcessPool> extractWebProcessPool(void* observer)
 {
-    RetainPtr strongObserver { dynamic_ns_cast<WKProcessPoolWeakObserver>(reinterpret_cast<id>(observer)) };
+    RetainPtr strongObserver { dynamic_objc_cast<WKProcessPoolWeakObserver>(reinterpret_cast<id>(observer)) };
     if (!strongObserver)
         return nullptr;
     return [strongObserver pool];

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm (282843 => 282844)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -44,6 +44,7 @@
 #import <wtf/NeverDestroyed.h>
 #import <wtf/Scope.h>
 #import <wtf/cocoa/Entitlements.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/cocoa/VectorCocoa.h>
 #import <wtf/spi/darwin/SandboxSPI.h>
 

Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (282843 => 282844)


--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -145,11 +145,11 @@
 #import <pal/spi/ios/ManagedConfigurationSPI.h>
 #import <wtf/BlockObjCExceptions.h>
 #import <wtf/BlockPtr.h>
-#import <wtf/RetainPtr.h>
 #import <wtf/Scope.h>
 #import <wtf/SetForScope.h>
 #import <wtf/WeakObjCPtr.h>
 #import <wtf/cocoa/NSURLExtras.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/cocoa/VectorCocoa.h>
 #import <wtf/text/TextStream.h>
 

Modified: trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (282843 => 282844)


--- trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -105,6 +105,7 @@
 #import <wtf/cocoa/Entitlements.h>
 #import <wtf/cocoa/NSURLExtras.h>
 #import <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/cocoa/VectorCocoa.h>
 
 #if ENABLE(REMOTE_INSPECTOR)

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (282843 => 282844)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,3 +1,16 @@
+2021-09-21  David Kilzer  <[email protected]>
+
+        Rename {checked,dynamic}_ns_cast<> to {checked,dynamic}_objc_cast<>
+        <https://webkit.org/b/230508>
+        <rdar://problem/83323145>
+
+        Reviewed by Brent Fulgham.
+
+        * WebCoreSupport/WebDragClient.mm:
+        * WebView/WebHTMLView.mm:
+        - Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
+          WTF::dynamic_objc_cast<> from RetainPtr.h to that header.
+
 2021-09-20  Chris Dumez  <[email protected]>
 
         Stop using makeRef(*this) / makeRefPtr(this)

Modified: trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm (282843 => 282844)


--- trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebDragClient.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -59,6 +59,7 @@
 #import <WebCore/PagePasteboardContext.h>
 #import <WebCore/Pasteboard.h>
 #import <WebCore/PasteboardWriter.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 using namespace WebCore;
 

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm (282843 => 282844)


--- trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -152,6 +152,7 @@
 #import <wtf/RunLoop.h>
 #import <wtf/SystemTracing.h>
 #import <wtf/WeakObjCPtr.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 #import <wtf/cocoa/VectorCocoa.h>
 
 #if PLATFORM(MAC)

Modified: trunk/Tools/ChangeLog (282843 => 282844)


--- trunk/Tools/ChangeLog	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Tools/ChangeLog	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,3 +1,22 @@
+2021-09-21  David Kilzer  <[email protected]>
+
+        Rename {checked,dynamic}_ns_cast<> to {checked,dynamic}_objc_cast<>
+        <https://webkit.org/b/230508>
+        <rdar://problem/83323145>
+
+        Reviewed by Brent Fulgham.
+
+        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+        - Update for rename of TypeCastsNS.h to TypeCastsCocoa.h.
+        * TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm: Rename from TypeCastsNS.mm.
+        (TestWebKitAPI::TEST):
+        - Update for rename.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:
+        * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
+        - Import <wtf/cocoa/TypeCastsCocoa.h> for future move of
+          WTF::dynamic_objc_cast<> from RetainPtr.h to that header.
+
 2021-09-21  Yoshiaki Jitsukawa  <[email protected]>
 
         [PlayStation][MiniBrowser] Remove WebKit private header include

Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (282843 => 282844)


--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj	2021-09-21 22:13:24 UTC (rev 282844)
@@ -267,7 +267,7 @@
 		448D7E471EA6C55500ECC756 /* EnvironmentUtilitiesTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 448D7E451EA6C55500ECC756 /* EnvironmentUtilitiesTest.cpp */; };
 		44AC8BC621D0245A00CAFB34 /* RetainPtr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC029B161486AD6400817DA9 /* RetainPtr.cpp */; };
 		44C2FBE225E7592C00ABC72F /* WKAppHighlights.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44C2FBE125E7592C00ABC72F /* WKAppHighlights.mm */; };
-		44CDE4D426EE6E4A009F6ACB /* TypeCastsNS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44CDE4D326EE6E41009F6ACB /* TypeCastsNS.mm */; };
+		44CDE4D426EE6E4A009F6ACB /* TypeCastsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44CDE4D326EE6E41009F6ACB /* TypeCastsCocoa.mm */; };
 		44CF31FD249941E8009CB6CB /* ContextMenuAction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 44CF31FB24993F66009CB6CB /* ContextMenuAction.cpp */; };
 		4612C2B9210A6ACE00B788A6 /* LoadFileThenReload.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4612C2B8210A6ABF00B788A6 /* LoadFileThenReload.mm */; };
 		4628C8E92367ABD100B073F0 /* WKSecurityOrigin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4628C8E82367ABBC00B073F0 /* WKSecurityOrigin.cpp */; };
@@ -2102,7 +2102,7 @@
 		448D7E451EA6C55500ECC756 /* EnvironmentUtilitiesTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EnvironmentUtilitiesTest.cpp; sourceTree = "<group>"; };
 		44A622C114A0E2B60048515B /* WTFStringUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WTFStringUtilities.h; sourceTree = "<group>"; };
 		44C2FBE125E7592C00ABC72F /* WKAppHighlights.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKAppHighlights.mm; sourceTree = "<group>"; };
-		44CDE4D326EE6E41009F6ACB /* TypeCastsNS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TypeCastsNS.mm; sourceTree = "<group>"; };
+		44CDE4D326EE6E41009F6ACB /* TypeCastsCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TypeCastsCocoa.mm; sourceTree = "<group>"; };
 		44CF31FB24993F66009CB6CB /* ContextMenuAction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenuAction.cpp; sourceTree = "<group>"; };
 		4612C2B8210A6ABF00B788A6 /* LoadFileThenReload.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LoadFileThenReload.mm; sourceTree = "<group>"; };
 		4628C8E82367ABBC00B073F0 /* WKSecurityOrigin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKSecurityOrigin.cpp; sourceTree = "<group>"; };
@@ -4991,7 +4991,7 @@
 				BC3FEB63267FCF740054006A /* SpanCocoa.mm */,
 				1C4616A626BB172F00F8C9F6 /* TextStreamCocoa.cpp */,
 				1C46169E26BA510700F8C9F6 /* TextStreamCocoa.mm */,
-				44CDE4D326EE6E41009F6ACB /* TypeCastsNS.mm */,
+				44CDE4D326EE6E41009F6ACB /* TypeCastsCocoa.mm */,
 				E3C21A7B21B25CA2003B31A3 /* URLExtras.mm */,
 			);
 			path = cocoa;
@@ -5367,7 +5367,7 @@
 				E38A0D351FD50CC300E98C8B /* Threading.cpp in Sources */,
 				5311BD5E1EA9490E00525281 /* ThreadMessages.cpp in Sources */,
 				0F2C20B81DCD545000542D9E /* Time.cpp in Sources */,
-				44CDE4D426EE6E4A009F6ACB /* TypeCastsNS.mm in Sources */,
+				44CDE4D426EE6E4A009F6ACB /* TypeCastsCocoa.mm in Sources */,
 				E324A6F02041C82000A76593 /* UniqueArray.cpp in Sources */,
 				E3A1E78221B25B7A008C6007 /* URL.cpp in Sources */,
 				E3C21A7C21B25CA2003B31A3 /* URLExtras.mm in Sources */,

Copied: trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm (from rev 282843, trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm) (0 => 282844)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 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
+ * 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.
+ */
+
+#import "config.h"
+#import <wtf/cocoa/TypeCastsCocoa.h>
+
+#import <wtf/StdLibExtras.h>
+
+@interface MyObjectSubtype : NSObject
+@end
+
+@implementation MyObjectSubtype
+@end
+
+namespace TestWebKitAPI {
+
+using namespace WTF;
+
+TEST(TypeCastsCocoa, checked_objc_cast)
+{
+    EXPECT_EQ(nil, checked_objc_cast<NSString>(nil));
+
+    {
+        auto object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        EXPECT_EQ(object.get(), checked_objc_cast<NSString>(object.get()));
+        EXPECT_EQ(object.get(), checked_objc_cast<NSObject>(object.get()));
+    }
+
+    {
+        auto object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        EXPECT_EQ(object.get(), checked_objc_cast<NSString>(object.get()));
+    }
+
+    {
+        auto object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
+        EXPECT_EQ(object.get(), checked_objc_cast<NSObject>(object.get()));
+    }
+}
+
+TEST(TypeCastsCocoa, dynamic_objc_cast)
+{
+    EXPECT_EQ(nil, dynamic_objc_cast<NSString>(nil));
+
+    {
+        auto object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        EXPECT_EQ(object.get(), dynamic_objc_cast<NSString>(object.get()));
+        EXPECT_EQ(object.get(), dynamic_objc_cast<NSObject>(object.get()));
+        EXPECT_EQ(nil, dynamic_objc_cast<NSArray>(object.get()));
+    }
+
+    {
+        auto object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        EXPECT_EQ(object.get(), dynamic_objc_cast<NSString>(object.get()));
+        EXPECT_EQ(nil, dynamic_objc_cast<NSArray>(object.get()));
+    }
+
+    {
+        auto object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
+        EXPECT_EQ(object.get(), dynamic_objc_cast<NSObject>(object.get()));
+        EXPECT_EQ(nil, dynamic_objc_cast<NSArray>(object.get()));
+    }
+
+    {
+        auto object = adoptNS(reinterpret_cast<id>([[NSObject alloc] init]));
+        EXPECT_EQ(object.get(), dynamic_objc_cast<NSObject>(object.get()));
+        EXPECT_EQ(nil, dynamic_objc_cast<MyObjectSubtype>(object.get()));
+    }
+
+    {
+        auto object = adoptNS([[NSObject alloc] init]);
+        EXPECT_EQ(nil, dynamic_objc_cast<MyObjectSubtype>(object.get()));
+    }
+}
+
+TEST(TypeCastsCocoa, dynamic_ns_cast_RetainPtr)
+{
+    {
+        RetainPtr<NSString> object;
+        auto objectCast = dynamic_objc_cast<NSString>(WTFMove(object));
+        EXPECT_EQ(nil, object.get());
+        EXPECT_EQ(nil, objectCast.get());
+    }
+
+    {
+        auto object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        id objectPtr = object.get();
+        auto objectCast = dynamic_objc_cast<NSString>(WTFMove(object));
+        EXPECT_EQ(nil, object.get());
+        EXPECT_EQ(objectPtr, objectCast.get());
+        objectPtr = nil; // For ARC.
+        EXPECT_EQ(1U, [objectCast retainCount]);
+
+        object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        objectPtr = object.get();
+        auto objectCast2 = dynamic_objc_cast<NSObject>(WTFMove(object));
+        EXPECT_EQ(nil, object.get());
+        EXPECT_EQ(objectPtr, objectCast2.get());
+        objectPtr = nil; // For ARC.
+        EXPECT_EQ(1U, [objectCast2 retainCount]);
+
+        object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        objectPtr = object.get();
+        auto objectCast3 = dynamic_objc_cast<NSArray>(WTFMove(object));
+        EXPECT_EQ(objectPtr, object.get());
+        EXPECT_EQ(nil, objectCast3.get());
+        objectPtr = nil; // For ARC.
+        EXPECT_EQ(1U, [object retainCount]);
+    }
+
+    {
+        auto object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        id objectPtr = object.get();
+        auto objectCast = dynamic_objc_cast<NSString>(WTFMove(object));
+        EXPECT_EQ(nil, object.get());
+        EXPECT_EQ(objectPtr, objectCast.get());
+        objectPtr = nil;
+        EXPECT_EQ(1U, [objectCast retainCount]);
+
+        object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
+        objectPtr = object.get();
+        auto objectCast2 = dynamic_objc_cast<NSArray>(WTFMove(object));
+        EXPECT_EQ(objectPtr, object.get());
+        EXPECT_EQ(nil, objectCast2.get());
+        objectPtr = nil;
+        EXPECT_EQ(1U, [object retainCount]);
+    }
+
+    {
+        auto object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
+        id objectPtr = object.get();
+        auto objectCast = dynamic_objc_cast<NSObject>(WTFMove(object));
+        EXPECT_EQ(nil, object.get());
+        EXPECT_EQ(objectPtr, objectCast.get());
+        objectPtr = nil;
+        EXPECT_EQ(1U, [objectCast retainCount]);
+
+        object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
+        objectPtr = object.get();
+        auto objectCast2 = dynamic_objc_cast<NSArray>(WTFMove(object));
+        EXPECT_EQ(objectPtr, object.get());
+        EXPECT_EQ(nil, objectCast2.get());
+        objectPtr = nil;
+        EXPECT_EQ(1U, [object retainCount]);
+    }
+
+    {
+        auto object = adoptNS(reinterpret_cast<id>([[NSObject alloc] init]));
+        id objectPtr = object.get();
+        auto objectCast = dynamic_objc_cast<NSObject>(WTFMove(object));
+        EXPECT_EQ(nil, object.get());
+        EXPECT_EQ(objectPtr, objectCast.get());
+        objectPtr = nil; // For ARC.
+        EXPECT_EQ(1U, [objectCast retainCount]);
+
+        object = adoptNS(reinterpret_cast<id>([[NSObject alloc] init]));
+        objectPtr = object.get();
+        auto objectCast2 = dynamic_objc_cast<MyObjectSubtype>(WTFMove(object));
+        EXPECT_EQ(objectPtr, object.get());
+        EXPECT_EQ(nil, objectCast2.get());
+        objectPtr = nil; // For ARC.
+        EXPECT_EQ(1U, [object retainCount]);
+    }
+
+    {
+        auto object = adoptNS([[NSObject alloc] init]);
+        id objectPtr = object.get();
+        auto objectCast = dynamic_objc_cast<MyObjectSubtype>(WTFMove(object));
+        EXPECT_EQ(objectPtr, object.get());
+        EXPECT_EQ(nil, objectCast.get());
+        objectPtr = nil; // For ARC.
+        EXPECT_EQ(1U, [object retainCount]);
+    }
+}
+
+} // namespace TestWebKitAPI

Deleted: trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm (282843 => 282844)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 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
- * 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.
- */
-
-#import "config.h"
-#import <wtf/cocoa/TypeCastsNS.h>
-
-#import <wtf/StdLibExtras.h>
-
-@interface MyObjectSubtype : NSObject
-@end
-
-@implementation MyObjectSubtype
-@end
-
-namespace TestWebKitAPI {
-
-using namespace WTF;
-
-TEST(TypeCastsNS, checked_ns_cast)
-{
-    EXPECT_EQ(nil, checked_ns_cast<NSString>(nil));
-
-    {
-        auto object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        EXPECT_EQ(object.get(), checked_ns_cast<NSString>(object.get()));
-        EXPECT_EQ(object.get(), checked_ns_cast<NSObject>(object.get()));
-    }
-
-    {
-        auto object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        EXPECT_EQ(object.get(), checked_ns_cast<NSString>(object.get()));
-    }
-
-    {
-        auto object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
-        EXPECT_EQ(object.get(), checked_ns_cast<NSObject>(object.get()));
-    }
-}
-
-TEST(TypeCastsNS, dynamic_ns_cast)
-{
-    EXPECT_EQ(nil, dynamic_ns_cast<NSString>(nil));
-
-    {
-        auto object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        EXPECT_EQ(object.get(), dynamic_ns_cast<NSString>(object.get()));
-        EXPECT_EQ(object.get(), dynamic_ns_cast<NSObject>(object.get()));
-        EXPECT_EQ(nil, dynamic_ns_cast<NSArray>(object.get()));
-    }
-
-    {
-        auto object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        EXPECT_EQ(object.get(), dynamic_ns_cast<NSString>(object.get()));
-        EXPECT_EQ(nil, dynamic_ns_cast<NSArray>(object.get()));
-    }
-
-    {
-        auto object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
-        EXPECT_EQ(object.get(), dynamic_ns_cast<NSObject>(object.get()));
-        EXPECT_EQ(nil, dynamic_ns_cast<NSArray>(object.get()));
-    }
-
-    {
-        auto object = adoptNS(reinterpret_cast<id>([[NSObject alloc] init]));
-        EXPECT_EQ(object.get(), dynamic_ns_cast<NSObject>(object.get()));
-        EXPECT_EQ(nil, dynamic_ns_cast<MyObjectSubtype>(object.get()));
-    }
-
-    {
-        auto object = adoptNS([[NSObject alloc] init]);
-        EXPECT_EQ(nil, dynamic_ns_cast<MyObjectSubtype>(object.get()));
-    }
-}
-
-TEST(TypeCastsNS, dynamic_ns_cast_RetainPtr)
-{
-    {
-        RetainPtr<NSString> object;
-        auto objectCast = dynamic_ns_cast<NSString>(WTFMove(object));
-        EXPECT_EQ(nil, object.get());
-        EXPECT_EQ(nil, objectCast.get());
-    }
-
-    {
-        auto object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        id objectPtr = object.get();
-        auto objectCast = dynamic_ns_cast<NSString>(WTFMove(object));
-        EXPECT_EQ(nil, object.get());
-        EXPECT_EQ(objectPtr, objectCast.get());
-        objectPtr = nil; // For ARC.
-        EXPECT_EQ(1U, [objectCast retainCount]);
-
-        object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        objectPtr = object.get();
-        auto objectCast2 = dynamic_ns_cast<NSObject>(WTFMove(object));
-        EXPECT_EQ(nil, object.get());
-        EXPECT_EQ(objectPtr, objectCast2.get());
-        objectPtr = nil; // For ARC.
-        EXPECT_EQ(1U, [objectCast2 retainCount]);
-
-        object = adoptNS(reinterpret_cast<id>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        objectPtr = object.get();
-        auto objectCast3 = dynamic_ns_cast<NSArray>(WTFMove(object));
-        EXPECT_EQ(objectPtr, object.get());
-        EXPECT_EQ(nil, objectCast3.get());
-        objectPtr = nil; // For ARC.
-        EXPECT_EQ(1U, [object retainCount]);
-    }
-
-    {
-        auto object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        id objectPtr = object.get();
-        auto objectCast = dynamic_ns_cast<NSString>(WTFMove(object));
-        EXPECT_EQ(nil, object.get());
-        EXPECT_EQ(objectPtr, objectCast.get());
-        objectPtr = nil;
-        EXPECT_EQ(1U, [objectCast retainCount]);
-
-        object = adoptNS(reinterpret_cast<NSObject *>([[NSString alloc] initWithFormat:@"%s", "Hello world"]));
-        objectPtr = object.get();
-        auto objectCast2 = dynamic_ns_cast<NSArray>(WTFMove(object));
-        EXPECT_EQ(objectPtr, object.get());
-        EXPECT_EQ(nil, objectCast2.get());
-        objectPtr = nil;
-        EXPECT_EQ(1U, [object retainCount]);
-    }
-
-    {
-        auto object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
-        id objectPtr = object.get();
-        auto objectCast = dynamic_ns_cast<NSObject>(WTFMove(object));
-        EXPECT_EQ(nil, object.get());
-        EXPECT_EQ(objectPtr, objectCast.get());
-        objectPtr = nil;
-        EXPECT_EQ(1U, [objectCast retainCount]);
-
-        object = adoptNS([[NSString alloc] initWithFormat:@"%s", "Hello world"]);
-        objectPtr = object.get();
-        auto objectCast2 = dynamic_ns_cast<NSArray>(WTFMove(object));
-        EXPECT_EQ(objectPtr, object.get());
-        EXPECT_EQ(nil, objectCast2.get());
-        objectPtr = nil;
-        EXPECT_EQ(1U, [object retainCount]);
-    }
-
-    {
-        auto object = adoptNS(reinterpret_cast<id>([[NSObject alloc] init]));
-        id objectPtr = object.get();
-        auto objectCast = dynamic_ns_cast<NSObject>(WTFMove(object));
-        EXPECT_EQ(nil, object.get());
-        EXPECT_EQ(objectPtr, objectCast.get());
-        objectPtr = nil; // For ARC.
-        EXPECT_EQ(1U, [objectCast retainCount]);
-
-        object = adoptNS(reinterpret_cast<id>([[NSObject alloc] init]));
-        objectPtr = object.get();
-        auto objectCast2 = dynamic_ns_cast<MyObjectSubtype>(WTFMove(object));
-        EXPECT_EQ(objectPtr, object.get());
-        EXPECT_EQ(nil, objectCast2.get());
-        objectPtr = nil; // For ARC.
-        EXPECT_EQ(1U, [object retainCount]);
-    }
-
-    {
-        auto object = adoptNS([[NSObject alloc] init]);
-        id objectPtr = object.get();
-        auto objectCast = dynamic_ns_cast<MyObjectSubtype>(WTFMove(object));
-        EXPECT_EQ(objectPtr, object.get());
-        EXPECT_EQ(nil, objectCast.get());
-        objectPtr = nil; // For ARC.
-        EXPECT_EQ(1U, [object retainCount]);
-    }
-}
-
-} // namespace TestWebKitAPI

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm (282843 => 282844)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -30,7 +30,7 @@
 #import "TestNavigationDelegate.h"
 #import "TestWKWebView.h"
 #import <WebKit/WebKit.h>
-#import <wtf/RetainPtr.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 TEST(WKWebView, GetContentsShouldReturnString)
 {

Modified: trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm (282843 => 282844)


--- trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm	2021-09-21 21:43:21 UTC (rev 282843)
+++ trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm	2021-09-21 22:13:24 UTC (rev 282844)
@@ -49,6 +49,7 @@
 #import <wtf/MonotonicTime.h>
 #import <wtf/SoftLinking.h>
 #import <wtf/Vector.h>
+#import <wtf/cocoa/TypeCastsCocoa.h>
 
 SOFT_LINK_FRAMEWORK(UIKit)
 SOFT_LINK_CLASS(UIKit, UIPhysicalKeyboardEvent)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to