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

  Changed paths:
    M Source/JavaScriptCore/runtime/Options.cpp
    M Source/WTF/wtf/PrintStream.cpp
    M Source/WebCore/Modules/gamepad/GamepadManager.cpp
    M Source/WebCore/Modules/indexeddb/IDBCursor.cpp
    M Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
    M Source/WebCore/Modules/indexeddb/IDBFactory.cpp
    M Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
    M Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
    M Source/WebCore/Modules/indexeddb/IDBRequest.cpp
    M Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
    M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp
    M Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
    M Source/WebCore/Modules/indexeddb/server/IndexValueStore.cpp
    M Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp
    M Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp
    M Source/WebCore/Modules/indexeddb/server/MemoryIndexCursor.cpp
    M Source/WebCore/Modules/indexeddb/server/MemoryObjectStoreCursor.cpp
    M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
    M Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp
    M Source/WebCore/Modules/indexeddb/server/SQLiteMemoryIDBBackingStore.cpp
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp
    M Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp
    M Source/WebCore/Modules/mediasource/SourceBuffer.cpp
    M Source/WebCore/Modules/webdatabase/DatabaseManager.cpp
    M Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp
    M Source/WebCore/Modules/websockets/WebSocket.cpp
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXTextMarker.h
    M Source/WebCore/contentextensions/CombinedURLFilters.cpp
    M Source/WebCore/contentextensions/ContentExtensionCompiler.cpp
    M Source/WebCore/contentextensions/ContentExtensionsBackend.cpp
    M Source/WebCore/cssjit/CompiledSelector.h
    M Source/WebCore/dom/MessagePort.cpp
    M Source/WebCore/dom/messageports/MessagePortChannel.cpp
    M Source/WebCore/dom/messageports/MessagePortChannelRegistry.cpp
    M Source/WebCore/editing/Editor.cpp
    M Source/WebCore/editing/TypingCommand.cpp
    M Source/WebCore/fileapi/FileReader.cpp
    M Source/WebCore/history/CachedFrame.cpp
    M Source/WebCore/html/HTMLPlugInElement.cpp
    M Source/WebCore/html/HTMLTrackElement.cpp
    M Source/WebCore/html/NumberInputType.cpp
    M Source/WebCore/inspector/InspectorFrontendClientLocal.cpp
    M Source/WebCore/layout/Verification.cpp
    M Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/loader/SubresourceLoader.cpp
    M Source/WebCore/loader/cache/CachedResource.cpp
    M Source/WebCore/loader/cache/CachedResourceLoader.cpp
    M Source/WebCore/loader/ios/LegacyPreviewLoader.mm
    M Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp
    M Source/WebCore/page/EventHandler.cpp
    M Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp
    M Source/WebCore/platform/graphics/FontCache.cpp
    M Source/WebCore/platform/graphics/MediaPlayer.cpp
    M Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp
    M Source/WebCore/platform/network/curl/CurlFormDataStream.cpp
    M Source/WebCore/rendering/LegacyInlineTextBox.cpp
    M Source/WebCore/rendering/RenderLayerCompositor.cpp
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/testing/MockContentFilter.cpp
    M Source/WebCore/workers/service/ServiceWorkerClients.cpp
    M Source/WebCore/workers/service/ServiceWorkerRegistration.cpp
    M Source/WebCore/workers/service/context/ServiceWorkerThread.cpp
    M Source/WebCore/workers/service/server/SWServer.cpp
    M Source/WebDriver/Session.cpp
    M Source/WebDriver/SessionHost.cpp
    M Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
    M Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.mm
    M Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp
    M Source/WebKit/UIProcess/Automation/BidiSessionAgent.cpp
    M Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.cpp
    M Source/WebKit/UIProcess/Automation/WebDriverBidiProcessor.cpp
    M Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm
    M Source/WebKit/UIProcess/Notifications/WebNotificationManagerProxy.cpp
    M Source/WebKit/UIProcess/SuspendedPageProxy.cpp
    M Source/WebKit/UIProcess/WebBackForwardList.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm
    M Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.cpp
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
    M Source/WebKit/WebProcess/Network/WebResourceLoader.cpp
    M Source/WebKit/WebProcess/Notifications/WebNotificationManager.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKitLegacy/WebCoreSupport/WebSocketChannel.cpp
    M Tools/TestWebKitAPI/Helpers/PlatformUtilities.h
    M Tools/TestWebKitAPI/Helpers/Test.h
    M Tools/TestWebKitAPI/Tests/JavaScriptCore/InspectorConsoleMessage.cpp
    M Tools/TestWebKitAPI/Tests/WTF/Base64.cpp
    M Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp
    M Tools/TestWebKitAPI/Tests/WTF/FixedVector.cpp
    M Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp
    M Tools/TestWebKitAPI/Tests/WTF/OrderedHashMap.cpp
    M Tools/TestWebKitAPI/Tests/WTF/OrderedHashSet.cpp
    M Tools/TestWebKitAPI/Tests/WTF/RobinHoodHashMap.cpp
    M Tools/TestWebKitAPI/Tests/WTF/StringConcatenate.cpp
    M Tools/TestWebKitAPI/Tests/WTF/StringView.cpp
    M Tools/TestWebKitAPI/Tests/WTF/URLParser.cpp
    M Tools/TestWebKitAPI/Tests/WTF/Vector.cpp
    M Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp
    M Tools/TestWebKitAPI/Tests/WTF/WeakPtr.cpp
    M Tools/TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm
    M Tools/TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/ISOBox.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/cocoa/CaptionPreferencesTests.mm
    M Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebCore/win/WebCoreBundle.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/win/WindowsKeyNames.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/DeviceIdHashSaltStorage.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKPage/EnvironmentUtilitiesTest.cpp
    M 
