Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bdea79f67f1c97c0a88cfe1d97634e253a3544bc
https://github.com/WebKit/WebKit/commit/bdea79f67f1c97c0a88cfe1d97634e253a3544bc
Author: Chris Dumez <[email protected]>
Date: 2026-10-01 (Thu, 01 Oct 2026)
Changed paths:
M Source/WTF/wtf/glib/GLibExtras.h
M Source/WTF/wtf/text/StringView.h
M Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp
M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
M Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
M
Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp
M Source/WebKit/Shared/API/glib/WebKitHitTestResult.cpp
M Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp
M Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp
M
Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebHitTestResult.cpp
M Tools/Scripts/webkitpy/style/checkers/cpp.py
M Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py
M Tools/TestWebKitAPI/Tests/WTF/StringView.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestInputMethodContext.cpp
Log Message:
-----------
Add more C++ wrappers for GLib and GStreamer functions that take UTF-8 strings
https://bugs.webkit.org/show_bug.cgi?id=325782
Reviewed by Claudio Saavedra.
GLib code still unwrapped UTF8CStrings with legacyCStringPointer() to pass them
to a few GLib and
GStreamer functions. Add wrappers to wtf/glib/GLibExtras.h that take typed
strings:
gDBusConnectionEmitSignal() takes a UTF8CStringView object path, and
gObjectNew() converts each
argument with glibVariadicType(), like gVariantNew(), and supplies the
terminating nullptr itself.
Use WTF instead of GLib where WTF can do the same:
- Add StringView::codePointCount() and use it in the ATSPI text code instead of
calling
g_utf8_strlen() on a UTF-8 copy of a string whose UTF-16 form is already at
hand.
- Compare against UTF8CStringView::unsafeFromUTF8() instead of calling
g_strcmp0(). Unlike
g_strcmp0(), this treats a null string as equal to an empty one.
Add gstStructureSet() and gstStructureNew() to GStreamerCommon.h, which convert
each field name and
value with glibVariadicType() and supply the terminating nullptr themselves,
since GCC's sentinel
check does not accept a converted nullptr.
gObjectNew() static_asserts that it is given a value for each property name.
Use the wrappers at the call sites in Source/ and Tools/, removing 60 calls to
legacyCStringPointer().
Extend the runtime/glib_string_wrappers style check to suggest the new
wrappers, pointing to
GStreamerCommon.h for the GStreamer ones.
* Source/WTF/wtf/glib/GLibExtras.h:
(WTF::gDBusConnectionEmitSignal):
(WTF::gObjectNew):
* Source/WTF/wtf/text/StringView.h:
(WTF::StringView::codePointCount const):
* Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::unregisterRoot):
(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::stateChanged):
(WebCore::AccessibilityAtspi::textChanged):
(WebCore::AccessibilityAtspi::textAttributesChanged):
(WebCore::AccessibilityAtspi::textCaretMoved):
(WebCore::AccessibilityAtspi::textSelectionChanged):
(WebCore::AccessibilityAtspi::valueChanged):
(WebCore::AccessibilityAtspi::activeDescendantChanged):
(WebCore::AccessibilityAtspi::selectionChanged):
(WebCore::AccessibilityAtspi::loadEvent):
* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::text const):
(WebCore::AccessibilityObjectAtspi::textInserted):
(WebCore::AccessibilityObjectAtspi::textDeleted):
(WebCore::AccessibilityObjectAtspi::textAtOffset const):
(WebCore::AccessibilityObjectAtspi::characterAtOffset const):
(WebCore::AccessibilityObjectAtspi::characterIndex const):
(WebCore::AccessibilityObjectAtspi::textExtents const):
(WebCore::AccessibilityObjectAtspi::selectionBounds const):
(WebCore::AccessibilityObjectAtspi::selectRange):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
(WebCore::AccessibilityObjectAtspi::textAttributesWithUTF8Offset const):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::createAutoAudioSink):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::gstStructureSet):
(WebCore::gstStructureNew):
* Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::responseReceived):
* Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcEmitStreams):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp:
(webkitMockDeviceCreate):
* Source/WebKit/Shared/API/glib/WebKitHitTestResult.cpp:
(webkitHitTestResultCreate):
* Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp:
(webkitAutomationSessionCreate):
* Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_set_default_font_family):
(webkit_settings_set_monospace_font_family):
(webkit_settings_set_serif_font_family):
(webkit_settings_set_sans_serif_font_family):
(webkit_settings_set_cursive_font_family):
(webkit_settings_set_fantasy_font_family):
(webkit_settings_set_pictograph_font_family):
(webkit_settings_set_math_font_family):
(webkit_settings_set_default_charset):
(webkit_settings_set_media_content_types_requiring_hardware_support):
(webkit_settings_set_webrtc_udp_ports_range):
* Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebHitTestResult.cpp:
(webkitWebHitTestResultCreate):
* Tools/Scripts/webkitpy/style/checkers/cpp.py:
(_check_string_wrappers):
(check_glib_string_wrappers):
(check_posix_string_wrappers):
* Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_glib_string_wrappers):
* Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::TEST(WTF, StringViewCodePointCount)):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestInputMethodContext.cpp:
Canonical link: https://commits.webkit.org/322368@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications