Skip to content

Match absolute modal and nested Settings layout used by VS Code OSS #112

Description

@wieslawsoltes

Current problem

VS Code OSS 1.137 opens the real Settings UI through the Command Palette on AppScene/WebScene. The modal and surrounding Settings row cadence now match the Chromium reference closely, and 192 retained input records are accepted. The remaining demonstrated defect is the light-theme <select> principal:

  • the control keeps its expected 26 px layout slot;
  • the principal background and selected option text do not paint;
  • the CSS pseudo-element chevron path paints, but the native control arrow path shows a missing-glyph box;
  • the clipped row visible at the viewport edge was previously mistaken for collapsed row layout.

This is a WebScene form-control scene painting and hit-test defect, not a general modal/grid/layout failure and not a VS Code command-routing failure.

Exact evidence

Unchanged Code OSS revision: 645f29cc.

  • Chromium capture: artifacts/release-final-next11-settings-chromium
  • AppScene/WebScene capture: artifacts/release-final-next11-palette-settings-slow
  • Chromium modal: [144,108,1152,724]
  • Chromium Settings body: [145,142,1150,689]
  • Native command/filter path: exact Settings command, font size filtered to 21 results, 192 accepted unique inputs

Required change

  1. Reduce the light-theme Settings-shaped select into a browser/native contract that includes inherited foreground, native appearance, option selection, pseudo-element chevron, transforms, clipping, and pointer hit testing.
  2. Trace the selected option and principal background from computed style through layout, visual creation, scene publication, and native composition.
  3. Paint the selected value and background with browser-compatible clipping and stacking.
  4. Use a deterministic native arrow/vector path or correctly resolved glyph; do not depend on a missing font glyph.
  5. Verify pointer and keyboard selection, focus, change/input dispatch, repaint, and reload.
  6. Add bounded repeated open/change/close coverage and measure recascade, layout, scene mutation/publication, CPU, and retained memory.

Acceptance

  • Selected text, principal background, and arrow render in native light and dark themes.
  • Geometry matches Chromium within the versioned threshold and surrounding Settings rows remain stable.
  • Pointer and keyboard selection update the real unchanged Settings control and dispatch browser-shaped events.
  • The reduced Chromium/native gate, WPT-derived behavior test, native regression, and hot-path performance/retention gate pass.
  • The packaged Settings visual and interaction lanes pass with no VS Code source workaround.

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