This is a backport PR for branch 43-x-y
MarshallOfSound

#51792: perf: backport startup performance improvements to 43-x-y (#51602, #51697, #51703)

Merged
Created: May 28, 2026, 10:30:42 AM
Merged: Jun 1, 2026, 11:28:12 AM
2 comments
Target: 43-x-y

Backport of #51602
Backport of #51697
Backport of #51703

Manual backport of three stacked startup-performance changes to 43-x-y, in a single PR (they build on each other, so they backport together):

  • #51602 — perf: push sandboxed renderer startup data via mojo and cache preload bytecode
  • #51697 — perf: build-time V8 code cache for the electron/js2c framework bundles
  • #51703 — perf: boot the browser process from an embedded Node startup snapshot

#51697 stacks on #51602, and #51703 stacks on #51697, so they are cherry-picked in merge order. All three were originally labeled no-backport; this PR backports them deliberately on request. They are semver/patch (internal performance work, no public API change).

The three originals are cherry-picked unchanged. One extra commit regenerates filenames.auto.gni for the bundle change in #51602 (it drops the lib/renderer/ipc-renderer-internal-utils.ts dependency from the sandboxed renderer bundle), so the gen-filenames --check CI step passes.

Notes: Improved app startup performance — the main process now boots from an embedded Node.js startup snapshot, framework bundles and preload scripts are cached as compiled V8 bytecode, and sandboxed renderer startup data is pushed ahead of navigation instead of fetched via blocking IPC. Preload stack traces now show the correct file path and line number.

Backport Information

Original PR Author
MarshallOfSound
Original PR Status
Merged
Original PR Merged At
May 19, 2026, 10:38:10 AM
Original PR Link
GitHubView on GitHub

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron