Title: [279072] trunk/Source/WebKit
Revision
279072
Author
[email protected]
Date
2021-06-21 11:46:31 -0700 (Mon, 21 Jun 2021)

Log Message

Upstream async support to Swift overlay.
https://bugs.webkit.org/show_bug.cgi?id=227006.

Reviewed by Alex Christensen.

* SwiftOverlay/Tests/_javascript_ToSwiftTypeConversions.swift:
(_javascript_ToSwiftConversions.testUsingSwiftAsync): Adds a simple test
for the Swift async interface.
* SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Removed
use of WebKitAdditions, which is needed both to prevent redefinition
errors and because they are no longer necessary.
* UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:
(WKWebView.callAsyncJavaScript(_:arguments:in:contentWorld:)):
(WKWebView.pdf(_:)):
(WKWebView.evaluateJavaScript(_:in:contentWorld:)):
(WKWebView.find(_:configuration:)):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (279071 => 279072)


--- trunk/Source/WebKit/ChangeLog	2021-06-21 18:44:02 UTC (rev 279071)
+++ trunk/Source/WebKit/ChangeLog	2021-06-21 18:46:31 UTC (rev 279072)
@@ -1,3 +1,22 @@
+2021-06-21  James Savage  <[email protected]>
+
+        Upstream async support to Swift overlay.
+        https://bugs.webkit.org/show_bug.cgi?id=227006.
+
+        Reviewed by Alex Christensen.
+
+        * SwiftOverlay/Tests/_javascript_ToSwiftTypeConversions.swift:
+        (_javascript_ToSwiftConversions.testUsingSwiftAsync): Adds a simple test
+        for the Swift async interface.
+        * SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj: Removed
+        use of WebKitAdditions, which is needed both to prevent redefinition
+        errors and because they are no longer necessary.
+        * UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:
+        (WKWebView.callAsyncJavaScript(_:arguments:in:contentWorld:)):
+        (WKWebView.pdf(_:)):
+        (WKWebView.evaluateJavaScript(_:in:contentWorld:)):
+        (WKWebView.find(_:configuration:)):
+
 2021-06-21  Alex Christensen  <[email protected]>
 
         Add log when creating NSURLSession that will not accept cookies

Modified: trunk/Source/WebKit/SwiftOverlay/Tests/_javascript_ToSwiftTypeConversions.swift (279071 => 279072)


--- trunk/Source/WebKit/SwiftOverlay/Tests/_javascript_ToSwiftTypeConversions.swift	2021-06-21 18:44:02 UTC (rev 279071)
+++ trunk/Source/WebKit/SwiftOverlay/Tests/_javascript_ToSwiftTypeConversions.swift	2021-06-21 18:46:31 UTC (rev 279072)
@@ -120,4 +120,16 @@
 
         wait(for: [evaluationExpectation], timeout: 30)
     }
+
+    #if swift(>=5.5)
+    @available(iOS 15.0, macOS 12.0, *)
+    func testUsingSwiftAsync() async throws {
+        guard let result = try await webView.evaluateJavaScript(#""Hello, world!""#) as? String else {
+            XCTFail("Unexpected result from evaluating _javascript_.")
+            return
+        }
+
+        XCTAssertEqual(result, "Hello, world!")
+    }
+    #endif
 }

Modified: trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj (279071 => 279072)


--- trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj	2021-06-21 18:44:02 UTC (rev 279071)
+++ trunk/Source/WebKit/SwiftOverlay/WebKitSwiftOverlay.xcodeproj/project.pbxproj	2021-06-21 18:46:31 UTC (rev 279072)
@@ -17,8 +17,6 @@
 		B3B8FECD250090B1006172CA /* _javascript_ToSwiftTypeConversions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B8FECB250090B1006172CA /* _javascript_ToSwiftTypeConversions.swift */; };
 		B3B8FEEF2502BAA0006172CA /* ObjectiveCBlockConversions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B8FEEE2502BAA0006172CA /* ObjectiveCBlockConversions.swift */; };
 		B3B8FEF02502BAA0006172CA /* ObjectiveCBlockConversions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B8FEEE2502BAA0006172CA /* ObjectiveCBlockConversions.swift */; };
-		B3DF244C2638BE240038D95A /* WebKitSwiftOverlayAdditions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B31B03FD2637EF6500D67EAD /* WebKitSwiftOverlayAdditions.swift */; };
-		B3DF244D2638BE290038D95A /* WebKitSwiftOverlayAdditions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B31B03FD2637EF6500D67EAD /* WebKitSwiftOverlayAdditions.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -43,7 +41,6 @@
 		7D20068722F26721008DF640 /* libswiftWebKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libswiftWebKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
 		7D20070722F4EB72008DF640 /* WebKitSwiftOverlayTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WebKitSwiftOverlayTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		7D20071622F4ECCA008DF640 /* WebKitSwiftOverlayTests-maccatalyst.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "WebKitSwiftOverlayTests-maccatalyst.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
-		B31B03FD2637EF6500D67EAD /* WebKitSwiftOverlayAdditions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebKitSwiftOverlayAdditions.swift; path = usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift; sourceTree = BUILT_PRODUCTS_DIR; };
 		B3A5D38823F78F5400B17727 /* WebKitTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebKitTests.swift; sourceTree = "<group>"; };
 		B3A5D39123F790DB00B17727 /* WebKitSwiftOverlay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebKitSwiftOverlay.swift; path = ../UIProcess/API/Cocoa/WebKitSwiftOverlay.swift; sourceTree = SOURCE_ROOT; };
 		B3A5D39423F790E100B17727 /* WebKitSwiftOverlay.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebKitSwiftOverlay.xcconfig; sourceTree = "<group>"; };
@@ -97,7 +94,6 @@
 				B3A5D39923F790E100B17727 /* install-swiftmodules.sh */,
 				B3B8FEEE2502BAA0006172CA /* ObjectiveCBlockConversions.swift */,
 				B3A5D39123F790DB00B17727 /* WebKitSwiftOverlay.swift */,
