[skia-sync] Merge upstream chrome/m153 bug fixes - #4927
Conversation
…nalUnref) Advances the mono/skia submodule within milestone 153 to pick up the upstream cherry-pick fixing a use-after-free in SkCachedData::internalUnref. Same-milestone bug-fix update: versions unchanged, only the Skia hash and cgmanifest upstream_merge_commit advance. No C API, binding, or dependency changes. Full unfiltered test solution passes on Linux/x64 including the Vulkan GPU backend. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
📦 Try the packages from this PRWarning Do not run these scripts without first reviewing the code in this PR. Step 1 — Download the packages bash / macOS / Linux: curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 4927PowerShell / Windows: iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4927"Step 2 — Add the local NuGet source dotnet nuget add source ~/.skiasharp/hives/pr-4927/packages --name skiasharp-pr-4927More options
Or download manually from Azure Pipelines — look for the Remove the source when you're done: dotnet nuget remove source skiasharp-pr-4927 |
|
📖 Documentation Preview The documentation for this PR has been deployed and is available at: 🔗 View Staging Site This preview will be updated automatically when you push new commits to this PR. This comment is automatically updated by the documentation staging workflow. |
📊 SkiaSharp benchmarks — PR #4927⭐ this PR (full source build) vs 🌙 nightly · Linux · Windows · macOS
Highlights⏱️ Time — 🔴 12 slower · 🟢 73 faster
📦 Allocations — 🔴 1 more alloc · 🟢 0 less alloc
Full per-OS benchmark deltasLinux⏱️ Time (vs 🌙 nightly
📦 Allocations (vs 🌙 nightly
Windows⏱️ Time (vs 🌙 nightly
macOS⏱️ Time (vs 🌙 nightly
|
[skia-sync] Merge upstream chrome/m153 bug fixes (#350) Requires: mono/SkiaSharp#4927 Changes: ca4e52c...d87457d Merge the Chrome M153 use-after-free fix into the SkiaSharp fork. SkCachedData::internalUnref could delete its owning object before the AutoMutexWritable guard released the object's mutex. Store the unref result, destroy the guard, and only then delete the object, preventing the mutex from being unlocked through freed memory. The reviewed range changes only src/core/SkCachedData.cpp and requires no fork conflict resolution. Preserve its two-parent ancestry by selecting **Create a merge commit**; do not squash or rebase this PR. Co-authored-by: Arthur Sonzogni <arthursonzogni@chromium.org> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Latest: [skia-sync] Merge upstream chrome/m153 bug fixes (#350) Commit: 92dc1a61df70e9238e7efe435f40a4136e887df8 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Description
Automated upstream bug-fix sync for m153.
This pull request was produced by skia-upstream-sync.
Related issues
N/A — automated upstream synchronization.
Required skia PR
Requires mono/skia#350
Areas affected
binding/)externals/skia/src/c,include/c)Changes
Advances the
externals/skiasubmodule within milestone 153 to upstreamchrome/m153@4f574af2444846ceca4d277a8095c5d4229d175f(merge commitd87457da65b27386267485bb10253b5ab9112121), picking up the upstream cherry-pick thatfixes a use-after-free in
SkCachedData::internalUnref.This is a same-milestone bug-fix update (CURRENT == TARGET == 153, upstream ref
chrome/m153): product versions are unchanged; only the Skia hash advances.externals/skiagitlink:ca4e52cb…→d87457da…(exact tested commit).cgmanifest.json: SkiacommitHashandupstream_merge_commitadvanced to the new SHAs;chrome_milestonestays 153.SkiaApi.generated.csand all*.generated.csunchanged); no new native functions.update_versions.pygate passed with m153 → m153, no manifest version drift).Testing
Native build from source (Linux/x64) succeeded; managed
SkiaSharp.csprojbuildsclean. Full unfiltered
tests/SkiaSharp.Tests.Console.slnx(net10.0/x64) passed everyhost:
No
GpuPolicy-required backend was skipped (Vulkan/lavapipe executed). Test exit code 0.Human review
skiasharpcommit.Checklist
Changesabove lists all public API and behavioral changes or states that none changedmono/skiaPR linked above and bindings regeneratedLast rendered by the sync workflow: 2026-09-03T00:49:16Z