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

  Changed paths:
    M Source/JavaScriptCore/API/ObjcRuntimeExtras.h
    M Source/JavaScriptCore/assembler/Printer.cpp
    M Source/JavaScriptCore/assembler/Printer.h
    M Source/JavaScriptCore/b3/air/testair.cpp
    M Source/JavaScriptCore/disassembler/Disassembler.cpp
    M Source/JavaScriptCore/disassembler/Disassembler.h
    M Source/JavaScriptCore/jsc.cpp
    M Source/JavaScriptCore/profiler/ProfilerDatabase.cpp
    M Source/JavaScriptCore/profiler/ProfilerDatabase.h
    M Source/JavaScriptCore/runtime/VM.cpp
    M Source/JavaScriptCore/runtime/temporal/core/CalendarICUBridge.cpp
    M Source/WTF/wtf/glib/SocketConnection.cpp
    M Source/WTF/wtf/text/CString.h
    M Source/WebCore/Modules/webauthn/fido/Pin.cpp
    M Source/WebCore/Modules/webauthn/fido/Pin.h
    M Source/WebCore/Modules/websockets/WebSocketHandshake.cpp
    M Source/WebCore/Modules/websockets/WebSocketHandshake.h
    M Source/WebCore/contentextensions/ContentExtensionActions.cpp
    M Source/WebCore/contentextensions/DFABytecodeInterpreter.cpp
    M Source/WebCore/fileapi/Blob.cpp
    M Source/WebCore/fileapi/Blob.h
    M Source/WebCore/platform/graphics/cocoa/CMUtilities.h
    M Source/WebCore/platform/graphics/cocoa/CMUtilities.mm
    M Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp
    M 
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.mm
    M Source/WebCore/platform/network/FormDataBuilder.cpp
    M Source/WebCore/platform/network/FormDataBuilder.h
    M Source/WebCore/platform/sql/SQLiteDatabase.cpp
    M Source/WebCore/platform/sql/SQLiteDatabase.h
    M Source/WebCore/platform/sql/SQLiteExtras.h
    M Source/WebCore/platform/text/LocaleICU.cpp
    M Source/WebCore/platform/text/LocaleICU.h
    M Source/WebCore/xml/parser/XMLDocumentParser.h
    M Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp
    M Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp
    M Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.h
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.h
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm
    M Source/WebKit/Platform/IPC/DaemonConnection.h
    M Source/WebKit/Platform/IPC/cocoa/DaemonConnectionCocoa.mm
    M Source/WebKit/Shared/Cocoa/SandboxInitialiationParametersCocoa.mm
    M 
Source/WebKit/Shared/Extensions/WebExtensionRegisteredScriptsSQLiteStore.cpp
    M Source/WebKit/Shared/Extensions/WebExtensionSQLiteDatabase.cpp
    M Source/WebKit/Shared/Extensions/WebExtensionSQLiteDatabase.h
    M Source/WebKit/Shared/Extensions/WebExtensionSQLiteStatement.cpp
    M Source/WebKit/Shared/Extensions/WebExtensionSQLiteStore.cpp
    M Source/WebKit/Shared/Extensions/WebExtensionSQLiteStore.h
    M Source/WebKit/Shared/SandboxInitializationParameters.h
    M Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm
    M Source/WebKit/UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp
    M 
Source/WebKit/UIProcess/Extensions/WebExtensionDeclarativeNetRequestSQLiteStore.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionStorageSQLiteStore.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKitLegacy/WebCoreSupport/SocketStreamHandle.cpp
    M Source/WebKitLegacy/WebCoreSupport/SocketStreamHandle.h
    M Tools/TestWebKitAPI/Tests/WTF/CString.cpp
    M Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopierTests.cpp
    M Tools/TestWebKitAPI/Tests/WTF/SHA1.cpp
    M Tools/TestWebKitAPI/Tests/WTF/Vector.cpp
    M Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/CryptoDigest.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp
    M 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitNetworkSession.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/wpe/TestWebViewEditor.cpp

  Log Message:
  -----------
  Make CString's raw-byte constructors reachable only through 
CStringWithEncoding on Cocoa
https://bugs.webkit.org/show_bug.cgi?id=324955

Reviewed by Mike Wyrzykowski.

CString(std::span<const char>) joins the protected constructors: a span of 
bytes says
nothing about what encoding they are in, and the encoding-erased base has no 
way to name
one. CString(const char*) joins them too, but only where every producer has been
migrated, so a platform check keeps it public for the GLib-based, curl and 
Windows ports.
A FIXME marks that check for removal.

buffer() and CString(CStringBuffer*) are deleted rather than protected, which 
closes the
remaining way to take the storage out of a CString and build a new one from it. 
Their only
in-tree user was CStringWithEncoding::newUninitialized(), which round-tripped 
through the
raw buffer pointer and now moves the base CString instead; a protected member 
cannot be
reached through a base-typed object anyway. RemoteInspectorProtocolHandler was 
the one
caller outside WTF: it leaked a CStringBuffer ref into GBytes to keep the 
target-list page
alive, and now copies it with g_bytes_new(), as the rest of the GTK port does 
for text.

The Cocoa producers and holders are typed accordingly, and the functions among 
them that
took or returned a const char* while every caller already held a typed string 
now take the
typed string: Profiler::Database::save(), registerToSaveAtExit(), setPrinter(),
registerLabel(), SocketStreamHandle::sendHandshake(), sqliteBindText(),
setNWParametersApplicationIdentifiers(), FormDataBuilder's mime type and form 
data,
Blob::isNormalizedContentType(), XMLParserContext::createMemoryParser(),
pin::TokenRequest::tryCreate() and LocaleICU. legacyCStringPointer() moves 
inward to the
ICU, libxml2, XPC, SQLite and sandbox calls that actually need a pointer.

toCMSampleBuffer() reports its errors as ASCIILiteral rather than a CString: 
they are all
literals, so this drops the allocation and the strlen.

* Source/JavaScriptCore/API/ObjcRuntimeExtras.h:
* Source/JavaScriptCore/assembler/Printer.cpp:
(JSC::Printer::setPrinter):
* Source/JavaScriptCore/assembler/Printer.h:
* Source/JavaScriptCore/b3/air/testair.cpp:
* Source/JavaScriptCore/disassembler/Disassembler.cpp:
(JSC::registerLabel):
(JSC::labelFor):
* Source/JavaScriptCore/disassembler/Disassembler.h:
* Source/JavaScriptCore/jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
(dumpException):
(runInteractive):
(runJSC):
* Source/JavaScriptCore/profiler/ProfilerDatabase.cpp:
(JSC::Profiler::Database::save const):
(JSC::Profiler::Database::registerToSaveAtExit):
(JSC::Profiler::Database::performAtExitSave const):
* Source/JavaScriptCore/profiler/ProfilerDatabase.h:
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::VM):
* Source/JavaScriptCore/runtime/temporal/core/CalendarICUBridge.cpp:
(JSC::TemporalCore::buildICULocale):
(JSC::TemporalCore::buildCalendarTemplate):
* Source/WTF/wtf/glib/SocketConnection.cpp:
(WTF::SocketConnection::readMessage):
* Source/WTF/wtf/text/CString.h:
(WTF::CString::CString):
* Source/WebCore/Modules/webauthn/fido/Pin.cpp:
(fido::pin::validateAndConvertToUTF8):
(fido::pin::TokenRequest::tryCreate):
(fido::pin::SetPinRequest::tryCreate):
* Source/WebCore/Modules/webauthn/fido/Pin.h:
* Source/WebCore/Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeMessage const):
* Source/WebCore/Modules/websockets/WebSocketHandshake.h:
* Source/WebCore/contentextensions/ContentExtensionActions.cpp:
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::serialize 
const):
* Source/WebCore/contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
* Source/WebCore/fileapi/Blob.cpp:
(WebCore::Blob::isNormalizedContentType):
* Source/WebCore/fileapi/Blob.h:
* Source/WebCore/platform/graphics/cocoa/CMUtilities.h:
* Source/WebCore/platform/graphics/cocoa/CMUtilities.mm:
(WebCore::toCMSampleBuffer):
* Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::returnSamples):
* Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::getShaderLog):
(WebCore::getProgramLog):
(WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
* 
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.mm:
(WebCore::MediaRecorderPrivateWriterAVFObjC::writeFrame):
* Source/WebCore/platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addContentTypeToMultiPartHeader):
(WebCore::FormDataBuilder::encodeStringAsFormData):
* Source/WebCore/platform/network/FormDataBuilder.h:
* Source/WebCore/platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::lastErrorMsg):
* Source/WebCore/platform/sql/SQLiteDatabase.h:
* Source/WebCore/platform/sql/SQLiteExtras.h:
(WebCore::sqliteBindText):
* Source/WebCore/platform/text/LocaleICU.cpp:
(WebCore::Locale::create):
(WebCore::LocaleICU::LocaleICU):
(WebCore::LocaleICU::defaultWritingDirection const):
(WebCore::LocaleICU::initializeLocaleData):
(WebCore::LocaleICU::openDateFormat const):
(WebCore::getFormatForSkeleton):
* Source/WebCore/platform/text/LocaleICU.h:
* Source/WebCore/xml/parser/XMLDocumentParser.h:
* Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLParserContext::createMemoryParser):
(WebCore::XMLDocumentParser::initializeParserContext):
* Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp:
(WebKit::WebPushD::Connection::create):
(WebKit::WebPushD::Connection::Connection):
* Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.h:
* 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp:
(WebKit::PCM::Connection::create):
(WebKit::PCM::Connection::Connection):
* 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.h:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm:
(WebKit::setNWParametersApplicationIdentifiers):
* Source/WebKit/Platform/IPC/DaemonConnection.h:
(WebKit::Daemon::ConnectionToMachService::ConnectionToMachService):
* Source/WebKit/Platform/IPC/cocoa/DaemonConnectionCocoa.mm:
(WebKit::Daemon::logMachServiceInterrupted):
(WebKit::Daemon::ConnectionToMachService<Traits>::initializeConnectionIfNeeded 
const):
* Source/WebKit/Shared/Cocoa/SandboxInitialiationParametersCocoa.mm:
(WebKit::SandboxInitializationParameters::appendPathInternal):
(WebKit::SandboxInitializationParameters::addParameter):
(WebKit:: const):
(WebKit::SandboxInitializationParameters::value const):
* Source/WebKit/Shared/Extensions/WebExtensionRegisteredScriptsSQLiteStore.cpp:
(WebKit::WebExtensionRegisteredScriptsSQLiteStore::createFreshDatabaseSchema):
(WebKit::WebExtensionRegisteredScriptsSQLiteStore::resetDatabaseSchema):
* Source/WebKit/Shared/Extensions/WebExtensionSQLiteDatabase.cpp:
(WebExtensionSQLiteDatabase::close):
* Source/WebKit/Shared/Extensions/WebExtensionSQLiteDatabase.h:
* Source/WebKit/Shared/Extensions/WebExtensionSQLiteStatement.cpp:
(WebKit::WebExtensionSQLiteStatement::reset):
(WebKit::WebExtensionSQLiteStatement::invalidate):
(WebKit::WebExtensionSQLiteStatement::bind):
* Source/WebKit/Shared/Extensions/WebExtensionSQLiteStore.cpp:
(WebKit::WebExtensionSQLiteStore::vacuum):
(WebKit::WebExtensionSQLiteStore::setDatabaseSchemaVersion):
(WebKit::WebExtensionSQLiteStore::createSavepoint):
(WebKit::WebExtensionSQLiteStore::commitSavepoint):
(WebKit::WebExtensionSQLiteStore::rollbackToSavepoint):
* Source/WebKit/Shared/Extensions/WebExtensionSQLiteStore.h:
(WebKit::WebExtensionSQLiteStore::lastErrorMessage): Deleted.
* Source/WebKit/Shared/SandboxInitializationParameters.h:
* Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::populateSandboxInitializationParameters):
(WebKit::AuxiliaryProcess::initializeSandbox):
* Source/WebKit/UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
(WebKit::RemoteInspectorProtocolHandler::handleRequest):
* 
Source/WebKit/UIProcess/Extensions/WebExtensionDeclarativeNetRequestSQLiteStore.cpp:
(WebKit::WebExtensionDeclarativeNetRequestSQLiteStore::createFreshDatabaseSchema):
(WebKit::WebExtensionDeclarativeNetRequestSQLiteStore::resetDatabaseSchema):
* Source/WebKit/UIProcess/Extensions/WebExtensionStorageSQLiteStore.cpp:
(WebKit::WebExtensionStorageSQLiteStore::createFreshDatabaseSchema):
(WebKit::WebExtensionStorageSQLiteStore::resetDatabaseSchema):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadServiceWorker):
* Source/WebKitLegacy/WebCoreSupport/SocketStreamHandle.cpp:
(WebCore::SocketStreamHandle::sendHandshake):
* Source/WebKitLegacy/WebCoreSupport/SocketStreamHandle.h:
* Tools/TestWebKitAPI/Tests/WTF/CString.cpp:
(TEST(WTF, CStringNullStringConstructor)):
(TEST(WTF, CStringEmptyEmptyConstructor)):
(TEST(WTF, CStringEmptyRegularConstructor)):
(TEST(WTF, CStringOneByte)):
(TEST(WTF, CStringZeroTerminated)):
(TEST(WTF, CStringLegacyCStringPointer)):
(TEST(WTF, CStringComparison)):
(requires):
(TEST(WTF, CStringWithEncodingHashing)):
* Tools/TestWebKitAPI/Tests/WTF/CrossThreadCopierTests.cpp:
(TestWebKitAPI::TEST(WTF_CrossThreadCopier, UncheckedKeyHashMap)):
(TestWebKitAPI::TEST(WTF_CrossThreadCopier, HashMap)):
(TestWebKitAPI::TEST(WTF_CrossThreadCopier, HashSet)):
* Tools/TestWebKitAPI/Tests/WTF/SHA1.cpp:
(TestWebKitAPI::expectSHA1):
(TestWebKitAPI::TEST(WTF_SHA1, Computation)):
* Tools/TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST(WTF_Vector, RemoveAll)):
* Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp:
(TestWebKitAPI::TEST(WTF, StringASCII)):
* Tools/TestWebKitAPI/Tests/WebCore/CryptoDigest.cpp:
(TestWebKitAPI::toHex):
(TestWebKitAPI::expect):
(TestWebKitAPI::expectSHA1):
(TestWebKitAPI::expectSHA256):
(TestWebKitAPI::expectSHA384):
(TestWebKitAPI::expectSHA512):
(TestWebKitAPI::TEST(CryptoDigest, SHA1Computation)):
(TestWebKitAPI::TEST(CryptoDigest, SHA256Computation)):
(TestWebKitAPI::TEST(CryptoDigest, SHA384Computation)):
(TestWebKitAPI::TEST(CryptoDigest, SHA512Computation)):
* Tools/TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp:
(TestWebKitAPI::TEST(CtapPinTest, TestValidateAndConvertToUTF8)):
(TestWebKitAPI::TEST(CtapPinTest, TestTokenRequest)):
(TestWebKitAPI::TEST(CtapPinTest, TestTokenRequestProtocol2)):
* Tools/TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp:
(TestWebKitAPI::allPositionTypeFailures):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitNetworkSession.cpp:
(ProxyTest::loadURIAndGetMainResourceData):
(testNetworkSessionProxySettings):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitSettings.cpp:
(convertWebViewMainResourceDataToUTF8CString):
(assertThatUserAgentIsSentInHeaders):
(convertWebViewMainResourceDataToCString): Deleted.
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/glib/TestWebKitWebContext.cpp:
(ProxyTest::loadURIAndGetMainResourceData):
(testWebContextProxySettings):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/wpe/TestWebViewEditor.cpp:
(EditorKeyBindingTest::copyWithKeyStroke):
(testEditorCopyKeyBindingNonEditable):
(testEditorCopyKeyBindingEditable):

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



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

Reply via email to