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