[wpt-sync] Sync PR 52577 - Make var() and attr() short-circuiting
Categories
(Core :: CSS Parsing and Computation, task, P4)
Tracking
()
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}
Assignee | ||
Updated•3 months ago
|
Assignee | ||
Comment 1•3 months ago
|
||
Assignee | ||
Comment 2•3 months ago
|
||
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
)
- Local with self-cycle:
- /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
)
- var() in attribute value substitutes locally:
- /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 Values and Units Test: attr:
- /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 Values and Units Test: CSS if() function cycles 2:
- /css/css-variables/variable-cycles.html [wpt.fyi]
- Cycle in unused fallback:
FAIL
(Chrome:FAIL
, Safari:FAIL
)
- Cycle in unused fallback:
- /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
)
- target6 --varC:
Assignee | ||
Comment 3•3 months ago
|
||
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
Assignee | ||
Comment 4•3 months ago
|
||
wpt-pr: 52577
wpt-type: metadata
Comment 6•3 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4075798f3466
https://hg.mozilla.org/mozilla-central/rev/7ee390ff2346
Description
•