Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4b3653d2ed3c8e5b98dd3f752fd4a305d4756b20
https://github.com/WebKit/WebKit/commit/4b3653d2ed3c8e5b98dd3f752fd4a305d4756b20
Author: Chris Dumez <[email protected]>
Date: 2026-09-28 (Mon, 28 Sep 2026)
Changed paths:
M Source/JavaScriptCore/API/JSScriptRef.cpp
M Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp
M Source/JavaScriptCore/disassembler/CapstoneDisassembler.cpp
M Source/JavaScriptCore/disassembler/X86Disassembler.cpp
M Source/JavaScriptCore/jsc.cpp
M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
M Source/JavaScriptCore/wasm/WasmOMGPlan.cpp
M Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp
M Source/WebCore/Modules/webdatabase/Database.cpp
M Source/WebCore/Modules/webdatabase/SQLStatement.cpp
M Source/WebCore/history/BackForwardCache.cpp
M Source/WebCore/loader/ApplicationManifestLoader.cpp
M Source/WebCore/loader/ContentFilter.cpp
M Source/WebCore/loader/HistoryController.cpp
M Source/WebCore/loader/icon/IconLoader.cpp
M Source/WebCore/page/LocalFrame.cpp
M Source/WebCore/page/WebKitNamespace.cpp
M Source/WebCore/page/ios/FrameIOS.mm
M Source/WebCore/platform/audio/mac/AudioSessionMac.mm
M Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm
M Source/WebCore/platform/encryptedmedia/CDMProxy.cpp
M
Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp
M
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm
M Source/WebCore/platform/network/MIMEHeader.cpp
M Source/WebCore/platform/network/ParsedContentType.cpp
M Source/WebCore/platform/network/curl/CookieJarDB.cpp
M Source/WebCore/platform/sql/SQLiteDatabase.cpp
M Source/WebCore/platform/win/SearchPopupMenuDB.cpp
M Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
M Source/WebKit/NetworkProcess/glib/NetworkMDNSRegisterGLib.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
M Source/WebKit/webpushd/PushService.mm
M Source/WebKit/webpushd/WebPushDaemon.mm
M Source/WebKitLegacy/Storage/StorageTracker.cpp
Log Message:
-----------
Stop converting strings to lossy ASCII for logging
https://bugs.webkit.org/show_bug.cgi?id=325477
Reviewed by Darin Adler.
Many logging call sites pass String::ascii().data() because
ASCIICString::data() is already a
const char*. ascii() replaces every non-ASCII character with '?', so URLs,
origins, file paths
and database names containing one were logged garbled.
The LOG, RELEASE_LOG and signpost macro families convert their arguments with
logPrintfType(),
and SAFE_PRINTF(), SAFE_FPRINTF() and SAFE_DATALOGF() with safePrintfType(), so
these call sites
can pass String::utf8() directly. PrintStream prints a String natively, so
dataLog() and
PrintStream::print() callers pass the String itself.
NetworkCache.cpp logged String::latin1().data() with %s. Calling data()
bypasses the deleted
safePrintfType(const Latin1CString&), and the compiler does not flag an
unsigned char* passed to
%s. The pointer cannot be rejected by type either: Latin1Character is unsigned
char, the same
type as the uint8_t* pointers logged with %p. Log the URL as UTF-8 instead.
FrameIOS.mm kept a pointer into a temporary ASCIICString beyond the end of the
statement that
created it. That code only builds with RECT_LOGGING, but it now passes the
string to
SAFE_PRINTF() directly.
* Source/JavaScriptCore/API/JSScriptRef.cpp:
* Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp:
(JSC::tryToDisassemble):
* Source/JavaScriptCore/disassembler/CapstoneDisassembler.cpp:
(JSC::tryToDisassemble):
* Source/JavaScriptCore/disassembler/X86Disassembler.cpp:
(JSC::tryToDisassemble):
* Source/JavaScriptCore/jsc.cpp:
(fillBufferWithContentsOfFile):
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::dumpDisassembly):
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):
* Source/JavaScriptCore/wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::dumpDisassembly):
* Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp:
(JSC::Wasm::OSREntryPlan::dumpDisassembly):
* Source/WebCore/Modules/webdatabase/Database.cpp:
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::getVersionFromDatabase):
(WebCore::Database::setVersionInDatabase):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::performGetTableNames):
* Source/WebCore/Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
* Source/WebCore/history/BackForwardCache.cpp:
(WebCore::BackForwardCache::get):
* Source/WebCore/loader/ApplicationManifestLoader.cpp:
(WebCore::ApplicationManifestLoader::startLoading):
* Source/WebCore/loader/ContentFilter.cpp:
(WebCore::ContentFilter::continueAfterWillSendRequest):
(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::continueAfterResponseReceived):
(WebCore::ContentFilter::continueAfterDataReceived):
(WebCore::ContentFilter::continueAfterNotifyFinished):
(WebCore::ContentFilter::didDecide):
* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::updateForStandardLoad):
(WebCore::HistoryController::pushState):
(WebCore::HistoryController::updateBackForwardListForReplaceState):
* Source/WebCore/loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
(WebCore::IconLoader::notifyFinished):
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::injectUserScriptImmediately):
* Source/WebCore/page/WebKitNamespace.cpp:
(WebCore::WebKitNamespace::evaluateScript):
* Source/WebCore/page/ios/FrameIOS.mm:
(WebCore::LocalFrame::renderRectForPoint const):
* Source/WebCore/platform/audio/mac/AudioSessionMac.mm:
(WebCore::AudioSessionMac::setCategory):
* Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
(WebCore::ContentFilterUnblockHandler::canHandleRequest const):
* Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:
(WebCore::CDMProxy::tryWaitForKeyHandle const):
(WebCore::CDMProxy::getOrWaitForKeyHandle const):
*
Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
(WebCore::WebCoreAVCFResourceLoader::startLoading):
* Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceIDs):
* Source/WebCore/platform/network/MIMEHeader.cpp:
(WebCore::retrieveKeyValuePairs):
* Source/WebCore/platform/network/ParsedContentType.cpp:
(WebCore::ParsedContentType::parseContentType):
* Source/WebCore/platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::checkDatabaseValidity):
* Source/WebCore/platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::clearAllTables):
* Source/WebCore/platform/win/SearchPopupMenuDB.cpp:
(WebCore::SearchPopupMenuDB::checkDatabaseValidity):
* Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::completeRetrieve):
(WebKit::NetworkCache::Cache::retrieveCompressionDictionaryBestMatch):
* Source/WebKit/NetworkProcess/glib/NetworkMDNSRegisterGLib.cpp:
(WebKit::NetworkMDNSRegister::registerMDNSName):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::performEvictionForOrigin):
(WebKit::NetworkStorageManager::donePrepareForTimeBasedEviction):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::didGeneratePageLoadTiming):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::logFrameTreeHelper):
(WebKit::WebPageProxy::logFrameTree):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::scheduleUpdateLocked):
(WebKit::ThreadedCompositor::frameComplete):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::clearContentWorld):
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityFocusedUIElement):
* Source/WebKit/webpushd/PushService.mm:
(WebPushD::PushService::subscribe):
(WebPushD::PushService::removeRecordsForBundleIdentifierAndDataStore):
* Source/WebKit/webpushd/WebPushDaemon.mm:
(WebPushD::WebPushDaemon::connectionEventHandler):
(WebPushD::WebPushDaemon::updateSubscriptionSetState):
(WebPushD::WebPushDaemon::setPushAndNotificationsEnabledForOrigin):
(WebPushD::WebPushDaemon::subscribeToPushService):
(WebPushD::WebPushDaemon::unsubscribeFromPushService):
(WebPushD::WebPushDaemon::getPushSubscription):
(WebPushD::WebPushDaemon::incrementSilentPushCount):
(WebPushD::WebPushDaemon::removePushSubscriptionsForOrigin):
(WebPushD::WebPushDaemon::showNotification):
(WebPushD::WebPushDaemon::getNotifications):
(WebPushD::WebPushDaemon::cancelNotification):
(WebPushD::WebPushDaemon::getPushPermissionState):
(WebPushD::WebPushDaemon::requestPushPermission):
(WebPushD::WebPushDaemon::setAppBadge):
* Source/WebKitLegacy/Storage/StorageTracker.cpp:
(WebKit::StorageTracker::openTrackerDatabase):
(WebKit::StorageTracker::syncSetOriginDetails):
(WebKit::StorageTracker::syncDeleteOrigin):
(WebKit::StorageTracker::databasePathForOrigin):
Canonical link: https://commits.webkit.org/322114@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications