Open Bug 1973054 Opened 1 day ago Updated 1 day ago

[wpt-sync] Sync PR 53275 - Clamp the result of the CSS progress() function

Categories

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

task

Tracking

()

People

(Reporter: wpt-sync, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug, )

Details

(Whiteboard: [wptsync downstream])

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

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

Daniil Sakhapov <sakhapov@chromium.org> wrote:

Clamp the result of the CSS progress() function

This CL addresses https://github.com/w3c/csswg-drafts/issues/11825
by clamping the result of the function by default, but doesn't add
the unclamped keyword as it's being bickeshed now.

Also, test changes to container-progress() and media-progress()
tests are on hold before the bikesheding of the keyword is done,
those functions are to be dropped from CSS anyway.

The purpose of this CL is to update the default behavior asap,
as progress() is already shipped.

Bug: 425929508
Change-Id: I0145787fba6d70d4c3c286e5afaaef4c6d6ff762
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6654966
Reviewed-by: Anders Hartvoll Ruud \<andruud@chromium.org>
Commit-Queue: Daniil Sakhapov \<sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1476125}

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 1 tests and 20 subtests

Status Summary

Firefox

OK : 1
FAIL: 20

Chrome

OK : 1
PASS: 12
FAIL: 8

Safari

OK : 1
PASS: 12
FAIL: 8

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

Firefox-only Failures

  • /css/css-values/progress-computed.html [wpt.fyi]
    • progress(1, 0, 1) should be used-value-equivalent to 1: FAIL
    • progress(progress(1, 0, 1), progress(0px, 0px, 1px), progress(1deg, 0deg, 1deg)) should be used-value-equivalent to 1: FAIL
    • calc(progress(abs(5%), hypot(3%, 4%), 10%)) should be used-value-equivalent to 0: FAIL
    • progress(50em, 10em, 110em) should be used-value-equivalent to 0.4: FAIL
    • scale(progress(50em, 10rem, 110em)) should be used-value-equivalent to scale(1): FAIL
    • scale(progress(0em, 0rem, 0em)) should be used-value-equivalent to scale(0): FAIL
    • scale(progress(sign(1em - 1rem) * 1ex, 0rem, 0em)) should be used-value-equivalent to scale(0): FAIL
    • calc(progress(1, 0, 1) * 10px) should be used-value-equivalent to 10px: FAIL
    • calc(progress(1, 0, 1) * 1s) should be used-value-equivalent to 1s: FAIL
    • calc(progress(1, 0, 1) * 1deg) should be used-value-equivalent to 1deg: FAIL
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 10em, 2rem, 12em) / 2) should be used-value-equivalent to 0.4: FAIL
    • rotate3d(progress(21em, 1rem, 11em), progress(21em, 1rem, 11em), progress(21em, 1rem, 11em), calc(progress(11em, 1rem, 11em) * 2deg)) should be used-value-equivalent to rotate3d(2, 2, 2, 2deg): FAIL

New Tests That Don't Pass

  • /css/css-values/progress-computed.html [wpt.fyi]
    • progress(1, 0, 1) should be used-value-equivalent to 1: FAIL (Chrome: PASS, Safari: PASS)
    • progress(progress(1, 0, 1), progress(0px, 0px, 1px), progress(1deg, 0deg, 1deg)) should be used-value-equivalent to 1: FAIL (Chrome: PASS, Safari: PASS)
    • progress(sign(-10px) * 10px, (10px - 10px), 10px * progress(1deg, 0deg, 1deg)) should be used-value-equivalent to 0: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(100px, 0px, 50px) * 10px + 100px) should be used-value-equivalent to 110px: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(100, 0, sign(50px))) should be used-value-equivalent to 1: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(abs(5%), hypot(3%, 4%), 10%)) should be used-value-equivalent to 0: FAIL (Chrome: PASS, Safari: PASS)
    • progress(50em, 10em, 110em) should be used-value-equivalent to 0.4: FAIL (Chrome: PASS, Safari: PASS)
    • scale(progress(50em, 10rem, 110em)) should be used-value-equivalent to scale(1): FAIL (Chrome: PASS, Safari: PASS)
    • scale(progress(0em, 0rem, 0em)) should be used-value-equivalent to scale(0): FAIL (Chrome: PASS, Safari: PASS)
    • scale(progress(sign(1em - 1rem) * 1ex, 0rem, 0em)) should be used-value-equivalent to scale(0): FAIL (Chrome: PASS, Safari: PASS)
    • calc(progress(1, 0, 1) * 10px) should be used-value-equivalent to 10px: FAIL (Chrome: PASS, Safari: PASS)
    • calc(progress(1, 0, 1) * 1s) should be used-value-equivalent to 1s: FAIL (Chrome: PASS, Safari: PASS)
    • calc(progress(1, 0, 1) * 1deg) should be used-value-equivalent to 1deg: FAIL (Chrome: PASS, Safari: PASS)
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 10em, 2rem, 12em) / 2) should be used-value-equivalent to 0.4: FAIL (Chrome: PASS, Safari: PASS)
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 20em, 2rem, 12em) * 10) should be used-value-equivalent to 10: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 20em, 2rem, 12em) * 30) should be used-value-equivalent to 30: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 20em, 2rem, 12em) / 4) should be used-value-equivalent to 0.25: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 20em, 2rem, 12em) * 4) should be used-value-equivalent to 4: FAIL (Chrome: FAIL, Safari: FAIL)
    • calc(progress(sign(1001em - 10lh * progress(100px, 2rex, 10ex)) * 20em, 2rem, 12em) * 2) should be used-value-equivalent to 2: FAIL (Chrome: FAIL, Safari: FAIL)
    • rotate3d(progress(21em, 1rem, 11em), progress(21em, 1rem, 11em), progress(21em, 1rem, 11em), calc(progress(11em, 1rem, 11em) * 2deg)) should be used-value-equivalent to rotate3d(2, 2, 2, 2deg): FAIL (Chrome: PASS, Safari: PASS)
You need to log in before you can comment on or make changes to this bug.