nikolaszimmermann
Platform WPE contributor
Summary
Works almost entirely on SVG rendering in WebCore — the bulk of recent activity is LBSE (layer-based SVG engine) work covering clip-path, masks, filters, markers, and paint/repaint region math — with a secondary cluster in GTK/WPE damage propagation and Skia compositing. No commits in the set are classified as security fixes or hardening; the pattern is engine-rewrite and rebaselining work, including several REGRESSION follow-ups on recently landed SVG and damage changes. Where to look next: the LBSE transition touches dirty-rect inversion, filter-region seeding, and external/`data:` URL references for clip-path and paint servers — resource-reference and repaint-bounds handling in a renderer being swapped out under live tests is the kind of seam where stale-bounds and reference-resolution bugs surface.
Components
Security Fix History
- No security fixes recorded
Hardening Commits
- No hardening commits recorded
Recent Commits
- 2026-08-07 [WPE][cross-toolchain-helper] webkitdevci builds fail on hosts with glibc 2.43 (e.g. Ubuntu 26.04 SDK)
- 2026-08-07 [LBSE] Update baseline + TestExpectations
- 2026-08-07 [LBSE] Fix remaining mask issues
- 2026-08-07 [LBSE] Masked SVG content is cut off at the edges of the transparency layer bound
- 2026-08-07 REGRESSION(314540@main): When damage propagation is turned on, scrollbars are flickering
- 2026-08-06 [LBSE] Do not seed the filter region with the object bounding box for pure <filter> references
- 2026-08-05 REGRESSION(313859@main): SVGForeignObjectElement dynamic x/y take no effect
- 2026-08-05 [LBSE] Rebaseline four tests and update custom pixel test baseline for legacy SVG engine
- 2026-08-04 [GTK][WPE] Use the damage for compositing by default
- 2026-08-03 [LBSE] Skip per-frame visual-overflow recompute in RenderSVGContainer paint cull
- 2026-08-02 [LBSE] Support external and data: URL clip-path, marker and paint-server references
- 2026-08-02 [LBSE] Invert the 2D affine transform when mapping the paint dirty rect
- 2026-08-02 [LBSE] Skip the outline paint pass for outline-free SVG renderers
- 2026-08-01 [LBSE] Rebaseline svg/repaint/marker-markerUnits-dynamic-update-repaint.html
- 2026-08-01 [LBSE] Mark three WPT progressions
- 2026-08-01 [LBSE] Don't create a RenderLayer for SVG clip-path
- 2026-07-17 [Damage][Skia] Composite only the damage
- 2026-07-17 [Damage][Skia] Limit every content draw to the target's repaint region
- 2026-07-16 [CISupport] download-built-product hangs for hours on a collapsed connection
- 2026-07-16 [Damage][Skia] Make the collected frame damage cover every pixel the frame changes
- 2026-07-16 [Damage] Track each swap-chain target's damage since it was last current
- 2026-07-15 [Damage][Skia] Split the compositing walk into a damage pass and a paint pass
- 2026-07-15 [Damage][Skia] Teach the tile and image draws to split themselves by damage rect
- 2026-07-14 [LBSE] Cache the clip-path geometry instead of rebuilding it per clipped shape per frame
- 2026-07-14 [Coordinated] Damage a layer when its state changes the composited result
- 2026-07-14 [Damage] Add rectsForPainting() and fix uniting two damages that share a grid
- 2026-07-13 [LBSE] Cache the SVG transform origin on RenderSVGModelObject
- 2026-07-13 [LBSE] Clip the SVG child-paint loop once per container instead of once per shape
- 2026-07-10 [WPE][Skia] Compositor keeps GL_BLEND enabled for opaque layers
- 2026-07-10 [LBSE] Coalesce the SVG transform flush into one minimal repaint per container
- 2026-07-10 [GTK][WPE] Gardening of tests - 2026-07-10
- 2026-07-10 REGRESSION(316809@main): RPi4 build broken with older OpenXR SDK
- 2026-07-10 [webkitcorepy] TaskPoolUnittest.test_mutually_exclusive_group_hang is flaky on loaded bots
- 2026-07-10 REGRESSION(316809@main): RPi4 build broken with older OpenXR SDK
- 2026-07-10 REGRESSION(316853@main): determineIsCMakeBuildXcode.pl webkitperl test fails on non-Cocoa bots
- 2026-07-09 [WPE][Skia] The Skia based compositor is ~2x more expensive on Vivante/etnaviv due to fSharpenMipmappedTextures
- 2026-07-08 [WPE] Fix broken Vivante super-tiled rendering with the Skia compositor
- 2026-07-08 [LBSE] Dynamic marker attribute change must repaint the referencing element's old bounds
- 2026-07-06 Zero-initialize CSSParserToken union to fix valgrind uninitialised value error
- 2026-07-06 [LBSE] Update two LBSE baselines
- 2026-07-06 [LBSE] Cache the SVG viewport size used for the transform reference box
- 2026-07-06 [LBSE] Reuse cached m_localTransform at paint instead of re-resolving from style
- 2026-07-06 [LBSE] Cache the concatenated SVG transform attribute matrix
- 2026-07-02 [LBSE] Cache the resolved SVG fill and stroke paint server
- 2026-07-01 [GTK][WPE] Do not auto-enable Swift when cross-building
- 2026-07-01 REGRESSION(315610@main): [LBSE] Event regions missing for non-layer SVG children
- 2026-06-30 [LBSE] Add LBSE specific result for svg/repaint/svg-outline-repaint-on-hover.html after 315468@main
- 2026-06-30 [LBSE] Rebaseline iOS specific results after 315674@main
- 2026-06-27 [GTK][WPE] Gardening of tests - 2026-06-27
- 2026-06-27 [Tools] test-webkitpy fails on WPE/arm64: No archives for zope-interface-8.1 found
- 2026-06-26 [GTK][WPE] Gardening of tests - 2026-06-26
- 2026-06-25 [CMake] Prune stale staged headers so renamed headers don't break module builds
- 2026-06-25 [WPE] REGRESSION(315785@main): Swift-enabled build fails to link libWPEWebKit with multiple-definition errors
- 2026-06-25 [GTK][WPE] Regenerate CMake cache when .wkdev-sdk-version changes
- 2026-06-24 [GTK][WPE] Bump wkdev-sdk to Ubuntu 26.04 based SDK
- 2026-06-23 [LBSE] Preserve paint order of non-composited children around composited SVG siblings 2026-W25
- 2026-06-22 [LBSE] Make layer creation conditional for SVG renderers
- 2026-06-22 [LBSE] Preserve 2D transform flags when an SVG renderer loses its layer
- 2026-06-22 [LBSE] Broaden svgTransformAttributeChangeInducesLayerComposition() to isRenderSVGContainer()
- 2026-06-22 [LBSE] Guard the SVG DOM-order cache dirtying on the transform-attribute fast path
- 2026-06-22 [GTK][WPE] REGRESSION(315523@main): Revert Swift toolchain support for Yocto builds
- 2026-06-19 [WPE][cross-toolchain-helper] Disable Swift on armv7 (32-bit) targets, keep clang
- 2026-06-19 [LBSE] Simplify SVG transform paint/hit-test recursion
- 2026-06-19 [LBSE] Add tests for conditional SVG layer creation
- 2026-06-19 [LBSE] Adjust existing SVG tests for conditional layer creation
- 2026-06-19 [GTK][WPE] Enable Swift toolchain support in Yocto cross-builds
- 2026-06-18 [LBSE] Prepare layer position, stacking and visibility handling for non-layered SVG renderers
- 2026-06-18 [LBSE] Report a viewport-establishing SVG container's viewport as its untransformed bounding box
- 2026-06-18 [LBSE] Switch layer-composition-inducing SVG transform attribute changes to a style recalc
- 2026-06-17 [GTK][WPE] Move per-buffer frame-damage bookkeeping into SwapChainDamageTracker
- 2026-06-15 [GTK] Add libharfbuzz-dev and libicu-dev to install-dependencies
- 2026-06-15 [GTK][WPE] Install python3-legacy-cgi via install-dependencies
- 2026-06-13 [LBSE] REGRESSION(315171@main): Skip three compositing tests that depend on conditional layer creation
- 2026-06-13 [LBSE] Hit-test SVG text per glyph in its SVG coordinate system
- 2026-06-13 [LBSE] Include descendant transforms in SVG visual overflow
- 2026-06-12 [CMake] Glob all Source/cmake/*.cmake files when deciding to remove CMakeCache.txt
- 2026-06-12 [LBSE] Position non-layered transformed SVG content in the paint transform recursion
- 2026-06-11 [LBSE] Extend non-layered 2D local transform handling to RenderSVGText
- 2026-06-08 [WPE] Gardening of tests - 2026-06-09 (arm64)
- 2026-06-08 [GTK][WPE] Gardening of tests - 2026-06-09 (x86_64)
- 2026-06-05 [GTK][WPE] Skia Compositor: compositing debug borders are not painted properly
- 2026-06-04 [LBSE] Compensate for content box offset when applying zoom to outermost SVG viewport container
- 2026-06-03 [LBSE] Defer per-element SVG transform-attribute work without style recalc 2026-W22
- 2026-06-02 [CMake] Emit the Swift C++ interop header temp beside its swiftmodule instead of under DerivedSources
- 2026-06-01 REGRESSION(314042@main): Intermittent build failures on CMake+Gtk/Swift builds
- 2026-05-29 [Skia] Parameterize SkiaCompositingLayer paint walk by mode
- 2026-05-29 [WPE] REGRESSION(314133@main): WPE/clang build is broken: ViewGestureControllerMessages.h not found
- 2026-05-29 REGRESSION(314133@main): Fix build breakage, due to a partial merge problem
- 2026-05-29 [GTK][WPE] Bump wkdev-sdk to a Swift-enabled version
- 2026-05-27 [GTK][WPE] Test bump wkdev-sdk to a Swift-enabled version
- 2026-05-27 [WPE][cross-toolchain-helper] REGRESSION(311591@main): bitbake builds toolchain during determineArchitecture() with no v
- 2026-05-26 Add DamageRectangleThreshold preference to tune the damage-rectangle merge limit
- 2026-05-25 Rebaseline a few more SVG pixel test results using macOS Tahoe 26.5
- 2026-05-25 Rebaseline mac-tahoe-wk2-pixel results (using macOS Tahoe 26.5)
- 2026-05-25 [GTK][WPE] Gardening of tests - 2026-05-25
- 2026-05-22 [GTK][WPE] Fix -j1 builds by wiring test targets to forwarding-headers
- 2026-05-21 [Tools][SDK] Improve container SDK warnings
- 2026-05-20 [Tools] Make run-mvt-tests honor the WebKit Container SDK auto-enter
- 2026-05-19 [Tools] Share host PID namespace with ephemeral container by default
- 2026-05-19 [LBSE] Skip redundant clipToRect in RenderSVGRect::fillShape when clip-path bounds drawing
- 2026-05-19 [Skia] Add damage region visualization overlays
- 2026-05-18 [Skia] Port on-screen FPS counter drawing to Skia compositor
- 2026-05-18 [Skia] Optimize SkiaCompositingLayer repaint counter drawing
- 2026-05-18 [Tools] generate-bundle must re-exec under the /sdk/webkit mount namespace
- 2026-05-15 [GTK][WPE][Tools] container-sdk-autoenter fails on bots with /dev/console mount error
- 2026-05-15 [GTK][WPE] Bump SDK version from 2.53-v3-bf0ef5d -> 2.53-v4-95ead24
- 2026-05-14 [GTK][WPE][Tools] Make wkdev-build container ephemeral
- 2026-05-14 [GTK][WPE] Cap wkdev-build container hostname to HOST_NAME_MAX
- 2026-05-14 [GTK][WPE] Drop --pid host from wkdev-build container creation
- 2026-05-14 [GTK][WPE] Always warn on wkdev-sdk container version mismatch, regardless of auto-enter
- 2026-05-14 [GTK][WPE] Update pinned wkdev-sdk container version
- 2026-05-13 [GTK][WPE][Tools] Auto-enter WebKit Container SDK from host wrappers
- 2026-05-13 [GTK][WPE] Fix build with gcc-15 (incorrect stringop-overflow warning)
- 2026-05-08 [LBSE] Introduce DOM-order hit-test infrastructure for non-layered SVG children
- 2026-05-06 [GTK][WPE] Gardening of tests - 2026-05-06 (x86_64)
- 2026-05-06 [LBSE] Introduce DOM-order paint infrastructure for non-layered SVG children
- 2026-05-01 [LBSE] Use weak references in SVGPaintOrderLayerItem to avoid keep-alive of dead renderers
- 2026-04-30 [LBSE] Introduce DOM-order children cache infrastructure for SVG layers
- 2026-04-28 [Skia][GBM] Use gbm_bo_map() fallback when gbm_bo_get_fd_for_plane() returns a non-RDWR FD
- 2026-04-27 [CoordinatedGraphics] Replace bit-shifted Change enum in CoordinatedPlatformLayer with EnumSet
- 2026-04-24 [LBSE] Add test for nested stacking contexts via z-index on SVG <g> elements
- 2026-04-24 [Skia][GBM] Fix assertion in SkiaGPUAtlas::uploadImage(), trying to obtain a MemoryMappedGPUBuffer WriteScope
- 2026-04-23 [GTK][WPE] Remove TestExpectations entries with flakiness factor below 5% from 2026-04-22 gardening
- 2026-04-23 [GTK][WPE] Always route GPU-sampling dma-buf exports through gbm_bo_get_fd_for_plane()
- 2026-04-22 [GTK][WPE] Gardening of tests - 2026-04-22 (arm64)
- 2026-04-22 [GTK][WPE] Gardening of tests - 2026-04-22 (x86_64)
- 2026-04-22 [GTK][WPE] Probe dma-buf+mmap capability before enabling MemoryMappedGPUBuffer path
- 2026-04-22 [LBSE] Always call updateLayerTransform() even when renderer has no layer
- 2026-04-22 REGRESSION(311234@main): Partially revert "[Skia] Add deferred texture binding support for dma-buf backed GPU atlas text
- 2026-04-22 [LBSE] Handle non-layered clients in CSSSVGResourceElementClient::resourceChanged
- 2026-04-22 REGRESSION(299705@main): Fix bogus cmake HAVE_DRM_GET_FORMAT_MODIFIER_NAME redefinitions
- 2026-04-21 [LBSE] Suppress LayoutRepainter inside SVG hidden/anonymous containers
- 2026-04-21 Refactor filter renderers to use OptionSet<FilterRenderingOption>
- 2026-04-20 [LBSE] Pin RenderLayer creation on SVG resource renderers
- 2026-04-17 [LBSE] Move SVG-specific data out of RenderLayer into a lazily-allocated SVGData struct
- 2026-04-15 [GBM] REGRESSION(310393@main): Always use DRM_RDWR when exporting dma-buf FDs for GPU buffer mapping
- 2026-04-14 [Skia] Add deferred texture binding support for dma-buf backed GPU atlas textures
- 2026-04-13 [GTK][WPE] REGRESSION(310393@main): Restore RValue semantics for DMABufBufferAttributes IPC encoding
- 2026-04-13 [run-benchmark] Add MotionMark 1.3.1 composition plans for testing GPU compositing
- 2026-04-09 [WPE] Gardening of arm64 tests - 2026-04-09
- 2026-04-09 [GTK][WPE] Gardening of tests - 2026-04-09
- 2026-04-03 REGRESSION(310393@main): [GTK][WPE] WebGL context lost after dma-buf/EGLImage refactorization
- 2026-04-01 [GTK][WPE] Fix WTF_GUniquePtr.Basic and WTF_GUniquePtr.OutPtr test failures
- 2026-04-01 [GTK][WPE] /TestWebCore:ImageBufferTests API tests fails
- 2026-04-01 [GTK][WPE] Consolidate dma-buf / EGL image creation code into DMABufBuffer methods
- 2026-03-31 [GTK][WPE] Centralize GLFence creation boilerplate in SkiaUtilities
- 2026-03-31 [GTK][WPE] Centralize Skia GPU texture/surface/image operations in SkiaUtilities
- 2026-03-31 Extract TransformPaintScope RAII helper from RenderLayer::paintLayerByApplyingTransform
- 2026-03-31 [GTK][WPE] Avoid the need for ImageBuffer/NativeImage in scrollbar painting
- 2026-03-30 [GTK][WPE] Fix GL state restoration bugs in BitmapTexture
- 2026-03-30 [Skia] Enable SKIA_DEBUG by default in Debug CMake builds
- 2026-03-29 Fix uninitialized member variables in WebAnimation and StyleOriginatedAnimation
- 2026-03-29 Fix ContinuousContent::Run copy constructor losing shapingBoundary field
- 2026-03-26 [GTK][WPE] Sync initial `preserves3D` state for structural `GraphicsLayerCoordinated`
- 2026-03-25 [GTK][WPE] Gardening of tests - 2026-03-25
- 2026-03-25 Fix hidpi-legacy-svg-compositing-sibling-no-shift.html to actually test compositing change
- 2026-03-24 run-webkit-tests's --ignore-render-tree-dump-results option is broken
- 2026-03-24 [WKTR] Workaround image dimension mismatch in windowSnapshotImage
- 2026-03-24 Add join() after SIGKILL in message_pool worker cleanup
- 2026-03-13 [GTK][WPE] Gardening of tests - 2026-03-13
- 2026-03-12 Update mac-tahoe-wk2-pixel pixel test baseline
- 2026-03-08 [GBM] Allow ForceLinear buffers even when DRM_FORMAT_MOD_LINEAR is not in the modifier list
- 2026-03-05 [GTK][WPE] Gardening of tests - 2026-03-05
- 2026-03-05 [GTK][WPE] Add single-entry GPU atlas cache to SkiaPaintingEngine
- 2026-03-04 [GTK][WPE] Add single-entry GPU atlas cache to SkiaPaintingEngine
- 2026-03-03 [GTK][WPE] MemoryMappedGPUBuffer backed BitmapTexture occasionally hangs v3d GPU driver
- 2026-03-03 RenderTheme::updateSliderTrackPart() may divides by zero when computing datalist tick ratios
- 2026-03-03 [GBM] gbm_bo_get_fd_for_plane() compat shim should pass DRM_RDWR to match native behavior
- 2026-03-02 [GTK][WPE] Implement GPU atlas creation and replay substitution for batched raster image uploads 2026-W09
- 2026-02-24 [GTK][WPE] Add texture atlas layout computation for batching raster image uploads
- 2026-02-23 REGRESSION(305273@main): [GTK] Another PDF rendering regression
- 2026-02-18 [GTK][WPE] Garden flaky/timeout tests, Feb 18th
- 2026-02-08 [GTK][WPE] Garden flakys/timeouts, Feb 8
- 2026-02-05 [GTK][WPE] REGRESSION(302341@main) - Loading webkit://gpu shows error message in JS console
- 2026-02-04 [LBSE] Cache visual overflow rect computation
- 2026-02-04 [Skia] Fix mismatched WTF_IGNORE_WARNINGS_IN_THIRD_PARTY_CODE macro in PlatformDisplaySkia.cpp
- 2026-02-04 [Skia] Add SkiaTextureAtlasPacker for 2D bin packing
- 2026-02-04 [GTK][WPE] Add NearestFiltering flag to BitmapTexture
- 2026-02-04 [GTK][WPE] Add UseBGRALayout flag to BitmapTexture/MemoryMappedGPUBuffer
- 2026-01-30 [LBSE] Update mac-tahoe-wk2-pixel / mac-tahoe-wk2-lbse-text baselines
- 2026-01-28 [GTK][WPE] Garden timeouts and additional flaky tests seen on gtk/wpe release bots, Jan 28
- 2026-01-28 [GTK][WPE] Garden flaky tests seen on gtk/wpe release bots, Jan 28
- 2026-01-27 [LBSE] Reduce cost of transform attribute changes
- 2026-01-25 [LBSE] Update mac-tahoe-wk2-pixel / mac-tahoe-wk2-lbse-text baselines
- 2026-01-21 [WPE] fast/inline/min-content-width-with-hypens.html no longer fails on WPE, update expectations
- 2026-01-21 [GTK][WPE] Correct webgl/1.0.x/conformance/textures/misc/texture-corner-case-videos.html expectations
- 2026-01-21 [GTK][WPE] Update imported/w3c/web-platform-tests/css/css-view-transitions/pseudo-with-classes-old-with-class-new-withou
- 2026-01-21 [GTK][WPE] Mark imported/w3c/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position.
- 2026-01-21 [GTK][WPE] compositing/repaint/needs-no-display-volatile-repaint.html is flaky on both GTK and WPE
- 2026-01-21 [GTK][WPE] Various tests in imported/w3c/web-platform-tests/feature-policy/feature-policy-frame-policy* occasionally cra
- 2026-01-21 [GStreamer] webrtc/canvas-to-peer-connection-vp8-2d.html no longer fails after 305810@main
- 2026-01-16 [LBSE] Update mac-tahoe-wk2-pixel / mac-tahoe-wk2-lbse-text using macOS Tahoe 26.2
- 2026-01-15 [LBSE] Create mac-tahoe-wk2-lbse-text baseline using LBSE
- 2026-01-08 [Tools][CI] Dump /etc/build-info for GTK/WPE jobs in PrintConfiguration step
- 2026-01-08 [LBSE] Preparation: create mac-tahoe-wk2-pixel baseline using legacy SVG engine
- 2026-01-08 [GTK][WPE][Skia] Add canvas 2D operation recording for batched replay
- 2026-01-05 [Tools][WPE][GTK][SDK] Regression from 304672@main: cannot find jsc binary in webkitperl tests
- 2025-12-23 [Skia] Fix GrDirectContext management for GPU resources
- 2025-12-23 [GTK] imported/w3c/web-platform-tests/webrtc-stats/outbound-rtp.https.html is crashing in a Skia codepath
- 2025-12-22 [GTK][WPE] http/wpt/service-workers/service-worker-different-process.https.html and http/wpt/service-workers/service-wor
- 2025-12-22 [WPE] Four imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-* tests are flaky
- 2025-12-22 [GTK][WPE] fast/repaint/missing-out-of-flow-repaint-on-destroy.html is flaky
- 2025-12-22 REGRESSION(304729@main) [GLIB] Flaky setBackingProviderLayer crash during RenderLayer destruction
- 2025-12-18 [GTK][WPE] Fix clang builds after 304678@main
- 2025-12-18 REGRESSION(287399@main): [Skia] Broke rendering of various PDFs
- 2025-12-18 [TextureMapper] Add UV bounds clamping support to drawTextureFragment()
- 2025-12-16 [GTK] Gardening of crashes on debug bots
- 2025-12-04 [GTK][WPE] Support Vivante super-tiled format for MemoryMappedGPUBuffer
- 2025-12-03 [TextureMapper] Add support for physical/logical size difference in BitmapTexture
- 2025-11-20 [GTK][WPE] Check for valid GL context before attempting GPU rendering
- 2025-11-19 [GTK][WPE] Always use BGRA8 pixel format for unaccelerated tile buffers
- 2025-11-18 [GTK][WPE] Remove hybrid mode from SkiaPaintingEngine
- 2025-11-12 Reland "[GTK][WPE] ThreadedCompositor: Switch didRenderFrameTimer to use a RunLoopObserver"
- 2025-11-10 [GTK][WPE] Partly reverting 302433@main (28fa568972a4)
- 2025-11-10 [GTK][WPE] Fix OpenXR-enabled builds with clang
- 2025-11-06 [GTK][WPE] REGRESSION(301378@main): RunLoop::stop() might not take effect
- 2025-11-04 [GTK][WPE] REGRESSION: 302433@main induced flakiness in ThreadedCompositor
- 2025-11-01 [GTK][WPE] ThreadedCompositor: Switch didRenderFrameTimer to use a RunLoopObserver