Skip to content

Make retained inset length parsing portable below macOS 26 #302

Description

@wieslawsoltes

Parents: #256, CSS epic #235

Reproduction

The required macOS arm64 runtime-package build fails on current main 70a2db4c in run 35254142552, job 105313709946:

webscene_native_dom_scene.inc:443:34: error: 'from_chars' is unavailable: introduced in macOS 26.0

The call parses floating-point clip-path: inset(...) lengths. Integer std::from_chars is portable here; libc++ floating-point from_chars is unavailable at the package deployment target. The implementation predates PR #300 and reproduces in its post-merge package run.

Required fix

  • Replace the unavailable floating parser with a locale-independent, bounded parser that accepts the same CSS numeric grammar already admitted by the inset path.
  • Preserve complete-token validation, finite-only values, optional leading +, zero-unit handling, px, and % behavior.
  • Reject whitespace tails, partial numbers, NaN/Inf, overflow, unsupported units, and embedded NUL without reading beyond the input view.
  • Reuse a shared portable CSS-number helper if one already meets those rules; do not add locale-sensitive parsing to scene publication.

Acceptance

  • Focused positive/negative parser and retained inset-paint tests pass.
  • macOS package target compiles at the declared deployment target.
  • Linux/Windows portability builds pass the same parser contract.
  • Native/Chromium inset geometry/pixels and the existing 4,096-effect lifecycle/performance gate remain unchanged.

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

    bugSomething isn't workingvscode-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