You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WebScene now renders bounded single-function brightness(), grayscale(), contrast(), and blur() filters, but unchanged Code OSS also uses compound foreground lists such as blur(var(...)) saturate(...). The retained emitter recognizes only exact single functions, so even supported compound lists are silently omitted and authored filter order is lost.
Scope
Parse a bounded whitespace-separated foreground filter list in authored order.
Support numeric brightness(), grayscale(), contrast(), and saturate() plus pixel blur(), including repeated functions. saturate() adds the missing color-matrix primitive used by an unchanged Code OSS compound filter.
Emit kind 30 groups in reverse-authored nesting order and kind 31 closes in authored order, so SaveLayer restoration applies CSS functions left-to-right; enforce an explicit small function-count bound.
Keep unsupported functions and unresolved var()/calc() lists fail-closed until their own slices exist; never partially apply a compound list.
Preserve opacity, transforms, clips, descendants, teardown, and Skia/Flutter parity.
Add native retained-order and browser computed-value regression coverage.
Validation debt
Browser/native pixels, damage expansion, performance, memory, lifecycle, exact package, and CI gates remain required before release promotion but are deferred under the current implementation-throughput directive.
Implemented and merged by PR #488 at 0043fd5335a583e8c17d54f7cafc50314c13492d. It adds bounded all-or-nothing compound parsing, CSS-order saved-layer nesting, and saturation matrices across Skia/Flutter. CI tails were canceled; authored browser/native coverage and cumulative pixel/performance/memory/package validation remain recorded debt under #256/#235.
Activity
wieslawsoltes commentedon Sep 18, 2026
Implemented and merged by PR #488 at
0043fd5335a583e8c17d54f7cafc50314c13492d. It adds bounded all-or-nothing compound parsing, CSS-order saved-layer nesting, and saturation matrices across Skia/Flutter. CI tails were canceled; authored browser/native coverage and cumulative pixel/performance/memory/package validation remain recorded debt under #256/#235.