djg
Platform contributor
Summary
Primarily graphics and rendering: GraphicsContext/CoreGraphics stroking paths, color conversion and gradient interpolation, ANGLE, and WebXR compositor integration on Cocoa/visionOS, with a large share of the work driven by MotionMark 1.3 performance regressions. The pattern is performance-first — caching, IPC batching, allocation avoidance — and the security fixes fall out of that same work: both use-after-frees involve WebXRSystem lifetime across re-posted callbacks and garbage-collected owners, and the per-thread sampled gradient cache change addresses cross-thread sharing of color transform state. Systematic-variant candidate: the WebXR object graph (WebXRSystem, XRSession, PlatformXRCompositor) has produced repeated lifetime bugs in async callback paths, and the thread-local caching rework in the color pipeline is recent enough that adjacent shared-state paths are worth a sweep.
Components
Security Fix History
- 2026-07-03 [WebXR] Use-after-free of WebXRSystem in callbacks re-posted from ensureImmersiveXRDeviceIsSelected ·
- 2026-06-30 [WebXR] Use-after-free when ending an XRSession whose owning WebXRSystem has been garbage collected ·
- 2026-05-14 Give each thread its own sampled gradient cache to avoid cross-thread thrashing 2026-W19
Hardening Commits
- No hardening commits recorded
Recent Commits
- 2026-07-30 [ANGLE] ScopedDisableOcclusionQuery helper doesn't write mResultOut
- 2026-07-30 REGRESSION(318113@main): MotionMark 1.3 Leaves 19.5% worse than baseline
- 2026-07-29 Avoid recomputing anonymousWrappers on removal of out-of-flow elements.
- 2026-07-19 [WebXR] Clamp minimum depth for PlatformXRCompositor
- 2026-07-16 [WebXR] Remove check for CompositorServices support of forward-Z
- 2026-07-16 REGRESSION (310405@main): Oklch gradients sometimes have random bands of colour in them
- 2026-07-03 [WebXR] Use-after-free of WebXRSystem in callbacks re-posted from ensureImmersiveXRDeviceIsSelected ·
- 2026-06-30 [WebXR] Use-after-free when ending an XRSession whose owning WebXRSystem has been garbage collected ·
- 2026-06-20 REGRESSION(311406@main): Dark band in non-sRGB gradients with transparent stops
- 2026-06-09 [WebXR|visionOS] Try shared MTLTexture before falling back to IOSurface
- 2026-06-05 Add layout test for canvas line stroke IPC batching cross-buffer flush
- 2026-06-04 [MotionMark 1.3] Batch canvas line stroke IPC messages to reduce per-line decode overhead
- 2026-06-03 [MotionMark] Skip redundant transform update in simplified layout
- 2026-06-02 GraphicsContext::strokeLine missing call to strokePath
- 2026-06-01 [Cocoa] Avoid Path allocation when stroking a single line on CoreGraphics