Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0b6bdc8b69f7b545c1c43217cf010f76eb6976bb https://github.com/WebKit/WebKit/commit/0b6bdc8b69f7b545c1c43217cf010f76eb6976bb Author: Alex Christensen <achristen...@apple.com> Date: 2024-08-03 (Sat, 03 Aug 2024)
Changed paths: M Source/WebKit/Shared/API/APIArray.cpp M Source/WebKit/Shared/API/APIArray.h M Source/WebKit/Shared/API/APIDictionary.cpp M Source/WebKit/Shared/API/APIDictionary.h A Source/WebKit/Shared/API/APISerializedScriptValue.cpp M Source/WebKit/Shared/API/APISerializedScriptValue.h M Source/WebKit/Shared/API/c/WKMutableArray.cpp M Source/WebKit/Shared/API/c/WKMutableArray.h M Source/WebKit/Shared/API/c/WKMutableDictionary.cpp M Source/WebKit/Shared/API/c/WKMutableDictionary.h M Source/WebKit/Shared/API/c/WKString.cpp M Source/WebKit/Shared/API/c/WKString.h M Source/WebKit/Sources.txt M Source/WebKit/UIProcess/API/C/WKPage.cpp M Source/WebKit/UIProcess/API/C/WKPage.h M Source/WebKit/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm M Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.mm M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm M Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm M Tools/TestWebKitAPI/JavaScriptTest.cpp M Tools/TestWebKitAPI/Tests/WebKit/DidAssociateFormControls.cpp M Tools/TestWebKitAPI/Tests/WebKit/EvaluateJavaScript.cpp M Tools/TestWebKitAPI/Tests/WebKit/PageLoadDidChangeLocationWithinPageForFrame.cpp M Tools/TestWebKitAPI/Tests/WebKit/PreventEmptyUserAgent.cpp M Tools/TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp M Tools/TestWebKitAPI/Tests/WebKit/SpacebarScrolling.cpp M Tools/TestWebKitAPI/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp M Tools/TestWebKitAPI/Tests/WebKit/WKPageIsPlayingAudio.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm M Tools/TestWebKitAPI/Tests/WebKitObjC/UserContentTest.mm M Tools/WebKitTestRunner/WorkQueueManager.cpp Log Message: ----------- Introduce C SPI WKPageEvaluateJavaScriptInMainFrame to avoid using WKSerializedScriptValueRef https://bugs.webkit.org/show_bug.cgi?id=277522 rdar://133024450 Reviewed by Timothy Hatcher. WKPageRunJavaScriptInMainFrame returns the result as a SerializedScriptValue, which you need a JS context to do anything with. WKWebView.evaluateJavaScript returns the result as an NSNumber, NSString, NSDate, NSArray, NSDictionary, or NSNull. This does the WKTypeRef equivalent to make the C SPI look more like the public ObjC API. The next step is to stop using SerializedScriptValue and a temporary JS context just to send a result of one of these 5 types. * Source/WebKit/Shared/API/APISerializedScriptValue.cpp: Copied from Source/WebKit/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm. (API::SharedJSContext::SharedJSContext): (API::SharedJSContext::ensureContext): (API::SharedJSContext::releaseContextIfNecessary): (API::sharedContext): (API::SerializedScriptValue::deserializeWK): * Source/WebKit/Shared/API/APISerializedScriptValue.h: * Source/WebKit/Sources.txt: * Source/WebKit/UIProcess/API/C/WKPage.cpp: (WKPageRunJavaScriptInMainFrame): (WKPageEvaluateJavaScriptInMainFrame): (callRunJavaScriptBlockAndRelease): Deleted. (WKPageRunJavaScriptInMainFrame_b): Deleted. * Source/WebKit/UIProcess/API/C/WKPage.h: * Source/WebKit/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm: (API::SerializedScriptValue::deserialize): * Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.mm: * Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _evaluateJavaScript:asAsyncFunction:withSourceURL:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]): * Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtension.mm: (-[_WKInspectorExtension evaluateScript:frameURL:contextSecurityOrigin:useContentScriptContext:completionHandler:]): (-[_WKInspectorExtension evaluateScript:inTabWithIdentifier:completionHandler:]): * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm: (WebKit::WebExtensionAPIDevToolsInspectedWindow::eval): Canonical link: https://commits.webkit.org/281812@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes