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