Closed Bug 1909383 Opened 3 months ago Closed 3 months ago

[wpt-sync] Sync PR 47253 - Add support for calc-size() and interpolate-size to flex-basis.

Categories

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

task

Tracking

()

RESOLVED FIXED
130 Branch
Tracking Status
firefox130 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [wptsync downstream])

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

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

L. David Baron <dbaron@chromium.org> wrote:

Add support for calc-size() and interpolate-size to flex-basis.

This contains both the changes to support calc-size() and
interpolate-size on flex-basis, and the changes to support the content
keyword as the basis of a calc-size() expression.

There doesn't appear to be any code specifically testing for the
presence of the 'content' value, so we don't need to add a
blink::Length::HasContent() method and the code that would support it.

Bug: 313072, 353538495
Change-Id: Ic2f97688fbe78b47a53ee6c1559ddc4dea185729
Reviewed-on: https://chromium-review.googlesource.com/5715169
WPT-Export-Revision: 6dc091ce01b120eaf29079fe376e4809ad8f4d32

Component: web-platform-tests → CSS Parsing and Computation
Product: Testing → Core
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]

CI Results

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

Total 3 tests and 89 subtests

Status Summary

Firefox

OK : 3
PASS: 56
FAIL: 99

Chrome

OK : 3
PASS: 103
FAIL: 52

Safari

OK : 3
PASS: 61
FAIL: 94

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

Firefox-only Failures

  • /css/css-values/calc-size/calc-size-flex-basis-on-column.html [wpt.fyi]
    • resolved value for height resulting from flex-basis: min-content: FAIL
    • resolved value for height resulting from flex-basis: fit-content: FAIL
    • resolved value for height resulting from flex-basis: max-content: FAIL
    • resolved value for height resulting from flex-basis: content: FAIL
    • resolved value for height resulting from flex-basis: auto and height: auto: FAIL

New Tests That Don't Pass

  • /css/css-values/calc-size/calc-size-flex-basis-on-column.html [wpt.fyi]
    • resolved value for height resulting from flex-basis: min-content: FAIL (Chrome: PASS, Safari: PASS)
    • resolved value for height resulting from flex-basis: fit-content: FAIL (Chrome: PASS, Safari: PASS)
    • resolved value for height resulting from flex-basis: max-content: FAIL (Chrome: PASS, Safari: PASS)
    • resolved value for height resulting from flex-basis: content: FAIL (Chrome: PASS, Safari: PASS)
    • resolved value for height resulting from flex-basis: calc-size(any, 357px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(any, 220%): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(max-content, 350%): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(fit-content, 172px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(37px, 193px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(83px, size * 3): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(min-content, size / 0.25): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(max-content, size * 5.2): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(fit-content, size / 4 + 60px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(stretch, size * 2 - 10%): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(30px, 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(calc-size(any, 30px), 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(calc-size(2in, 30px), 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(calc-size(min-content, 30px), 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(calc-size(min-content, size), size * 3): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(auto, size): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(auto, size * 1.6 + 23px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(content, size): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(content, size * 1.6 + 23px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: auto and height: auto: FAIL (Chrome: PASS, Safari: PASS)
    • resolved value for height resulting from flex-basis: calc-size(auto, size * 3) and height: auto: FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: auto and height: calc-size(auto, size * 7): FAIL (Chrome: PASS, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(auto, size * 7) and height: calc-size(auto, size * 3): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: auto and height: calc-size(max-content, size + 12px): FAIL (Chrome: PASS, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(auto, size + 4px) and height: calc-size(fit-content, size + 12px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for height resulting from flex-basis: 372px and height: calc-size(fit-content, size + 12px): FAIL (Chrome: PASS, Safari: FAIL)
    • resolved value for height resulting from flex-basis: calc-size(content, size * 7) and height: 321px: FAIL (Chrome: FAIL, Safari: FAIL)
  • /css/css-values/calc-size/calc-size-flex-basis-on-row.html [wpt.fyi]
    • resolved value for width resulting from flex-basis: calc-size(any, 357px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(any, 31%): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(max-content, 31%): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(fit-content, 172px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(37px, 193px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(83px, size * 3): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(min-content, size / 2): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(max-content, size * 1.2): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(fit-content, size / 4 + 30px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(stretch, size / 2 - 10%): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(30px, 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(calc-size(any, 30px), 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(calc-size(2in, 30px), 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(calc-size(min-content, 30px), 15em): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(calc-size(min-content, size), size): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(auto, size): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(auto, size * 1.6 + 23px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(content, size): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(content, size / 2): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(auto, size * 2) and width: auto: FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: auto and width: calc-size(auto, size * 1.5 + 5px): FAIL (Chrome: PASS, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(auto, size + 14px) and width: calc-size(auto, size * 1.5): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: auto and width: calc-size(max-content, size + 12px): FAIL (Chrome: PASS, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(auto, size + 4px) and width: calc-size(fit-content, size + 12px): FAIL (Chrome: FAIL, Safari: FAIL)
    • resolved value for width resulting from flex-basis: 472px and width: calc-size(fit-content, size + 12px): FAIL (Chrome: PASS, Safari: FAIL)
    • resolved value for width resulting from flex-basis: calc-size(content, size * 1.5 + 4px) and width: 321px: FAIL (Chrome: FAIL, Safari: FAIL)
  • /css/css-values/calc-size/calc-size-parsing.tentative.html [wpt.fyi]
    • e.style['width'] = "calc-size(auto, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['min-width'] = "calc-size(auto, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['height'] = "calc-size(auto, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['min-height'] = "calc-size(auto, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['height'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['max-width'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['max-height'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['min-width'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['min-height'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['block-size'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['inline-size'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['max-block-size'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['max-inline-size'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['min-block-size'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['min-inline-size'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(fit-content, size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['height'] = "calc-size(min-content, size * 2)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['max-width'] = "calc-size(max-content, size / 2)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['max-height'] = "calc-size(fit-content, 30px + size / 2)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(fit-content, 50% + size / 2)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(any, 25em)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(any, 40%)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(any, 50px + 30%)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(10px, sign(size) * size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(30px, 25em)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(any, 30px), 25em)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(2in, 30px), 25em)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(min-content, 30px), 25em)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(min-content, size), size)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(30px)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(min(30px, 2em))" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(any, 30px))" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(fit-content)" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(fit-content, size * 2))" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['width'] = "calc-size(calc-size(30px))" should set the property value: FAIL (Chrome: PASS, Safari: FAIL)
    • e.style['flex-basis'] = "calc-size(any, 50px)" should set the property value: FAIL (Chrome: FAIL, Safari: FAIL)
    • e.style['flex-basis'] = "calc-size(auto, size)" should set the property value: FAIL (Chrome: FAIL, Safari: FAIL)
    • e.style['flex-basis'] = "calc-size(min-content, size)" should set the property value: FAIL (Chrome: FAIL, Safari: FAIL)
    • e.style['flex-basis'] = "calc-size(max-content, size)" should set the property value: FAIL (Chrome: FAIL, Safari: FAIL)
    • e.style['flex-basis'] = "calc-size(fit-content, size)" should set the property value: FAIL (Chrome: FAIL, Safari: FAIL)
    • e.style['flex-basis'] = "calc-size(content, size)" should set the property value: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ce3789ac1d55 [wpt PR 47253] - Add support for calc-size() and interpolate-size to flex-basis., a=testonly https://hg.mozilla.org/integration/autoland/rev/76fe5a24f0f9 [wpt PR 47253] - Update wpt metadata, a=testonly
You need to log in before you can comment on or make changes to this bug.