[webkit-changes] [WebKit/WebKit] b5cddd: Make CString explicit about its lack of encoding s...
geoffreygaren
noreply at github.com
Fri Feb 7 10:37:00 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b5cddddc947c75a0675855fd6f322dd21e9320ea
https://github.com/WebKit/WebKit/commit/b5cddddc947c75a0675855fd6f322dd21e9320ea
Author: Geoffrey Garen <ggaren at apple.com>
Date: 2025-02-07 (Fri, 07 Feb 2025)
Changed paths:
M Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocket.cpp
M Source/JavaScriptCore/jsc.cpp
M Source/JavaScriptCore/runtime/JSDateMath.cpp
M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
M Source/WTF/wtf/SHA1.h
M Source/WTF/wtf/URLParser.cpp
M Source/WTF/wtf/cf/URLCF.cpp
M Source/WTF/wtf/persistence/PersistentCoders.cpp
M Source/WTF/wtf/text/Base64.h
M Source/WTF/wtf/text/CString.cpp
M Source/WTF/wtf/text/CString.h
M Source/WebCore/Modules/async-clipboard/ClipboardItem.cpp
M Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.cpp
M Source/WebCore/Modules/mediastream/RTCDataChannelRemoteHandler.cpp
M Source/WebCore/Modules/webauthn/WebAuthenticationUtils.cpp
M Source/WebCore/Modules/webauthn/fido/Pin.cpp
M Source/WebCore/Modules/websockets/WebSocket.cpp
M Source/WebCore/Modules/websockets/WebSocketExtensionDispatcher.cpp
M Source/WebCore/Modules/websockets/WebSocketExtensionParser.h
M Source/WebCore/bindings/js/GCController.cpp
M Source/WebCore/contentextensions/DFABytecodeInterpreter.cpp
M Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm
M Source/WebCore/loader/DocumentWriter.cpp
M Source/WebCore/page/Base64Utilities.cpp
M Source/WebCore/page/cocoa/ResourceUsageOverlayCocoa.mm
M Source/WebCore/page/csp/ContentSecurityPolicy.cpp
M Source/WebCore/platform/graphics/GraphicsLayer.cpp
M Source/WebCore/platform/network/CredentialBase.cpp
M Source/WebCore/platform/network/FormData.cpp
M Source/WebCore/platform/network/HTTPParsers.cpp
M Source/WebCore/platform/network/cf/ResourceRequestCFNet.h
M Source/WebCore/platform/network/curl/CookieUtil.cpp
M Source/WebCore/platform/sql/SQLiteFileSystem.cpp
M Source/WebCore/storage/StorageUtilities.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/ServiceWorkerInternals.cpp
M Source/WebCore/workers/service/server/SWScriptStorage.cpp
M Source/WebDriver/socket/HTTPServerSocket.cpp
M Source/WebDriver/socket/SessionHostSocket.cpp
M Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm
M Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
M Source/WebKit/NetworkProcess/cache/NetworkCacheBlobStorage.cpp
M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm
M Source/WebKit/NetworkProcess/storage/CacheStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/Shared/API/c/cf/WKURLCF.mm
M Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm
M Source/WebKit/Shared/WTFArgumentCoders.serialization.in
M Source/WebKit/Shared/WebMemorySampler.cpp
M Source/WebKit/UIProcess/Inspector/socket/RemoteInspectorClient.cpp
M Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp
M Source/WebKit/WebProcess/Network/WebSocketChannel.cpp
M Source/WebKit/WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/webpushd/WebPushDaemon.mm
M Source/WebKitLegacy/WebCoreSupport/SocketStreamHandle.cpp
M Source/WebKitLegacy/WebCoreSupport/WebSocketChannel.cpp
M Tools/TestWebKitAPI/Tests/WebCore/CryptoDigest.cpp
M Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp
Log Message:
-----------
Make CString explicit about its lack of encoding safety
https://bugs.webkit.org/show_bug.cgi?id=287131
rdar://144279558
Reviewed by Darin Adler and Chris Dumez.
In a recent patch I made some mistakes with CString encoding.
This is a follow-up to clarify some details that confused me:
1. Added documentation explaining that CString has agnostic encoding
2. Changed the return type of CString::span from LChar to char. LChar indicates
Latin1 encoding, but CString offers no such guarantee.
This created a long tail of new explicit casts, and some FIXMEs about some
apparent encoding conflicts in the tree.
Chris is planning to add CString encoding safety in a future patch. In theory,
these explicit casts all facilitate that effort.
* Source/JavaScriptCore/jsc.cpp:(JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/JSDateMath.cpp:
(JSC::DateCache::parseDate):
* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/WTF/wtf/SHA1.h:
(WTF::SHA1::addBytes):
* Source/WTF/wtf/URLParser.cpp:
(WTF::URLParser::formURLDecode):
* Source/WTF/wtf/cf/URLCF.cpp:
(WTF::URL::createCFURL const):
* Source/WTF/wtf/persistence/PersistentCoders.cpp:
(WTF::Persistence::Coder<CString>::encodeForPersistence):
* Source/WTF/wtf/text/Base64.h:
(WTF::base64EncodeToStringReturnNullIfOverflow):
* Source/WTF/wtf/text/CString.cpp:
(WTF::operator==):
* Source/WTF/wtf/text/CString.h:
(WTF::CString::span const):
* Source/WebCore/Modules/async-clipboard/ClipboardItem.cpp:
(WebCore::ClipboardItem::blobFromString):
* Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.cpp:
(WebCore::fetchDataBytesForWrite):
* Source/WebCore/Modules/mediastream/RTCDataChannelRemoteHandler.cpp:
(WebCore::RTCDataChannelRemoteHandler::sendStringData):
* Source/WebCore/Modules/webauthn/WebAuthenticationUtils.cpp:
(WebCore::produceRpIdHash):
(WebCore::buildClientDataJson):
* Source/WebCore/Modules/webauthn/fido/Pin.cpp:
(fido::pin::TokenRequest::tryCreate):
* Source/WebCore/Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveMessage):
* Source/WebCore/Modules/websockets/WebSocketExtensionDispatcher.cpp:
(WebCore::WebSocketExtensionDispatcher::processHeaderValue):
* Source/WebCore/Modules/websockets/WebSocketExtensionParser.h:
* Source/WebCore/bindings/js/GCController.cpp:
(WebCore::GCController::dumpHeapForVM):
* Source/WebCore/contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
* Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::sanitizeMarkupWithArchive):
* Source/WebCore/loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocumentWithResultOfExecutingJavascriptURL):
* Source/WebCore/page/Base64Utilities.cpp:
(WebCore::Base64Utilities::btoa):
* Source/WebCore/page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::showText):
* Source/WebCore/page/csp/ContentSecurityPolicy.cpp:
(WebCore::generateHashesForContent):
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(showGraphicsLayerTree):
* Source/WebCore/platform/network/CredentialBase.cpp:
(WebCore::CredentialBase::serializationForBasicAuthorizationHeader const):
* Source/WebCore/platform/network/FormData.cpp:
(WebCore::FormData::create):
* Source/WebCore/platform/network/HTTPParsers.cpp:
(WebCore::parseHTTPDate):
* Source/WebCore/platform/network/cf/ResourceRequestCFNet.h:
(WebCore::httpHeaderValueUsingSuitableEncoding):
* Source/WebCore/platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::computeHashForFileName):
* Source/WebCore/storage/StorageUtilities.cpp:
(WebCore::StorageUtilities::encodeSecurityOriginForFileName):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::createTemporaryFile):
* Source/WebCore/testing/ServiceWorkerInternals.cpp:
(WebCore::ServiceWorkerInternals::schedulePushEvent):
* Source/WebCore/workers/service/server/SWScriptStorage.cpp:
(WebCore::SWScriptStorage::sha2Hash const):
* Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:
(WebKit::PCM::NetworkLoader::start):
* Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::dumpContentsToFile):
* Source/WebKit/NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::blobPathForHash const):
* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::close):
* Source/WebKit/NetworkProcess/storage/CacheStorageManager.cpp:
(WebKit::writeSizeFile):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::encode):
* Source/WebKit/Shared/API/c/cf/WKURLCF.mm:
(WKURLCopyCFURL):
* Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtensionImpl::getSerializedFormat):
* Source/WebKit/Shared/WTFArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::writeHeaders):
(WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
* Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::createMessageQueue):
* Source/WebKit/WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveStringData):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getAccessibilityTreeData):
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::WebPushDaemon::injectPushMessageForTesting):
(WebPushD::WebPushDaemon::injectEncryptedPushMessageForTesting):
* Source/WebKitLegacy/WebCoreSupport/SocketStreamHandle.cpp:
(WebCore::SocketStreamHandle::sendHandshake):
* Source/WebKitLegacy/WebCoreSupport/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
* Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
(TestWebKitAPI::TEST_F(FileMonitorTest, DetectDeleteButNotSubsequentChange)):
Canonical link: https://commits.webkit.org/290024@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list