-				B31B03FD2637EF6500D67EAD /* WebKitSwiftOverlayAdditions.swift */,
 			);
 			name = "Swift Overlay";
 			path = SwiftOverlay;
@@ -178,7 +174,6 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 7D20067B22F2652E008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlay" */;
 			buildPhases = (
-				B31B03FC2637EEBD00D67EAD /* Copy Additional Sources */,
 				7D20067122F2652E008DF640 /* Headers */,
 				7D20067222F2652E008DF640 /* Sources */,
 				7D20067322F2652E008DF640 /* Frameworks */,
@@ -197,7 +192,6 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 7D20068D22F26721008DF640 /* Build configuration list for PBXNativeTarget "WebKitSwiftOverlay-maccatalyst" */;
 			buildPhases = (
-				B31B04002637F22E00D67EAD /* Copy Additional Sources */,
 				7D20068322F26721008DF640 /* Headers */,
 				7D20068422F26721008DF640 /* Sources */,
 				7D20068522F26721008DF640 /* Frameworks */,
@@ -351,46 +345,6 @@
 			shellPath = /bin/sh;
 			shellScript = "exec \"${SOURCE_ROOT}/SwiftOverlay/install-swiftmodules.sh\"\n";
 		};
-		B31B03FC2637EEBD00D67EAD /* Copy Additional Sources */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-			);
-			inputPaths = (
-				"$(SDK_DIR)/usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift",
-			);
-			name = "Copy Additional Sources";
-			outputFileListPaths = (
-			);
-			outputPaths = (
-				"$(BUILT_PRODUCTS_DIR)/usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "set -e\n\nRELATIVE_SOURCE_PATH=\"usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift\"\nSOURCE_PATH=\"$SDK_DIR/$RELATIVE_SOURCE_PATH\"\nDESTINATION_PATH=\"$BUILT_PRODUCTS_DIR/$RELATIVE_SOURCE_PATH\"\n\nif [[ -e \"$SOURCE_PATH\" ]]; then\n    ditto \"$SOURCE_PATH\" \"$DESTINATION_PATH\"\nelse\n    touch \"$DESTINATION_PATH\"\nfi\n";
-		};
-		B31B04002637F22E00D67EAD /* Copy Additional Sources */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-			);
-			inputPaths = (
-				"$(SDK_DIR)/usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift",
-			);
-			name = "Copy Additional Sources";
-			outputFileListPaths = (
-			);
-			outputPaths = (
-				"$(BUILT_PRODUCTS_DIR)/usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "set -e\n\nRELATIVE_SOURCE_PATH=\"usr/local/include/WebKitAdditions/WebKitSwiftOverlayAdditions.swift\"\nSOURCE_PATH=\"$SDK_DIR/$RELATIVE_SOURCE_PATH\"\nDESTINATION_PATH=\"$BUILT_PRODUCTS_DIR/$RELATIVE_SOURCE_PATH\"\n\nif [[ -e \"$SOURCE_PATH\" ]]; then\n    ditto \"$SOURCE_PATH\" \"$DESTINATION_PATH\"\nelse\n    touch \"$DESTINATION_PATH\"\nfi\n";
-		};
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
@@ -400,7 +354,6 @@
 			files = (
 				B3B8FEEF2502BAA0006172CA /* ObjectiveCBlockConversions.swift in Sources */,
 				B3A5D39223F790DB00B17727 /* WebKitSwiftOverlay.swift in Sources */,
-				B3DF244C2638BE240038D95A /* WebKitSwiftOverlayAdditions.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -410,7 +363,6 @@
 			files = (
 				B3B8FEF02502BAA0006172CA /* ObjectiveCBlockConversions.swift in Sources */,
 				B3A5D39323F790DB00B17727 /* WebKitSwiftOverlay.swift in Sources */,
-				B3DF244D2638BE290038D95A /* WebKitSwiftOverlayAdditions.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift (279071 => 279072)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift	2021-06-21 18:44:02 UTC (rev 279071)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WebKitSwiftOverlay.swift	2021-06-21 18:46:31 UTC (rev 279072)
@@ -55,3 +55,24 @@
         __find(string, with: configuration, completionHandler: completionHandler)
     }
 }
+
+#if swift(>=5.5)
+@available(iOS 15.0, macOS 12.0, *)
+extension WKWebView {
+    public func callAsyncJavaScript(_ functionBody: String, arguments: [String:Any] = [:], in frame: WKFrameInfo? = nil, contentWorld: WKContentWorld) async throws -> Any? {
+        return try await __callAsyncJavaScript(functionBody, arguments: arguments, inFrame: frame, in: contentWorld)
+    }
+
+    public func pdf(configuration: WKPDFConfiguration = .init()) async throws -> Data {
+        try await __createPDF(with: configuration)
+    }
+
+    public func evaluateJavaScript(_ _javascript_: String, in frame: WKFrameInfo? = nil, contentWorld: WKContentWorld) async throws -> Any? {
+        try await __evaluateJavaScript(_javascript_, inFrame: frame, in: contentWorld)
+    }
+
+    public func find(_ string: String, configuration: WKFindConfiguration = .init()) async throws -> WKFindResult {
+        await __find(string, with: configuration)
+    }
+}
+#endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to