Closed Bug 1966770 Opened 3 months ago Closed 3 months ago

[wpt-sync] Sync PR 52577 - Make var() and attr() short-circuiting

Categories

(Core :: CSS Parsing and Computation, task, P4)

task

Tracking

()

RESOLVED FIXED
140 Branch
Tracking Status
firefox140 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [wptsync downstream])

Attachments

(2 files)

Sync web-platform-tests PR 52577 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/52577
Details from upstream follow.

Anders Hartvoll Ruud <andruud@chromium.org> wrote:

Make var() and attr() short-circuiting

Following the resolution in Issue 11500, all substitution functions
should be short-circuiting. This CL implements this for var()
and attr(), behind the flag CSSShortCircuitVarAttr.

Note that env() already has the desired behavior, and therefore
no change is needed for env().

https://github.com/w3c/csswg-drafts/issues/11500

Bug: 397690639
Change-Id: If71326bc52a55524ecfd4d439d30ac09bf22fea3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530122
Reviewed-by: Munira Tursunova \<moonira@google.com>
Commit-Queue: Anders Hartvoll Ruud \<andruud@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1460882}

Component: web-platform-tests → CSS Parsing and Computation
Product: Testing → Core

CI Results

Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 6 tests and 31 subtests

Status Summary

Firefox

OK : 6
PASS: 46
FAIL: 96

Chrome

OK : 6
PASS: 130
FAIL: 12

Safari

OK : 6
PASS: 46
FAIL: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /css/css-mixins/dashed-function-cycles.html [wpt.fyi]
    • Local with self-cycle: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle reference without fallback makes result invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • Local with self-cycle in unused fallback: FAIL (Chrome: FAIL, Safari: FAIL)
    • Local shadowing cyclic property --x: FAIL (Chrome: PASS, Safari: FAIL)
    • Local shadowing cyclic outer local --x: FAIL (Chrome: PASS, Safari: FAIL)
    • Argument shadowing cyclic outer local --x: FAIL (Chrome: PASS, Safari: FAIL)
    • Arguments shadowing cyclic properties: FAIL (Chrome: PASS, Safari: FAIL)
    • Observing property cycle locally: FAIL (Chrome: PASS, Safari: FAIL)
    • Using cyclic values with no fallback: FAIL (Chrome: PASS, Safari: FAIL)
    • Self-cycle in non-used local variable: FAIL (Chrome: PASS, Safari: FAIL)
    • Using cyclic value in unused fallback: FAIL (Chrome: PASS, Safari: FAIL)
    • Using cyclic value in unused fallback (local): FAIL (Chrome: PASS, Safari: FAIL)
    • Dashed-function, self-cycle: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through other function (--g): FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through other function (--f): FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through local, self: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through unused local: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through global, self: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through local, other function: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through local, other function, fallback in function: FAIL (Chrome: PASS, Safari: FAIL)
    • Cycle through various variables and other functions: FAIL (Chrome: PASS, Safari: FAIL)
    • Function in a cycle with its own default: FAIL (Chrome: PASS, Safari: FAIL)
    • Cyclic defaults: FAIL (Chrome: PASS, Safari: FAIL)
    • Cyclic outer --b shadows custom property: FAIL (Chrome: PASS, Safari: FAIL)
    • Locals are function specific: FAIL (Chrome: PASS, Safari: FAIL)
  • /css/css-mixins/local-attr-substitution.html [wpt.fyi]
    • var() in attribute value substitutes locally: FAIL (Chrome: PASS, Safari: FAIL)
    • var() in attribute value substitutes locally, argument: FAIL (Chrome: PASS, Safari: FAIL)
    • var() in attribute value substitutes locally, typed: FAIL (Chrome: PASS, Safari: FAIL)
    • attr() fallback substitutes locally: FAIL (Chrome: PASS, Safari: FAIL)
    • attr() cycle through local: FAIL (Chrome: PASS, Safari: FAIL)
    • attr() cycle through unused fallback in local: FAIL (Chrome: FAIL, Safari: FAIL)
    • attr() cycle through function: FAIL (Chrome: PASS, Safari: FAIL)
  • /css/css-values/attr-cycle.html [wpt.fyi]
    • CSS Values and Units Test: attr: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 1: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 2: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 3: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 4: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 5: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 6: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 7: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 8: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 9: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 10: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 11: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 12: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 14: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 15: FAIL (Chrome: FAIL, Safari: FAIL)
    • CSS Values and Units Test: attr 16: FAIL (Chrome: FAIL, Safari: FAIL)
    • CSS Values and Units Test: attr 17: FAIL (Chrome: FAIL, Safari: FAIL)
    • CSS Values and Units Test: attr 18: FAIL (Chrome: FAIL, Safari: FAIL)
    • CSS Values and Units Test: attr 20: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: attr 21: FAIL (Chrome: PASS, Safari: FAIL)
  • /css/css-values/if-cycle.html [wpt.fyi]
    • CSS Values and Units Test: CSS if() function cycles 2: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 3: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 6: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 7: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 8: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 10: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 11: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 14: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 15: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 16: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 17: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 18: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 19: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 20: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 21: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 22: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 23: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 24: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 25: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 26: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 27: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 28: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 29: FAIL (Chrome: FAIL, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 30: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 31: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 32: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 33: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 34: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 35: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 36: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 37: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 38: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 39: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 40: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 41: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 42: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 43: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 44: FAIL (Chrome: PASS, Safari: FAIL)
    • CSS Values and Units Test: CSS if() function cycles 45: FAIL (Chrome: PASS, Safari: FAIL)
  • /css/css-variables/variable-cycles.html [wpt.fyi]
    • Cycle in unused fallback: FAIL (Chrome: FAIL, Safari: FAIL)
  • /css/css-variables/variable-substitution-variable-declaration.html [wpt.fyi]
    • target6 --varC: FAIL (Chrome: FAIL, Safari: FAIL)
    • target7 --varC: FAIL (Chrome: FAIL, Safari: FAIL)
    • target9 --varB: FAIL (Chrome: FAIL, Safari: FAIL)
    • target9 --varC: FAIL (Chrome: FAIL, Safari: FAIL)

Automatic update from web-platform-tests
Make var() and attr() short-circuiting

Following the resolution in Issue 11500, all substitution functions
should be short-circuiting. This CL implements this for var()
and attr(), behind the flag CSSShortCircuitVarAttr.

Note that env() already has the desired behavior, and therefore
no change is needed for env().

https://github.com/w3c/csswg-drafts/issues/11500

Bug: 397690639
Change-Id: If71326bc52a55524ecfd4d439d30ac09bf22fea3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6530122
Reviewed-by: Munira Tursunova <moonira@google.com>
Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1460882}

--

wpt-commits: 649319c229a6037ad25250a4f006bf605e986e81
wpt-pr: 52577

Pushed by aborovova@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4075798f3466 [wpt PR 52577] - Make var() and attr() short-circuiting, https://hg.mozilla.org/integration/autoland/rev/7ee390ff2346 [wpt PR 52577] - Update wpt metadata,
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: