Branch: refs/heads/webkitglib/2.50
Home: https://github.com/WebKit/WebKit
Commit: e3d43c3b6d3a8aad576be38409469672bb79a1f5
https://github.com/WebKit/WebKit/commit/e3d43c3b6d3a8aad576be38409469672bb79a1f5
Author: Fujii Hironori <[email protected]>
Date: 2026-01-14 (Wed, 14 Jan 2026)
Changed paths:
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/Modules/mediasource/MediaSource.cpp
Log Message:
-----------
Cherry-pick 305103@main (7df9b18a84da).
https://bugs.webkit.org/show_bug.cgi?id=304834
REGRESSION(274853@main): nullopt dereference of m_seekTargetPromise in
MediaSource::waitForTarget for
imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html
https://bugs.webkit.org/show_bug.cgi?id=304834
Reviewed by Alicia Boya Garcia.
In MediaSource::waitForTarget, m_seekTargetPromise could be nullopt. Get the
promise of it earlier immediately after it is emplaced. This change fixes
the
crash bug, but not fixes the test failure yet.
Tests:
imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::waitForTarget):
Canonical link: https://commits.webkit.org/305103@main
Canonical link: https://commits.webkit.org/298234.380@webkitglib/2.50
Commit: e27e5aee658e44bf700601519fe830d4c0d5393e
https://github.com/WebKit/WebKit/commit/e27e5aee658e44bf700601519fe830d4c0d5393e
Author: Chris Dumez <[email protected]>
Date: 2026-01-14 (Wed, 14 Jan 2026)
Changed paths:
M Source/WTF/wtf/SortedArrayMap.h
M Tools/TestWebKitAPI/Tests/WTF/SortedArrayMap.cpp
Log Message:
-----------
Cherry-pick 305019@main (c52e971ff654).
https://bugs.webkit.org/show_bug.cgi?id=304797
Fix subtle bug in SortedArrayMap's lessThanASCIICaseFolding()
https://bugs.webkit.org/show_bug.cgi?id=304797
Reviewed by Anne van Kesteren and Darin Adler.
Fix subtle bug in SortedArrayMap's lessThanASCIICaseFolding() where it would
treat "ab" as greater than "abc", even though it is shorter.
Test: Tools/TestWebKitAPI/Tests/WTF/SortedArrayMap.cpp
* Source/WTF/wtf/SortedArrayMap.h:
(WTF::lessThanASCIICaseFolding):
* Tools/TestWebKitAPI/Tests/WTF/SortedArrayMap.cpp:
(TEST(WTF, LessThanASCIICaseFoldingDirectComparison)):
Canonical link: https://commits.webkit.org/305019@main
Canonical link: https://commits.webkit.org/298234.381@webkitglib/2.50
Commit: 0d7a36e436922c51e771737de5049bf5af39f789
https://github.com/WebKit/WebKit/commit/0d7a36e436922c51e771737de5049bf5af39f789
Author: Chris Dumez <[email protected]>
Date: 2026-01-14 (Wed, 14 Jan 2026)
Changed paths:
M Source/WTF/wtf/FastMalloc.h
M Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp
M Source/WebCore/Modules/fetch/FetchBodyConsumer.h
M Source/WebCore/Modules/fetch/FetchBodyOwner.cpp
M Source/WebCore/Modules/fetch/FetchBodyOwner.h
M Source/WebCore/Modules/fetch/FetchLoader.cpp
M Source/WebCore/Modules/fetch/FetchLoader.h
M Source/WebCore/Modules/fetch/FetchLoaderClient.h
M Source/WebCore/Modules/fetch/FetchResponse.cpp
M Source/WebCore/Modules/fetch/FetchResponse.h
M Source/WebCore/Modules/fetch/FormDataConsumer.cpp
M Source/WebCore/Modules/fetch/FormDataConsumer.h
M Source/WebCore/fileapi/Blob.cpp
M Source/WebCore/fileapi/Blob.h
M Source/WebCore/fileapi/BlobLoader.h
M Source/WebCore/fileapi/NetworkSendQueue.cpp
M Source/WebCore/fileapi/NetworkSendQueue.h
M Source/WebCore/page/ShareDataReader.cpp
M Source/WebCore/page/ShareDataReader.h
M Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp
M Source/WebCore/workers/DedicatedWorkerThread.cpp
M Source/WebCore/workers/DedicatedWorkerThread.h
M Source/WebCore/workers/service/context/ServiceWorkerFetch.h
M Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp
M Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h
M Source/WebKit/NetworkProcess/Downloads/PendingDownload.h
M Source/WebKit/NetworkProcess/NetworkLoad.cpp
M Source/WebKit/NetworkProcess/NetworkLoad.h
M Source/WebKit/NetworkProcess/NetworkLoadClient.h
M Source/WebKit/NetworkProcess/NetworkResourceLoader.h
M Source/WebKit/NetworkProcess/NetworkSession.cpp
M Source/WebKit/NetworkProcess/NetworkSession.h
M Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp
M Source/WebKit/NetworkProcess/NetworkSocketChannel.h
M Source/WebKit/NetworkProcess/PreconnectTask.h
M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp
M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h
M
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp
M
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h
M
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp
M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h
M Source/WebKit/NetworkProcess/WebSocketTask.h
M Source/WebKit/NetworkProcess/cache/AsyncRevalidation.cpp
M Source/WebKit/NetworkProcess/cache/AsyncRevalidation.h
M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp
M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h
M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp
M Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h
M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm
M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp
M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h
M Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp
M Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h
M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp
M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h
M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp
M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.h
M Source/WebKit/Platform/IPC/StreamClientConnection.cpp
M Source/WebKit/Platform/IPC/StreamClientConnection.h
M Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp
M Source/WebKit/UIProcess/Launcher/ProcessLauncher.h
M Source/WebKit/UIProcess/WebProcessCache.cpp
M Source/WebKit/UIProcess/WebProcessCache.h
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp
M Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h
M Tools/TestWebKitAPI/Tests/WTF/CheckedPtr.cpp
Log Message:
-----------
Cherry-pick 299425@main (b99f8c3daae0).
https://bugs.webkit.org/show_bug.cgi?id=298180
Regression(289133@main) zeroBytes() call in
WTF_OVERRIDE_DELETE_FOR_CHECKED_PTR_IMPL is wrong
https://bugs.webkit.org/show_bug.cgi?id=298180
rdar://156300845
Reviewed by Geoffrey Garen and Darin Adler.
zeroBytes() call in WTF_OVERRIDE_DELETE_FOR_CHECKED_PTR_IMPL is wrong after
289133@main.
It now zeros out the pointer instead of the object pointed to by the
pointer.
Also fix bad use for CheckedPtr with NetworkLoadClient which was not caught
until now
due to the bug above. Instead, make NetworkLoadClient ref-counted so we can
protect
it.
Fix bad uses of CheckedPtr in a few other places as well, as found by EWS.
* Source/WTF/wtf/FastMalloc.h:
*
Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFinishLoading):
* Source/WebCore/Modules/fetch/FetchBodyConsumer.h:
* Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::stop):
(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::finishBlobLoading):
(WebCore::FetchBodyOwner::BlobLoader::create):
(WebCore::FetchBodyOwner::BlobLoader::BlobLoader):
(WebCore::FetchBodyOwner::BlobLoader::didFail):
(WebCore::FetchBodyOwner::BlobLoader::didSucceed):
(WebCore::FetchBodyOwner::BlobLoader::didReceiveData):
* Source/WebCore/Modules/fetch/FetchBodyOwner.h:
* Source/WebCore/Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::startLoadingBlobURL):
(WebCore::FetchLoader::start):
(WebCore::FetchLoader::create):
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::didReceiveResponse):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading):
(WebCore::FetchLoader::didFail):
* Source/WebCore/Modules/fetch/FetchLoader.h:
* Source/WebCore/Modules/fetch/FetchLoaderClient.h:
* Source/WebCore/Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::addAbortSteps):
(WebCore::FetchResponse::createFetchResponse):
(WebCore::FetchResponse::startLoader):
(WebCore::FetchResponse::Loader::didSucceed):
(WebCore::FetchResponse::Loader::didFail):
(WebCore::FetchResponse::Loader::create):
(WebCore::FetchResponse::Loader::didReceiveResponse):
(WebCore::FetchResponse::Loader::didReceiveData):
(WebCore::FetchResponse::Loader::start):
(WebCore::FetchResponse::consumeBodyReceivedByChunk):
(WebCore::FetchResponse::consumeBodyAsStream):
(WebCore::FetchResponse::processReceivedError):
(WebCore::FetchResponse::didSucceed):
* Source/WebCore/Modules/fetch/FetchResponse.h:
* Source/WebCore/Modules/fetch/FormDataConsumer.cpp:
(WebCore::FormDataConsumer::consumeBlob):
* Source/WebCore/Modules/fetch/FormDataConsumer.h:
* Source/WebCore/fileapi/Blob.cpp:
(WebCore::Blob::~Blob):
(WebCore::Blob::loadBlob):
* Source/WebCore/fileapi/Blob.h:
* Source/WebCore/fileapi/BlobLoader.h:
* Source/WebCore/fileapi/NetworkSendQueue.cpp:
(WebCore::NetworkSendQueue::enqueue):
(WebCore::NetworkSendQueue::processMessages):
* Source/WebCore/fileapi/NetworkSendQueue.h:
* Source/WebCore/page/ShareDataReader.cpp:
(WebCore::ShareDataReader::start):
(WebCore::ShareDataReader::didFinishLoading):
* Source/WebCore/page/ShareDataReader.h:
* Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage):
* Source/WebCore/workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::clearProxies):
* Source/WebCore/workers/DedicatedWorkerThread.h:
(WebCore::DedicatedWorkerThread::workerObjectProxy const):
* Source/WebCore/workers/service/context/ServiceWorkerFetch.h:
* Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::createBlobLoader):
* Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h:
* Source/WebKit/NetworkProcess/Downloads/PendingDownload.h:
* Source/WebKit/NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::shouldCaptureExtraNetworkLoadMetrics const):
(WebKit::NetworkLoad::isAllowedToAskUserForCredentials const):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveInformationalResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::didSendData):
(WebKit::NetworkLoad::wasBlocked):
(WebKit::NetworkLoad::cannotShowURL):
(WebKit::NetworkLoad::wasBlockedByRestrictions):
(WebKit::NetworkLoad::wasBlockedByDisabledFTP):
* Source/WebKit/NetworkProcess/NetworkLoad.h:
* Source/WebKit/NetworkProcess/NetworkLoadClient.h:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.h:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
(WebKit::NetworkSession::softUpdate):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
(WebKit::NetworkSocketChannel::~NetworkSocketChannel):
(WebKit::NetworkSocketChannel::sendString):
(WebKit::NetworkSocketChannel::sendData):
(WebKit::NetworkSocketChannel::close):
(WebKit::NetworkSocketChannel::protectedSocket):
(WebKit::NetworkSocketChannel::checkedSocket): Deleted.
* Source/WebKit/NetworkProcess/NetworkSocketChannel.h:
* Source/WebKit/NetworkProcess/PreconnectTask.h:
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::create):
(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::loadResponseFromPreloader):
(WebKit::ServiceWorkerFetchTask::protectedPreloader):
(WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):
(WebKit::ServiceWorkerFetchTask::cancelPreloadIfNecessary):
(WebKit::ServiceWorkerFetchTask::convertToDownload):
(WebKit::ServiceWorkerFetchTask::checkedPreloader): Deleted.
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
*
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:
(WebKit::ServiceWorkerNavigationPreloader::create):
(WebKit::ServiceWorkerNavigationPreloader::ServiceWorkerNavigationPreloader):
(WebKit::ServiceWorkerNavigationPreloader::start):
*
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:
*
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::create):
*
Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
* Source/WebKit/NetworkProcess/WebSocketTask.h:
* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.cpp:
(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):
* Source/WebKit/NetworkProcess/cache/AsyncRevalidation.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::create):
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::canRetrieve const):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
* Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate
URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate sessionFromTask:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate existingWebSocketTask:]):
(-[WKNetworkSessionDelegate URLSession:webSocketTask:didOpenWithProtocol:]):
(-[WKNetworkSessionDelegate
URLSession:webSocketTask:didCloseWithCode:reason:]):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::create):
(WebKit::WebSocketTask::readNextMessage):
* Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp:
(WebKit::NetworkSessionCurl::createWebSocketTask):
* Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h:
* Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp:
(WebKit::WebSocketTask::create):
(WebKit::WebSocketTask::protectedChannel const):
(WebKit::WebSocketTask::didReceiveData):
(WebKit::WebSocketTask::validateOpeningHandshake):
(WebKit::WebSocketTask::didClose):
* Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h:
* Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
* Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h:
* Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::WebSocketTask::create):
(WebKit::WebSocketTask::protectedChannel const):
(WebKit::WebSocketTask::didConnect):
(WebKit::WebSocketTask::didFail):
* Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.h:
* Source/WebKit/Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::DedicatedConnectionClient::didReceiveMessage):
(IPC::StreamClientConnection::DedicatedConnectionClient::didReceiveSyncMessage):
(IPC::StreamClientConnection::DedicatedConnectionClient::didClose):
* Source/WebKit/Platform/IPC/StreamClientConnection.h:
* Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::didFinishLaunchingProcess):
(WebKit::ProcessLauncher::checkedClient const): Deleted.
* Source/WebKit/UIProcess/Launcher/ProcessLauncher.h:
* Source/WebKit/UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::WebProcessCache):
(WebKit::WebProcessCache::ref const):
(WebKit::WebProcessCache::deref const):
(WebKit::WebProcessCache::addProcessIfPossible):
* Source/WebKit/UIProcess/WebProcessCache.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
* Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinishInternal):
(WebKit::WebServiceWorkerFetchTaskClient::BlobLoader::create):
(WebKit::WebServiceWorkerFetchTaskClient::BlobLoader::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::BlobLoader::didFail):
(WebKit::WebServiceWorkerFetchTaskClient::BlobLoader::didSucceed):
* Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
* Tools/TestWebKitAPI/Tests/WTF/CheckedPtr.cpp:
(TestWebKitAPI::CheckedObject::member const):
(TestWebKitAPI::TEST(WTF_CheckedPtr, ObjectIsNulledOut)):
Canonical link: https://commits.webkit.org/299425@main
Canonical link: https://commits.webkit.org/298234.382@webkitglib/2.50
Commit: 60bc12aca6ee4f6f89c38e898b8601c9df5c8826
https://github.com/WebKit/WebKit/commit/60bc12aca6ee4f6f89c38e898b8601c9df5c8826
Author: Tadeu Zagallo <[email protected]>
Date: 2026-01-14 (Wed, 14 Jan 2026)
Changed paths:
M Source/JavaScriptCore/API/tests/testapi.mm
M Source/JavaScriptCore/runtime/CachedTypes.cpp
Log Message:
-----------
Cherry-pick 305568@main (e0644034f46e).
https://bugs.webkit.org/show_bug.cgi?id=305335
[JSC] Loading from bytecode cache does not set threshold for jitting
https://bugs.webkit.org/show_bug.cgi?id=305335
rdar://168002124
Reviewed by Yusuke Suzuki and Justin Michaud.
When reconstructing UnlinkedCodeBlocks from the bytecode cache we go through
a different constructor in CachedTypes.cpp. That constructor doesn't need to
do most of the things that the regular constructor does, but it should set
the JIT threshold for the code block. As it is, any function loaded from the
cache will be compiled when it's first executed.
Test: Source/JavaScriptCore/API/tests/testapi.mm
* Source/JavaScriptCore/API/tests/testapi.mm:
(testBytecodeCachedFunctionsDontJITImmediately):
(testObjectiveCAPI):
* Source/JavaScriptCore/runtime/CachedTypes.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
Canonical link: https://commits.webkit.org/305568@main
Canonical link: https://commits.webkit.org/298234.383@webkitglib/2.50
Compare: https://github.com/WebKit/WebKit/compare/7b29eb303643...60bc12aca6ee
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications