Skip to content

Complete dynamic CSSOM for nested, imported, and constructed stylesheets #239

Description

@wieslawsoltes

Current dynamic CSSOM checkpoint — 20 September 2026

Exact merged heads: WebScene a46b62e14eb197603f7e227c1558afb9088633b0; AppScene 97702daeb9ad71341ced7226f0aa966dc77ea53c; unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c; local vscode-demo e4b98e5470cd7856aff3dfd6843c8e125d7db933 (clean, intentionally unpushed). Open consolidations remain WebScene #76 085bba760fa571c8f08ea866dc5dd1ec27c4d376, AppScene #65 ce66ef6ceb776b3f14e129f853bfc08b5c5e608c, and vscode-demo #1; do not merge them. One-agent mode is active.

All focused dynamic-CSSOM children remain closed with implementations merged: grouping/media/selector replacement, constructed and adopted sheets, imports, namespaces, containers, keyframes and font-face behavior. No additional source slice is currently known under this owner.

Remaining work is exact-package execution of the authored browser/native mutation, ordering, lifecycle, memory and unchanged Code OSS acceptance gates. Open a focused child only when current evidence proves another CSSOM defect.

Current implementation status — 19 September 2026

Focused CSSOM work is merged through namespace-rule reflection and selector namespace stages #518/#519: type/universal matching landed in #521 (276d5b77), and namespace-qualified attribute matching landed in #525 (346f1412) with expanded DOM attribute identity, cache schema, invalidation, and authored WPT/native sources.

PR #528 merged the final planned namespace-context slice for supported functional pseudo-class selector lists as 9f2d4830, closing #520. The epic remains open for the deferred cumulative Chromium/native mutation, invalidation, performance, memory, teardown, exact-package, and CI gates. Unchanged Code OSS contains no @namespace usage at the pinned revision, so these are reusable standards fixes rather than product patches.

Parent tracker: #235

Problem

WebScene supports important dynamic style paths, but nested rule mutation, imported sheets, constructed/adopted sheets, owner detach/reattach, and complete CSSOM reflection are not yet qualified as one coherent feature surface.

Proposed work

  • Inventory CSSStyleSheet, CSSRuleList, grouping rules, declaration mutation, insertRule, deleteRule, replace, and replaceSync behavior.
  • Implement product-neutral nested/grouping, imported, and constructed/adopted stylesheet ownership and mutation.
  • Preserve rule identity/order and correctly invalidate affected documents/subtrees.
  • Define navigation/realm teardown and detached-owner lifetimes.
  • Add Chromium/native contracts and mutation performance gates.

Acceptance

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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