Tools/TestWebKitAPI/Tests/WebKit/WKPage/cocoa/MediaSessionCoordinatorTest.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ContentRuleListNotification.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/EnhancedSecurityPolicies.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/MediaLoading.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/PermissionsAPI.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SafeBrowsing.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ServiceWorkerBasic.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewGetContents.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WritingTools.mm

  Log Message:
  -----------
  Reduce use of CString::legacyCStringPointer() in the codebase
https://bugs.webkit.org/show_bug.cgi?id=323859

Reviewed by Yusuke Suzuki.

This brings the number of legacyCStringPointer() call sites down from 2507 to
1657. In almost every case the destination already accepted a WTF string type,
and the call site was converting to const char* for no reason.

1. LOG(channel, "... %s ...", string.utf8().legacyCStringPointer()) becomes
   LOG_WITH_STREAM(channel, stream << "... "_s << string << " ..."_s).
   LOG_WITH_STREAM is the existing idiom for this (847 pre-existing call
   sites) and TextStream prints String, StringView and ASCIILiteral directly.
   303 call sites converted, which required adding <wtf/text/TextStream.h> to
   83 files. Only formats whose conversions map one-to-one onto TextStream
   output were converted; those using %.255s, %x, %f, %{sensitive}s or a
   width argument were left alone because their output would change.

2. In TestWebKitAPI, EXPECT_STREQ("foo", actual.utf8().legacyCStringPointer())
   becomes EXPECT_EQ("foo"_s, actual). Comparing a String against an
   ASCIILiteral with EXPECT_EQ is already the dominant idiom in these tests
   (991 pre-existing call sites), and it prints both strings on failure
   instead of comparing raw pointers.

   Two kinds of assertion are deliberately not converted. Ones whose expected
   value contains non-ASCII bytes stay as EXPECT_STREQ, since those are
   testing the UTF-8 encoding. More subtly, String() and ""_s are not equal
   even though String().utf8() yields the empty C string, so an assertion
   comparing against the empty string is not equivalent to its EXPECT_EQ
   form when the value under test can be null: Base64 decoding of invalid
   input and ParsedContentRange::headerValue() for an invalid range both
   return a null String, and URLParserTextEncoding's eq() has to assert the
   same UTF-8 byte comparison that it returns. Those check isEmpty() or keep
   comparing bytes.

3. Call sites whose destination already takes a String: TextStream's
   operator<<, dataLog()/dataLogLn(), PrintStream::printInternal(),
   CString::toStdString() and String::createNSString(). Several of these also
   drop a surrounding WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN/END pair.

4. The JavaScriptCore wasm debugger tests pass their message to TEST_ASSERT,
   which forwards to dataLogLn(), so the conversion was never needed there.

Debug log output is unchanged except that bool arguments previously formatted
with %d now print as true/false. One pre-existing typo is fixed along the way:
WebPageProxy::suspendCurrentPageIfPossible()'s log format had a stray PRIu64
with no conversion, so it printed a literal "llu".

What remains is mostly irreducible without new API: os_log-based RELEASE_LOG,
the GLib/GTK/GStreamer/ICU/sqlite3 and other C interfaces, and printf-style
assertion messages.

* Source/*:

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



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

Reply via email to