Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a7ea27dd3bb648bfff86a210d1cd640f96f21d1c
https://github.com/WebKit/WebKit/commit/a7ea27dd3bb648bfff86a210d1cd640f96f21d1c
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M Source/JavaScriptCore/API/glib/JSCVirtualMachine.cpp
M Source/WTF/wtf/glib/ActivityObserver.h
M Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.cpp
M Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp
M
Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
M Source/WebCore/platform/graphics/skia/SkiaGPUAtlas.h
M Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferProxy.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerContentsDisplayDelegateCoordinated.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp
M Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp
M Source/WebCore/platform/gstreamer/GStreamerElementHarness.h
M Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp
M Source/WebCore/platform/image-decoders/ScalableImageDecoder.h
M Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp
M Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.h
M Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp
M Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
M Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h
M Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp
M Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h
M Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp
M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h
M Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
M Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h
M Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp
M Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp
M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp
M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLGBM.cpp
M Source/WebKit/UIProcess/glib/DisplayVBlankMonitorThreaded.cpp
M Source/WebKit/UIProcess/wpe/DisplayVBlankMonitorWPE.cpp
M Source/WebKit/UIProcess/wpe/DisplayVBlankMonitorWPE.h
M
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp
M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.h
M
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp
Log Message:
-----------
[GTK][WPE] Fix thread safety issues caught by -Wthread-safety
https://bugs.webkit.org/show_bug.cgi?id=320639
Reviewed by Adrian Perez de Castro.
Most of them are false positives that just require proper annotations,
but there are quite a few real issues too.
* Source/JavaScriptCore/API/glib/JSCVirtualMachine.cpp:
(jscVirtualMachineGetOrCreate):
* Source/WTF/wtf/glib/ActivityObserver.h:
(WTF::ActivityObserver::start):
(WTF::ActivityObserver::notify):
* Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.cpp:
(WebCore::ScrollingTreeCoordinated::applyLayerPositionsInternal):
(WebCore::traverseDescendantLayersAtPoint):
(WebCore::ScrollingTreeCoordinated::scrollingNodeForPoint):
(WebCore::ScrollingTreeCoordinated::eventListenerRegionTypesForPoint const):
* Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::notifyIsPlaying):
* Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackDataHolder::disconnect):
* Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp:
(webkitGstBufferGetVideoFrameMetadata):
(webkitGstBufferGetProcessingTime):
*
Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::startPlaybackIfHasAllTracks):
* Source/WebCore/platform/graphics/skia/SkiaGPUAtlas.h:
(WebCore::AtlasUploadCondition::wait):
* Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp:
(WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
(WebCore::BitmapTexturePool::enterLimitExceededModeIfNeeded):
(WebCore::BitmapTexturePool::exitLimitExceededModeIfNeeded):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::setPosition):
(WebCore::CoordinatedPlatformLayer::position const):
(WebCore::CoordinatedPlatformLayer::setBoundsOrigin):
(WebCore::CoordinatedPlatformLayer::boundsOrigin const):
(WebCore::CoordinatedPlatformLayer::setAnchorPoint):
(WebCore::CoordinatedPlatformLayer::anchorPoint const):
(WebCore::CoordinatedPlatformLayer::setSize):
(WebCore::CoordinatedPlatformLayer::size const):
(WebCore::CoordinatedPlatformLayer::bounds const):
(WebCore::CoordinatedPlatformLayer::setTransform):
(WebCore::CoordinatedPlatformLayer::transform const):
(WebCore::CoordinatedPlatformLayer::setChildrenTransform):
(WebCore::CoordinatedPlatformLayer::childrenTransform const):
(WebCore::CoordinatedPlatformLayer::setVisibleRect):
(WebCore::CoordinatedPlatformLayer::visibleRect const):
(WebCore::CoordinatedPlatformLayer::setTransformedVisibleRect):
(WebCore::CoordinatedPlatformLayer::setScrollingNodeID):
(WebCore::CoordinatedPlatformLayer::scrollingNodeID const):
(WebCore::CoordinatedPlatformLayer::setDrawsContent):
(WebCore::CoordinatedPlatformLayer::setMasksToBounds):
(WebCore::CoordinatedPlatformLayer::setPreserves3D):
(WebCore::CoordinatedPlatformLayer::setBackfaceVisibility):
(WebCore::CoordinatedPlatformLayer::setOpacity):
(WebCore::CoordinatedPlatformLayer::setBlendMode):
(WebCore::CoordinatedPlatformLayer::setContentsVisible):
(WebCore::CoordinatedPlatformLayer::contentsVisible const):
(WebCore::CoordinatedPlatformLayer::setContentsOpaque):
(WebCore::CoordinatedPlatformLayer::setContentsRect):
(WebCore::CoordinatedPlatformLayer::setContentsRectClipsDescendants):
(WebCore::CoordinatedPlatformLayer::setContentsClippingRect):
(WebCore::CoordinatedPlatformLayer::setContentsScale):
(WebCore::CoordinatedPlatformLayer::contentsScale const):
(WebCore::CoordinatedPlatformLayer::hasCommittedContentsBuffer const):
(WebCore::CoordinatedPlatformLayer::setContentsBuffer):
(WebCore::CoordinatedPlatformLayer::setContentsImage):
(WebCore::CoordinatedPlatformLayer::setContentsColor):
(WebCore::CoordinatedPlatformLayer::setContentsTileSize):
(WebCore::CoordinatedPlatformLayer::setContentsTilePhase):
(WebCore::CoordinatedPlatformLayer::setDirtyRegion):
(WebCore::CoordinatedPlatformLayer::addDamage):
(WebCore::CoordinatedPlatformLayer::damageWholeLayer):
(WebCore::CoordinatedPlatformLayer::setFilters):
(WebCore::CoordinatedPlatformLayer::setMask):
(WebCore::CoordinatedPlatformLayer::setReplica):
(WebCore::CoordinatedPlatformLayer::setBackdrop):
(WebCore::CoordinatedPlatformLayer::notifyBackdropFiltersChanged):
(WebCore::CoordinatedPlatformLayer::setBackdropRect):
(WebCore::CoordinatedPlatformLayer::setIsBackdropRoot):
(WebCore::CoordinatedPlatformLayer::setAnimations):
(WebCore::CoordinatedPlatformLayer::setChildren):
(WebCore::CoordinatedPlatformLayer::children const):
(WebCore::CoordinatedPlatformLayer::setEventRegion):
(WebCore::CoordinatedPlatformLayer::eventRegion const):
(WebCore::CoordinatedPlatformLayer::setClipPath):
(WebCore::CoordinatedPlatformLayer::setDebugBorder):
(WebCore::CoordinatedPlatformLayer::setShowRepaintCounter):
(WebCore::CoordinatedPlatformLayer::needsBackingStore const):
(WebCore::CoordinatedPlatformLayer::updateContents):
(WebCore::CoordinatedPlatformLayer::paint):
(WebCore::CoordinatedPlatformLayer::record):
(WebCore::CoordinatedPlatformLayer::replay):
(WebCore::CoordinatedPlatformLayer::flushPositionChanges):
(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnTarget):
(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnSkiaTarget):
(WebCore::CoordinatedPlatformLayer::hasPendingBackingStoreTileUpdates const):
(WebCore::CoordinatedPlatformLayer::processPendingBackingStoreTileUpdates):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:
(WebCore::CoordinatedPlatformLayer::WTF_RETURNS_LOCK):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferProxy.cpp:
(WebCore::CoordinatedPlatformLayerBufferProxy::consumePendingBufferIfNeeded):
*
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerContentsDisplayDelegateCoordinated.cpp:
(WebCore::GraphicsLayerContentsDisplayDelegateCoordinated::display):
*
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp:
(WebCore::GraphicsLayerCoordinated::updateGeometry):
(WebCore::GraphicsLayerCoordinated::updateVisibleRect):
(WebCore::GraphicsLayerCoordinated::updateBackdropFilters):
(WebCore::GraphicsLayerCoordinated::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCoordinated::updateAnimations):
(WebCore::GraphicsLayerCoordinated::updateIndicators):
* Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp:
(WebCore::GStreamerElementHarness::Stream::Stream):
(WebCore::GStreamerElementHarness::Stream::pullSample):
(WebCore::GStreamerElementHarness::Stream::outputCaps):
* Source/WebCore/platform/gstreamer/GStreamerElementHarness.h:
* Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp:
(WebCore::AVIFImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::AVIFImageDecoder::frameBufferAtIndex):
(WebCore::AVIFImageDecoder::isComplete):
(WebCore::AVIFImageDecoder::decode):
* Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::frameBufferAtIndex):
(WebCore::BMPImageDecoder::decode):
(WebCore::BMPImageDecoder::decodeHelper):
* Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::frameCount const):
(WebCore::GIFImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::GIFImageDecoder::frameBufferAtIndex):
(WebCore::GIFImageDecoder::clearFrameBufferCache):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::frameComplete):
(WebCore::GIFImageDecoder::decode):
(WebCore::GIFImageDecoder::initFrameBuffer):
(WebCore::GIFImageDecoder::decodeIfNeededAndGetFrameCount const):
(WebCore::GIFImageDecoder::clearDecodedPixelDataIfNeeded):
* Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::frameCount const):
(WebCore::ICOImageDecoder::frameBufferAtIndex):
(WebCore::ICOImageDecoder::decode):
(WebCore::ICOImageDecoder::decodeAtIndex):
(WebCore::ICOImageDecoder::decodeIfNeededAndGetFrameCount const):
* Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::frameBufferAtIndex):
(WebCore::JPEGImageDecoder::outputScanlines):
(WebCore::JPEGImageDecoder::jpegComplete):
(WebCore::JPEGImageDecoder::decode):
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp:
(WebCore::JPEGXLImageDecoder::frameBufferAtIndex):
(WebCore::JPEGXLImageDecoder::clearFrameBufferCache):
(WebCore::JPEGXLImageDecoder::updateFrameCount):
(WebCore::JPEGXLImageDecoder::processInput):
(WebCore::JPEGXLImageDecoder::imageOut):
(WebCore::JPEGXLImageDecoder::decodeIfNeededAndGetFrameCount const):
(WebCore::JPEGXLImageDecoder::clearDecodedPixelDataIfNeeded):
(WebCore::JPEGXLImageDecoder::frameCount const): Deleted.
* Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::frameBufferAtIndex):
(WebCore::PNGImageDecoder::rowAvailable):
(WebCore::PNGImageDecoder::pngComplete):
(WebCore::PNGImageDecoder::readChunks):
(WebCore::PNGImageDecoder::clearFrameBufferCache):
(WebCore::PNGImageDecoder::initFrameBuffer):
(WebCore::PNGImageDecoder::frameComplete):
(WebCore::PNGImageDecoder::firstFrameBuffer):
(WebCore::PNGImageDecoder::clearDecodedPixelDataIfNeeded):
* Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h:
* Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::frameBufferAtIndex):
(WebCore::WEBPImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::WEBPImageDecoder::decode):
(WebCore::WEBPImageDecoder::decodeFrame):
(WebCore::WEBPImageDecoder::initFrameBuffer):
(WebCore::WEBPImageDecoder::applyPostProcessing):
(WebCore::WEBPImageDecoder::clearFrameBufferCache):
(WebCore::WEBPImageDecoder::clearDecodedPixelDataIfNeeded):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp:
(WebCore::MediaRecorderPrivateBackend::stopRecording):
* Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
(WebCore::GStreamerVideoCapturer::setupPipeline): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLGBM.cpp:
(WebKit::RemoteGraphicsContextGLGBM::prepareForDisplay):
* Source/WebKit/UIProcess/glib/DisplayVBlankMonitorThreaded.cpp:
(WebKit::DisplayVBlankMonitorThreaded::startThreadIfNeeded):
(WebKit::DisplayVBlankMonitorThreaded::invalidate):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp:
(WebKit::AcceleratedSurface::SwapChain::createTarget const):
(WebKit::AcceleratedSurface::isOpaque const):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.h:
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp:
(WebKit::m_renderTimer):
(WebKit::ThreadedCompositor::startRenderTimer):
(WebKit::ThreadedCompositor::stopRenderTimer):
(WebKit::ThreadedCompositor::updateRenderTimer):
(WebKit::ThreadedCompositor::isOnlyRenderingUpdatePendingAndWaitingForTiles
const):
(WebKit::ThreadedCompositor::scheduleUpdateLocked):
* Source/WebKit/UIProcess/wpe/DisplayVBlankMonitorWPE.cpp:
(WebKit::DisplayVBlankMonitorWPE::addCallbackIfNeeded):
(WebKit::DisplayVBlankMonitorWPE::removeCallbackIfNeeded):
* Source/WebKit/UIProcess/wpe/DisplayVBlankMonitorWPE.h:
* Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp:
(WebCore::ScalableImageDecoder::frameCount const):
(WebCore::ScalableImageDecoder::clearFrameBufferCache):
* Source/WebCore/platform/image-decoders/ScalableImageDecoder.h:
(WebCore::ScalableImageDecoder::WTF_REQUIRES_LOCK):
* Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.h:
* Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h:
* Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h:
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h:
* Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h:
Canonical link: https://commits.webkit.org/318300@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications