Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ce9608ae41dd60e2c2df8b6d7b2eb49eada96b30
      
https://github.com/WebKit/WebKit/commit/ce9608ae41dd60e2c2df8b6d7b2eb49eada96b30
  Author: Chris Dumez <[email protected]>
  Date:   2026-09-30 (Wed, 30 Sep 2026)

  Changed paths:
    M Source/JavaScriptCore/API/JSStringRefCPP.h
    M Source/JavaScriptCore/API/glib/JSCClass.cpp
    M Source/WTF/wtf/SafeStrerror.cpp
    M Source/WTF/wtf/StringPrintStream.cpp
    M Source/WTF/wtf/cf/FileSystemCF.cpp
    M Source/WTF/wtf/cocoa/FileSystemCocoa.mm
    M Source/WTF/wtf/glib/Application.cpp
    M Source/WTF/wtf/glib/FileSystemGlib.cpp
    M Source/WTF/wtf/text/CString.h
    M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    M Source/WebCore/platform/sql/SQLiteDatabase.cpp
    M Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp
    M Source/WebDriver/glib/SessionHostGlib.cpp
    M Source/WebKit/NetworkProcess/glib/WebKitCachedResolver.cpp
    M Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
    M Source/WebKit/Shared/API/glib/WebKitHitTestResult.cpp
    M Source/WebKit/Shared/API/glib/WebKitUserMessage.cpp
    M Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm
    M Source/WebKit/Shared/Cocoa/SandboxInitialiationParametersCocoa.mm
    M Source/WebKit/Shared/glib/CoreIPCGTlsCertificate.cpp
    M Source/WebKit/Shared/glib/WebContextMenuItemGlib.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitApplicationInfo.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitFindController.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitInitialize.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitNetworkProxySettings.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitNotificationProvider.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitScriptDialog.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitUserAgent.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitWebsiteData.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.cpp
    M Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp
    M Source/WebKit/UIProcess/API/gtk/WebKitPrintCustomWidget.cpp
    M Source/WebKit/UIProcess/API/gtk/WebKitScriptDialogImpl.cpp
    M Source/WebKit/UIProcess/Inspector/glib/RemoteInspectorClient.cpp
    M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
    M Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp
    M Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp
    M Source/WebKit/UIProcess/Notifications/glib/NotificationService.cpp
    M Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.cpp
    M Source/WebKit/UIProcess/glib/DRMMainDevice.cpp
    M Source/WebKit/UIProcess/linux/MemoryPressureMonitor.cpp
    M Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
    M Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp
    M Source/WebKit/WPEPlatform/wpe/WPEClipboard.cpp
    M Source/WebKit/WPEPlatform/wpe/WPECursorTheme.cpp
    M Source/WebKit/WPEPlatform/wpe/WPEGamepad.cpp
    M Source/WebKit/WPEPlatform/wpe/WPESettings.cpp
    M Source/WebKit/WPEPlatform/wpe/wayland/WPEToplevelWayland.cpp
    M Tools/Scripts/webkitpy/style/checkers/cpp.py
    M Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py
    M Tools/TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKPage/glib/TestWebProcessExtensions.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKPage/glib/WebProcessExtensionTest.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestAutomationSession.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestConsoleMessage.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestDownloads.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestInputMethodContext.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestLoaderClient.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestResources.cpp
    M 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitFaviconDatabase.cpp
    M 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitNetworkSession.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/TestWebKitWebContext.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebView.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebXR.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/gtk/TestContextMenu.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/wpe/TestWebViewEditor.cpp
    M Tools/TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp
    M Tools/TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h
    M Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h
    M Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp

  Log Message:
  -----------
  Add UTF8CString::unsafeFromUTF8() and UTF8CString::fromUTF8()
https://bugs.webkit.org/show_bug.cgi?id=325748

Reviewed by Yusuke Suzuki.

Constructing a UTF8CString from the output of a C function, which is typed
as char, required a byteCast<char8_t>() at the call site. Add named factory
functions that take char and state the UTF-8 assumption in their name,
matching UTF8CStringView:

- unsafeFromUTF8(const char*) takes a null-terminated pointer and computes
  the length with strlen(). It is marked unsafe because it cannot check that
  the pointer is null-terminated.
- fromUTF8(std::span<const char>) takes a span whose length is already known,
  so it relies on no terminator.

Port existing callers. Call sites whose input is unsigned char or uint8_t
keep their explicit byteCast<char8_t>().

Add a runtime/utf8cstring_from_utf8 style check that flags a UTF8CString
constructed from byteCast<char8_t>() and suggests the new functions.

* Source/JavaScriptCore/API/JSStringRefCPP.h:
(utf8CString):
* Source/JavaScriptCore/API/glib/JSCClass.cpp:
(jscClassSetProperty):
* Source/WTF/wtf/SafeStrerror.cpp:
(WTF::safeStrerror):
* Source/WTF/wtf/StringPrintStream.cpp:
(WTF::StringPrintStream::toUTF8CString const):
* Source/WTF/wtf/cf/FileSystemCF.cpp:
(WTF::FileSystem::fileSystemRepresentation):
* Source/WTF/wtf/cocoa/FileSystemCocoa.mm:
(WTF::FileSystemImpl::createTemporaryZipArchive):
(WTF::FileSystemImpl::currentExecutableName):
* Source/WTF/wtf/glib/Application.cpp:
(WTF::applicationID):
* Source/WTF/wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::currentExecutablePath):
(WTF::FileSystemImpl::currentExecutableName):
(WTF::FileSystemImpl::webkitTopLevelDirectory):
* Source/WTF/wtf/text/CString.h:
(WTF::CString::unsafeFromUTF8):
(WTF::CString::fromUTF8):
* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::text const):
(WebCore::AccessibilityObjectAtspi::textAtOffset const):
* Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::getShaderLog):
(WebCore::getProgramLog):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcUriSetUri):
* Source/WebCore/platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
* Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp:
(WebCore::TextCheckerEnchant::updateSpellCheckingLanguages):
* Source/WebDriver/glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::messageHandlers):
* Source/WebKit/NetworkProcess/glib/WebKitCachedResolver.cpp:
(webkitCachedResolverLookupByName):
(webkitCachedResolverLookupByNameAsync):
(webkitCachedResolverLookupByNameWithFlags):
(webkitCachedResolverLookupByNameWithFlagsAsync):
* Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::didSniffContentCallback):
* Source/WebKit/Shared/API/glib/WebKitHitTestResult.cpp:
(webkitHitTestResultSetProperty):
* Source/WebKit/Shared/API/glib/WebKitUserMessage.cpp:
(webkitUserMessageSetProperty):
* Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
* Source/WebKit/Shared/Cocoa/SandboxInitialiationParametersCocoa.mm:
(WebKit::SandboxInitializationParameters::appendPathInternal):
* Source/WebKit/Shared/glib/CoreIPCGTlsCertificate.cpp:
(WebKit::CoreIPCGTlsCertificate::CoreIPCGTlsCertificate):
* Source/WebKit/Shared/glib/WebContextMenuItemGlib.cpp:
(WebKit::WebContextMenuItemGlib::createActionIfNeeded):
* Source/WebKit/UIProcess/API/glib/WebKitApplicationInfo.cpp:
(webkit_application_info_set_name):
* Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp:
(webkitAutomationSessionSetProperty):
* Source/WebKit/UIProcess/API/glib/WebKitFindController.cpp:
(webKitFindControllerSetSearchData):
* Source/WebKit/UIProcess/API/glib/WebKitInitialize.cpp:
(WebKit::initializeRemoteInspectorServer):
* Source/WebKit/UIProcess/API/glib/WebKitNetworkProxySettings.cpp:
(webkit_network_proxy_settings_new):
(webkit_network_proxy_settings_add_proxy_for_scheme):
* Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp:
(webkitNetworkSessionSetProperty):
* Source/WebKit/UIProcess/API/glib/WebKitNotificationProvider.cpp:
(WebKitNotificationProvider::withdrawAnyPreviousAPINotificationMatchingTag):
* Source/WebKit/UIProcess/API/glib/WebKitScriptDialog.cpp:
(webkit_script_dialog_prompt_set_text):
* Source/WebKit/UIProcess/API/glib/WebKitURISchemeResponse.cpp:
(webkit_uri_scheme_response_set_content_type):
(webkit_uri_scheme_response_set_status):
* Source/WebKit/UIProcess/API/glib/WebKitUserAgent.cpp:
(webkit_user_agent_new_with_application_details):
* Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:
(injectedBundleDirectory):
(webkitWebContextSetProperty):
* Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:
(faviconChangedCallback):
(webkitWebViewSetProperty):
(webkitWebViewLoadChanged):
* Source/WebKit/UIProcess/API/glib/WebKitWebsiteData.cpp:
(webkit_website_data_get_name):
* Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.cpp:
(webkitWebsiteDataManagerSetProperty):
* Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(webkitInputMethodContextImplGtkNotifySurrounding):
* Source/WebKit/UIProcess/API/gtk/WebKitPrintCustomWidget.cpp:
(webkitPrintCustomWidgetSetProperty):
* Source/WebKit/UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:
(webkitScriptDialogImplConfirm):
* Source/WebKit/UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::messageHandlers):
* Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::directoryContainingDBusSocket):
(WebKit::bubblewrapSpawn):
* Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp:
(WebKit::flatpakSpawn):
* Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp:
(WebKit::XDGDBusProxy::makeProxy):
(WebKit::XDGDBusProxy::dbusSessionProxy):
* Source/WebKit/UIProcess/Notifications/glib/NotificationService.cpp:
(WebKit::IconCache::iconPath):
(WebKit::applicationIcon):
* Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.cpp:
(WebKit::GeoclueGeolocationProvider::createPortalSession):
(WebKit::GeoclueGeolocationProvider::startPortalSession):
(WebKit::GeoclueGeolocationProvider::createGeoclueManager):
(WebKit::GeoclueGeolocationProvider::setupGeoclueManager):
(WebKit::GeoclueGeolocationProvider::createGeoclueClient):
(WebKit::GeoclueGeolocationProvider::startGeoclueClient):
(WebKit::GeoclueGeolocationProvider::createLocation):
* Source/WebKit/UIProcess/glib/DRMMainDevice.cpp:
(WebKit::drmFirstDeviceWithRenderNode):
(WebKit::drmPrimaryNodeDeviceForRenderNodeDevice):
(WebKit::drmRenderNodeDeviceFromPrimaryNodeDevice):
(WebKit::drmPrimaryNodeDevice):
(WebKit::drmRenderNodeDevice):
(WebKit::drmMainDevice):
* Source/WebKit/UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::getCgroupControllerPath):
* Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:
(WebKit::temporaryPDFDirectoryPath):
* Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::preferredBufferFormats const):
* Source/WebKit/WPEPlatform/wpe/WPEClipboard.cpp:
(wpe_clipboard_content_set_text):
* Source/WebKit/WPEPlatform/wpe/WPECursorTheme.cpp:
(WPE::cursorsPath):
* Source/WebKit/WPEPlatform/wpe/WPEGamepad.cpp:
(wpeGamepadSetProperty):
* Source/WebKit/WPEPlatform/wpe/WPESettings.cpp:
(_WPESettingsPrivate::_WPESettingsPrivate):
(wpe_settings_register):
(wpe_settings_set_value):
(wpe_settings_get_value):
* Source/WebKit/WPEPlatform/wpe/wayland/WPEToplevelWayland.cpp:
(DMABufFeedback::drmDeviceForUsage):
* Tools/Scripts/webkitpy/style/checkers/cpp.py:
(check_utf8cstring_from_utf8):
(check_style):
(CppChecker):
* Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTestBase.perform_utf8cstring_from_utf8_check):
(WebKitStyleTest.test_utf8cstring_from_utf8):
* Tools/TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(fooGetProperty):
(fooSetProperty):
* Tools/TestWebKitAPI/Tests/WebKit/WKPage/glib/TestWebProcessExtensions.cpp:
(UserMessageTest::viewUserMessageReceived):
(UserMessageTest::contextUserMessageReceived):
(UserMessageTest::waitUntilViewMessageReceived):
(UserMessageTest::waitUntilContextMessageReceived):
* Tools/TestWebKitAPI/Tests/WebKit/WKPage/glib/WebProcessExtensionTest.cpp:
(DelayedSignal::DelayedSignal):
(DelayedSignal::str2): Deleted.
(DelayedSignal::str3): Deleted.
(DelayedSignal::b2): Deleted.
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestAutomationSession.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestConsoleMessage.cpp:
(ConsoleMessageTest::consoleMessageReceivedCallback):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestDownloads.cpp:
(serverCallback):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestInputMethodContext.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestLoaderClient.cpp:
(uriChanged):
(serverCallback):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestResources.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitFaviconDatabase.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitNetworkSession.cpp:
(ProxyTest::loadURIAndGetMainResourceData):
(testNetworkSessionProxySettings):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitPolicyClient.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitSettings.cpp:
(testWebKitSettingsApplyFromConfigFile):
(convertWebViewMainResourceDataToUTF8CString):
(testWebKitSettingsUserAgent):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebContext.cpp:
(ProxyTest::loadURIAndGetMainResourceData):
(testWebContextProxySettings):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebView.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebXR.cpp:
(testWebKitXRPermissionRequest):
(testWebKitXRHitTest):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/gtk/TestContextMenu.cpp:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/wpe/TestWebViewEditor.cpp:
(EditorKeyBindingTest::evaluateString):
(EditorKeyBindingTest::copyWithKeyStroke):
* Tools/TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:
(loadChangedCallback):
* Tools/TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h:
(LoadTrackingTest::setRedirectURI):
* Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::getResourcesDir):
* Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
(WebViewTest::goBack):
(WebViewTest::goForward):
(WebViewTest::goToBackForwardListItem):
(titleChanged):
(WebViewTest::waitUntilTitleChangedTo):

Canonical link: https://commits.webkit.org/322263@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to