Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7c3395d79582fe6e3754b5c536119f58adb73a0b
https://github.com/WebKit/WebKit/commit/7c3395d79582fe6e3754b5c536119f58adb73a0b
Author: Chris Dumez <[email protected]>
Date: 2026-10-06 (Tue, 06 Oct 2026)
Changed paths:
M Source/JavaScriptCore/API/glib/JSCValue.cpp
M Source/JavaScriptCore/wasm/debugger/WasmExecutionHandler.cpp
M Source/WTF/wtf/glib/GLibExtras.h
M Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp
M Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp
M Source/WebCore/platform/glib/KeyedDecoderGlib.cpp
M Source/WebCore/platform/glib/KeyedEncoderGlib.cpp
M Source/WebCore/platform/glib/SelectionData.cpp
M Source/WebCore/platform/libwpe/PlatformPasteboardLibWPE.cpp
M Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
M Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp
M Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp
M Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp
M Source/WebDriver/soup/WebSocketServerSoup.cpp
M Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
M Source/WebKit/NetworkProcess/soup/NetworkStorageSessionSoup.cpp
M Source/WebKit/NetworkProcess/soup/WebKitDirectoryInputStream.cpp
M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp
M Source/WebKit/Shared/glib/CoreIPCGVariant.cpp
M Source/WebKit/UIProcess/API/glib/InputMethodFilter.cpp
M Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp
M Source/WebKit/UIProcess/API/glib/WebKitUserContentFilterStore.cpp
M Source/WebKit/UIProcess/API/gtk/DragSourceGtk4.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp
M Source/WebKit/UIProcess/Extensions/gtk/WebExtensionGTK.cpp
M Source/WebKit/UIProcess/Extensions/wpe/WebExtensionWPE.cpp
M Source/WebKit/UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp
M Source/WebKit/UIProcess/Inspector/wpe/WebInspectorUIProxyWPE.cpp
M Source/WebKit/UIProcess/gtk/ClipboardGtk4.cpp
M Source/WebKit/UIProcess/gtk/ValidationBubbleGtk.cpp
M Source/WebKit/UIProcess/wpe/AcceleratedBackingStore.cpp
M Source/WebKit/UIProcess/wpe/WebPasteboardProxyWPE.cpp
M Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
M Tools/Scripts/webkitpy/style/checkers/cpp.py
M Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py
M Tools/TestWebKitAPI/Helpers/PlatformUtilities.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKPage/glib/TestWebProcessExtensions.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestBackForwardList.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitImage.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitPolicyClient.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitSettings.cpp
M
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitUserContentFilterStore.cpp
M
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitUserContentManager.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebContext.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebExtension.cpp
M
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebExtensionContext.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebView.cpp
M Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp
M Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp
M Tools/WebKitTestRunner/wpe/PlatformWebViewClientWPE.cpp
Log Message:
-----------
Add span-based C++ wrappers for GLib functions that take data with a length
https://bugs.webkit.org/show_bug.cgi?id=326047
Reviewed by Fujii Hironori.
Many callers unwrapped a UTF8CString with legacyCStringPointer() only to pass
it along with its length, which does not need a null terminator. Pass the
bytes from span() instead, storing the span in a local where both data() and
size() are needed.
Add wrappers to wtf/glib/GLibExtras.h:
- gBytesNew() and gBytesNewStatic() take a span of any trivially copyable type.
- gMemoryInputStreamNewFromData() and gMemoryInputStreamAddData() take a
GMallocString, whose ownership moves to the stream.
- gMemoryInputStreamNewFromStaticData() and gMemoryInputStreamAddStaticData()
take a span, which is not copied and must outlive the stream. Like
gBytesNewStatic(), the "Static" suffix makes the borrow visible at call sites.
- gKeyFileLoadFromData() and gMarkupEscapeText() take a UTF8CStringView.
Adopt them throughout Source/ and Tools/, removing 31 calls to
legacyCStringPointer() and many strlen() calls.
Add a runtime/legacy_cstring_pointer_with_length style check for
legacyCStringPointer() passed with the length of the same string, and teach
runtime/glib_string_wrappers about gKeyFileLoadFromData() and
gMarkupEscapeText().
* Source/JavaScriptCore/API/glib/JSCValue.cpp:
* Source/JavaScriptCore/wasm/debugger/WasmExecutionHandler.cpp:
* Source/WTF/wtf/glib/GLibExtras.h:
(WTF::gBytesNew):
(WTF::gBytesNewStatic):
(WTF::gKeyFileLoadFromData):
(WTF::gMarkupEscapeText):
(WTF::gMemoryInputStreamAddData):
(WTF::gMemoryInputStreamAddStaticData):
(WTF::gMemoryInputStreamNewFromData):
(WTF::gMemoryInputStreamNewFromStaticData):
* Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp:
* Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
* Source/WebCore/platform/glib/KeyedDecoderGlib.cpp:
* Source/WebCore/platform/glib/KeyedEncoderGlib.cpp:
* Source/WebCore/platform/glib/SelectionData.cpp:
* Source/WebCore/platform/libwpe/PlatformPasteboardLibWPE.cpp:
(WebCore::initializePasteboardString):
* Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:
* Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:
* Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp:
* Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:
* Source/WebDriver/soup/WebSocketServerSoup.cpp:
* Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:
* Source/WebKit/NetworkProcess/soup/NetworkStorageSessionSoup.cpp:
* Source/WebKit/NetworkProcess/soup/WebKitDirectoryInputStream.cpp:
* Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp:
* Source/WebKit/Shared/glib/CoreIPCGVariant.cpp:
* Source/WebKit/UIProcess/API/glib/InputMethodFilter.cpp:
* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp:
* Source/WebKit/UIProcess/API/glib/WebKitUserContentFilterStore.cpp:
* Source/WebKit/UIProcess/API/gtk/DragSourceGtk4.cpp:
* Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
* Source/WebKit/UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
* Source/WebKit/UIProcess/Extensions/gtk/WebExtensionGTK.cpp:
* Source/WebKit/UIProcess/Extensions/wpe/WebExtensionWPE.cpp:
* Source/WebKit/UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp:
* Source/WebKit/UIProcess/Inspector/wpe/WebInspectorUIProxyWPE.cpp:
* Source/WebKit/UIProcess/gtk/ClipboardGtk4.cpp:
* Source/WebKit/UIProcess/gtk/ValidationBubbleGtk.cpp:
* Source/WebKit/UIProcess/wpe/AcceleratedBackingStore.cpp:
* Source/WebKit/UIProcess/wpe/WebPasteboardProxyWPE.cpp:
* Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
* Tools/Scripts/webkitpy/style/checkers/cpp.py:
(check_legacy_cstring_pointer_with_length):
* Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:
* Tools/TestWebKitAPI/Helpers/PlatformUtilities.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKPage/glib/TestWebProcessExtensions.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestBackForwardList.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitImage.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitPolicyClient.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitSettings.cpp:
*
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitUserContentFilterStore.cpp:
*
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitUserContentManager.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebContext.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebExtension.cpp:
*
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebExtensionContext.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebView.cpp:
* Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
* Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:
* Tools/WebKitTestRunner/wpe/PlatformWebViewClientWPE.cpp:
Canonical link: https://commits.webkit.org/322837@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications