Skip to content

Honor will-change stacking contexts used by Code OSS #800

Description

@wieslawsoltes

Parent CSS epic: #235
Paint owner: #241
Performance owner: #243

Proven gap

Unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c contains 16 will-change declarations across 12 CSS files. They cover transform/opacity animation surfaces in Quick Input, Action Widget, sessions/mobile, Chat, counters, voice glow, and onboarding, plus background-position and positioned Chat pet hints. Current WebScene c9a28121 does not expose the property. In particular, a transform or opacity hint must establish the same atomic stacking context that the hinted non-initial property would establish, even before animation begins.

Focused implementation

  • generated native/managed identity, validation, and CSSOM for auto and a bounded comma-separated custom-ident list;
  • normalize supported tokens and preserve the computed list in cold textual style;
  • derive one packed stacking-context bit for transform or opacity hints and reuse the retained atomic paint/hit predicate;
  • paint-only CSSOM mutation with no box/layout invalidation, visual-tree node, preallocated layer, timer, or frame demand;
  • reset, global-keyword, inheritance, removal, detach/navigation, and all semantics.

Gates

  • CSSOM/computed mutation and invalid-value contract;
  • overlapping descendant/sibling paint and hit-order regression before the real transform/opacity starts;
  • combinations with isolation, contain, z-index, filters, and actual transform/opacity;
  • 4,096-node mutation gate with zero layout, bounded publication, stable memory, and no idle frame demand;
  • exact unchanged Quick Input, sessions, Chat, counter, and voice/onboarding regions.

Current status — 20 September 2026

PR #801 is merged at WebScene 02287992329ccd5e54ced9f966c3df4049e28b6f; current main is ba27b13da399dee2433c9a8ded33acaa6207547f. Authored CSSOM/native/performance/product gates remain unexecuted qualification debt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions