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

Reply via email to