Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 855e48e2781f6a309352a8afe46fa02786c14a42 https://github.com/WebKit/WebKit/commit/855e48e2781f6a309352a8afe46fa02786c14a42 Author: Alex Christensen <achristen...@apple.com> Date: 2025-02-27 (Thu, 27 Feb 2025)
Changed paths: M Source/WebKit/CMakeLists.txt M Source/WebKit/DerivedSources-input.xcfilelist M Source/WebKit/DerivedSources.make M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h A Source/WebKit/Shared/JavaScriptEvaluationResult.cpp A Source/WebKit/Shared/JavaScriptEvaluationResult.h A Source/WebKit/Shared/JavaScriptEvaluationResult.mm A Source/WebKit/Shared/JavaScriptEvaluationResult.serialization.in M Source/WebKit/Sources.txt M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/API/C/WKPage.cpp M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm M Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp M Source/WebKit/UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebPage/WebPage.messages.in Log Message: ----------- Introduce JavaScriptEvaluationResult https://bugs.webkit.org/show_bug.cgi?id=288698 Reviewed by Sihui Liu. Cocoa platforms only allow 6 types to come out of WKWebView.evaluateJavaScript: NSNumber, NSString, NSDate, NSArray, NSDictionary, and NSNull. Currently, we serialize SerializedScriptValue::wireBytes then deserialize them in the UI process with the aid of a JSContext then convert them to these ObjC types. This introduces an abstraction that represents what is currently a std::span<const uint8_t> on all platforms, but it will enable us to make it a std::variant of 6 types on platforms that only need those. That will allow us to simplify the IPC format and deserialize without the need of a JSContext. * Source/WebKit/CMakeLists.txt: * Source/WebKit/DerivedSources-input.xcfilelist: * Source/WebKit/DerivedSources.make: * Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: * Source/WebKit/Shared/JavaScriptEvaluationResult.cpp: Copied from Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h. (WebKit::JavaScriptEvaluationResult::serializedScriptValue const): (WebKit::JavaScriptEvaluationResult::toWK const): (IPC::std::optional<WebCore::ExceptionDetails>>>::create): * Source/WebKit/Shared/JavaScriptEvaluationResult.h: Copied from Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h. (WebKit::JavaScriptEvaluationResult::JavaScriptEvaluationResult): (WebKit::JavaScriptEvaluationResult::wireBytes const): * Source/WebKit/Shared/JavaScriptEvaluationResult.mm: Copied from Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h. (WebKit::JavaScriptEvaluationResult::toID const): * Source/WebKit/Shared/JavaScriptEvaluationResult.serialization.in: Added. * Source/WebKit/Sources.txt: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/API/C/WKPage.cpp: (WKPageEvaluateJavaScriptInMainFrame): * Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _evaluateJavaScript:asAsyncFunction:withSourceURL:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]): * Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewRunJavaScriptWithParams): * Source/WebKit/UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp: (WebKit::RemoteInspectorProtocolHandler::runScript): * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runJavaScriptInMainFrame): (WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScript): (WebKit::WebPage::runJavaScriptInFrameInScriptWorld): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: Canonical link: https://commits.webkit.org/291252@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