Skip to content

Implement mutable stylesheet CSSOM for Monaco - #136

Merged
wieslawsoltes merged 1 commit into
feature/file-reader-native-blobfrom
feature/mutable-stylesheet-cssom
Sep 16, 2026
Merged

wieslawsoltes merged 1 commit into
feature/file-reader-native-blobfrom
feature/mutable-stylesheet-cssom

Conversation

@wieslawsoltes

@wieslawsoltes wieslawsoltes commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

Problem and change

Monaco and Code OSS mutate decoration and theme rules through style.sheet.cssRules, insertRule, and deleteRule, which WebScene did not expose.

This layer adds bounded stylesheet rule insertion and deletion, live rule access, and declaration mutation through the owning native style element. It preserves native publication, refreshes wrappers after external text replacement, and isolates state by V8 context.

Closes #74. The equivalent implementation remains in draft consolidation PR #76.

Cumulative validation

  • Performance layer d727fe33; FileReader layer 391d4f54; exact cumulative head 90bafd05
  • Release V8 native engine build
  • Full stacked RuntimeCompatibility suite: 25/25 passes
  • Native focused filters: Performance Timeline 10/10, WebSocket FileReader 10/10, stylesheet CSSOM 10/10
  • Performance gates: 50,000 marks in 29.9 ms; exact 8 MiB Blob read in 33.5 ms; 300 stylesheet mutations in 7.4 ms
  • Stylesheet gate budget is 2,000 ms and covers rule order, token boundaries, invalid input, native mutation, external replacement, context isolation, and idempotence
  • git diff --check
  • Remote validation runs only on this cumulative top to minimize CI and artifacts

Native GitHub stack #159

  1. Implement retained Performance Timeline for Code OSS #134 — Performance Timeline (Implement retained Performance Timeline required by Code OSS startup #72)
  2. Implement FileReader over native Blob bytes #135 — FileReader over native Blob bytes (Implement FileReader over native Blob bytes for Code OSS WebSockets #73)
  3. Implement mutable stylesheet CSSOM for Monaco #136 — current cumulative top — mutable stylesheet CSSOM (Implement mutable stylesheet CSSOM for Monaco and Code OSS #74)

Merge all layers atomically through Stack #159 after the current-head related checks pass.

@wieslawsoltes
wieslawsoltes force-pushed the feature/mutable-stylesheet-cssom branch from bbcbca3 to 90bafd0 Compare September 16, 2026 20:24
@wieslawsoltes
wieslawsoltes marked this pull request as ready for review September 16, 2026 20:27
@wieslawsoltes
wieslawsoltes merged commit 5a13311 into main Sep 16, 2026
1 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement mutable stylesheet CSSOM for Monaco and Code OSS

1 participant