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

Reply via email to