Status Update
Comments
ds...@chromium.org <ds...@chromium.org> #2
al...@chromium.org <al...@chromium.org> #3
ds...@chromium.org <ds...@chromium.org> #4
[Deleted User] <[Deleted User]> #5
div { height: calc(auto * 0); }
div:focus { height: calc(auto * 1); transition: height 1s linear; }
That would allow the animation to still be defined in terms of computed values.
If changing the calc() specification to support this is unlikely, then we could still have support for this internally in CalculationValue, and emit such values during interpolation when we see (for example):
div { height: 0; }
div:focus { height: auto; transition: height 1s linear; }
But as alancutter points out, it would require changes in the relevant specifications.
ti...@chromium.org <ti...@chromium.org> #6
mi...@chromium.org <mi...@chromium.org> #7
ds...@chromium.org <ds...@chromium.org> #8
er...@chromium.org <er...@chromium.org> #9
ti...@chromium.org <ti...@chromium.org> #10
sh...@chromium.org <sh...@chromium.org> #11
db...@chromium.org <db...@chromium.org> #12
[Monorail components: Blink>Layout]
db...@chromium.org <db...@chromium.org> #13
gi...@appspot.gserviceaccount.com <gi...@appspot.gserviceaccount.com> #14
commit 23c9ed2e467ff7ef8c3cbcbd3228cc1eb9f128de
Author: L. David Baron <dbaron@chromium.org>
Date: Mon Jan 22 19:49:00 2024
Reduce copying of hash map of color channel keyword values in CSS expression parsing.
This reduces copying of the hash map of color channel keyword values in two ways:
* passing by const reference instead of by value
* storing (a const reference) as a member of CSSMathExpressionNodeParser
rather than passing between member functions
My underlying motivation for this change is that the latter will make it
easier to create a class/struct to contain state that varies over the
expression tree, and then add more things to that set of state.
Bug: 1447327, 313072
Change-Id: I8bd6c25c55c529151831aa9736636805080c0d72
Reviewed-on:
Reviewed-by: Aaron Krajeski <aaronhk@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1250368}
[modify]
[modify]
[modify]
is...@google.com <is...@google.com> #15
[Multiple monorail components: Blink>Animation, Blink>Layout]
[Monorail mergedwith:
[Monorail components added to Component Tags custom field.]
db...@chromium.org <db...@chromium.org> #16
I'm going to submit a bunch of CLs shortly that implement some basic support for calc-size()
-- enough that some things work. However, there are also still a whole bunch of pieces that I know that don't work, some of which I'm in the middle of working on.
ap...@google.com <ap...@google.com> #17
Branch: main
commit 4dcda84635c3862098b1f697c9bf65c2285a5125
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 08 23:52:51 2024
Convert is_percentage_allowed in CSS math function parsing to base::EnumSet.
This converts a boolean to an enum class and a base::EnumSet.
This is done in preparation for making the code also have a flag for
whether calc-size() is allowed. This also makes the code a bit clearer
at the caller, although also more verbose.
Bug: 313072
Change-Id: I5302d28f1078bd2c5d4d0228e65920f4ae3c1d67
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258243}
M third_party/blink/renderer/core/animation/interpolable_value_test.cc
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_math_expression_node_test.cc
M third_party/blink/renderer/core/css/cssom/css_numeric_value.cc
M third_party/blink/renderer/core/css/properties/css_color_function_parser.cc
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
ap...@google.com <ap...@google.com> #18
Branch: main
commit b71feded4d0fb46978de9181168476d737743665
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 08 23:52:37 2024
Add CSSCalcSizeFunction feature flag to prototype CSS calc-size().
Bug: 313072
Change-Id: I4742c565b93d8cf070f239fad2e16d5224e9de4e
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258242}
M third_party/blink/renderer/platform/runtime_enabled_features.json5
ap...@google.com <ap...@google.com> #19
Branch: main
commit d2b42ddb44588c46bb49136edb44d0d537870c1b
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 08 23:57:54 2024
Implement classes to represent CSS sizing keywords in calc-size() expressions.
Bug: 313072
Change-Id: I96de88870a245985fd35b918780eb751c48212ea
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258248}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_value_keywords.json5
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
ap...@google.com <ap...@google.com> #20
Branch: main
commit dbff9fd9ce5ff76566e49692e86a2f79cdad08d1
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 08 23:56:56 2024
Implement storage of calc-size() in CSS math expressions.
Bug: 313072
Change-Id: I596d5d2b13270818288e542f89023a27999fee02
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258247}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_math_operator.cc
M third_party/blink/renderer/core/css/css_math_operator.h
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
ap...@google.com <ap...@google.com> #21
Branch: main
commit 52a8eae58114ac62348413d30e4f18d3cc045a1b
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 08 23:56:36 2024
Pass through information to decide whether to parse CSS calc-size() function.
Bug: 313072
Change-Id: I8d9a1002f37dcd034fc937b72554fa16148fe173
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258246}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_value_keywords.json5
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
M third_party/blink/renderer/core/css/properties/css_parsing_utils.h
ap...@google.com <ap...@google.com> #22
Branch: main
commit 7f9d7ca2abcd10a3a866c9c215d75f45badc44ff
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:00:28 2024
Implement parsing of CSS calc-size() expressions.
Bug: 313072
Change-Id: Ia8babf2a3f147a2454fbc1133617b15ffa1c1463
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258253}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/properties/css_parsing_utils.h
ap...@google.com <ap...@google.com> #23
Branch: main
commit b80e876db98d194a97085cbab4d10674c6f663d5
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:01:40 2024
Parse the size keyword inside the calculation part of the CSS calc-size() function.
Bug: 313072
Change-Id: Ibffb8ee14c2ea3dccd8438ea2a4ded3736957a08
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258255}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
ap...@google.com <ap...@google.com> #24
Branch: main
commit 7e6b7157209bcbcfab0d61414f9e4a3edb97dbea
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:01:24 2024
Create a struct for CSSMathExpressionNodeParser's state.
This builds on
adding additional state (for whether the 'size' keyword is accepted)
that varies within an expression.
Bug: 313072
Change-Id: I52053af5811629e58a5ae165219d04cf3734cf07
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258254}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
ap...@google.com <ap...@google.com> #25
Branch: main
commit a881ee6e6cfbb6ed3ede3c8b7b2f3d61a3c2ad23
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:53:10 2024
Make calc-size() influence Length::IsContentOrIntrinsic().
Bug: 313072
Change-Id: I994c53fa615794606766a4bb15c351541f43fd76
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258286}
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #26
Branch: main
commit 71270dae3108a128d14efdaf5c612e4bb778a5bb
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:52:12 2024
Implement evaluation of size keyword inside the CSS calc-size() function.
Bug: 313072
Change-Id: I65856fe024e34a7ff268926134e0b4ffc67b5be4
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258285}
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #27
Branch: main
commit ff01b01dcb42d90dec55f8a62251b54540fd320b
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:51:57 2024
Create a struct for inputs to length evaluation.
This puts the existing AnchorEvaluator in a struct so that we can pass
additional data along with it (for resolution of the 'size' keyword in
calc-size()).
Bug: 313072
Change-Id: Ifb731a341e5f025af34d6232621b8afc9d9383dd
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258284}
M third_party/blink/renderer/core/css/calculation_expression_anchor_query_node.cc
M third_party/blink/renderer/core/css/calculation_expression_anchor_query_node.h
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node_test.cc
M third_party/blink/renderer/core/layout/absolute_utils.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc
M third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
M third_party/blink/renderer/platform/geometry/calculation_expression_node_test.cc
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
M third_party/blink/renderer/platform/geometry/length_functions.cc
M third_party/blink/renderer/platform/geometry/length_functions.h
M third_party/blink/renderer/platform/geometry/length_test.cc
ap...@google.com <ap...@google.com> #28
Branch: main
commit 519df81595e289da8aa3b41082fdf61f6ac95aa8
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:57:10 2024
Add tests for animation of CSS calc-size().
Bug: 313072
Change-Id: Iffb1d69673a24a5e13e6a88606e5f9f4b0215de3
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258293}
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #29
Branch: main
commit b3f94cae5c96df55f9c2b6b087985c23f08c9acd
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:56:48 2024
Add tests for CSS calc-size() function.
Change-Id: I7ced1651bc3b4fd5a863a3c4388f035de632cd0b
Bug: 313072
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258292}
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width.tentative-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width.tentative.html
ap...@google.com <ap...@google.com> #30
Branch: main
commit ac7cacc1a4ce02319615b469ed4f3bad41973e1f
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Feb 09 00:55:57 2024
Implement evaluation of intrinsic size keywords in calc-size() function.
Bug: 313072
Change-Id: Ie31d5987de91450b0c5039e82fba5ecb0a4bd28d
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258291}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #31
Branch: main
commit 67619a78030a71b800410632aeeca46d9c724c52
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Feb 27 20:54:28 2024
Rename IsContentOrIntrinsic to HasContentOrIntrinsic, etc.
This renames IsContentOrIntrinsic to HasContentOrIntrinsic, and
IsAutoOrContentOrIntrinsic to HasAutoOrContentOrIntrinsic, since with
calc-size() they also consider values within the expression and not just
the toplevel value.
Bug: 313072
Change-Id: Idda49c0ca0e06051fdd6941dd092e2f48199c055
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266045}
M third_party/blink/renderer/core/layout/absolute_utils.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
M third_party/blink/renderer/core/style/grid_track_size.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #32
Branch: main
commit 6affc270e922857113ccd6479457456193d9d817
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Feb 27 21:02:17 2024
In a few cases, check whether calc() values have percents rather than assuming they do.
This starts the path of treating calc() values that don't have percent
values within them (but instead have intrinsic sizes in them) as not
having percents.
This gets height: calc-size() working in a few useful cases.
This adds tests for height animation. Of the four sets of tests, only
the second set currently passes. The last two sets require further work
on correctly propagating whether a value has percentages through
animations. The first set requires implementing support for 'auto'
values in 'calc-size()'.
This also adds tests for static values of height. These all pass except
for the tests that depend on percentages resolving to zero in the cases
where the value was not treated as being a percentage value.
Bug: 313072
Change-Id: Iecf12450ac7df0c7c347a50f0f3664ae388cbfae
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266054}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.tentative-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width.tentative.html
ap...@google.com <ap...@google.com> #33
Branch: main
commit 11a72e32bf60ed0234b13e7ac1ab773cd1487f80
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Feb 27 21:01:58 2024
Add HasPercent method to blink::Length.
This lets us start treating some calc() values that don't have percent
values within them (but instead have intrinsic sizes in them) as not
having percents.
Bug: 313072
Change-Id: I571274843842023bb69f7c6427e037d30877e47a
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266053}
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #34
Branch: main
commit cb41f69a702a95782ff9734420c88e27a6318f4a
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 29 14:53:32 2024
Rename CalculationResultCategory::kCalcPercentLength to kCalcLengthFunction.
This renames the value to reflect that it represents not only mixes of
percentages and lengths, but also anchor queries and intrinsic size
keywords in calc-size().
Bug: 1309178, 313072
Change-Id: Iad3b1b40a6353ada94030f588cd8ce11749dc94f
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266976}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_primitive_value.cc
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
M third_party/blink/renderer/core/svg/svg_length.cc
ap...@google.com <ap...@google.com> #35
Branch: main
commit 9fe3ea08a1b9ed79c1932ced6a82a211e6a792f4
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 29 14:54:20 2024
Rename CSSMathExpressionOperation::InvolvesPercentage to InvolvesLayout.
This renames the function to make it clear that it includes (as it does
now) and intends to include anchor queries and calc-size() keywords in
addition to percentages. This also documents the behavior (and how it
differs from HasPercentage) more clearly. (My next CL will change
HasPercentage.)
Bug: 1309178, 313072
Change-Id: I48949b2b1ef1623c56e158038a88db9cb7a05440
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266977}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_primitive_value.cc
M third_party/blink/renderer/core/css/css_primitive_value.h
ap...@google.com <ap...@google.com> #36
Branch: main
commit 8ec6f181f19ad8878cab8ec0c504bf2d10a79d95
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 29 15:08:44 2024
Make CSSMathExpressionOperation::HasPercentage not count anchor queries and calc-size() keywords.
This accounts for the possibility that kCalcLengthFunction (previously
known as kCalcPercentLength) does not signal the presence of
percentages. In particular, the category can be kCalcLengthFunction
because of mixing of lengths and percentages, because of anchor queries,
and because of calc-size() keywords.
This also adds comments explaining the difference between HasPercentage
and InvolvesLayout (previously InvolvesPercentage).
This also fixes HasPercentage to propagate the percentage only from the
basis argument of the calc-size() and not from the calculation argument.
This fixes problems for calc-size() animations, which could end up
including percentages when they should not, which would break layouts
when there was no value for the percentages to resolve against.
Bug: 1309178, 313072
Change-Id: I239a8c935e74c1c53d125c2291d87934562903af
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266986}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
ap...@google.com <ap...@google.com> #37
Branch: main
commit eae6e7f6584d4f1d66f22ceea4f429612aa95163
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 29 15:09:36 2024
Propagate has_explicit_pixels/has_explicit_percent when creating InterpolableLength.
Bug: 313072
Change-Id: I13684817e0b2f9228a025cdc59d7a80abcb9eb07
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1266987}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
ap...@google.com <ap...@google.com> #38
Branch: main
commit 5010325e3879c6e5f97b6dc699e570a34ac04184
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Feb 29 21:16:33 2024
Don't implement ToPixelsAndPercent for calc-size operations.
Bug: 313072
Change-Id: I24cbf70834f1fca1ce0cab5ab7351c1d6ac99950
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1267201}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
D third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.tentative-expected.txt
ap...@google.com <ap...@google.com> #39
Branch: main
commit e3422c13b8bc6c34f3438128c29203ab5cb1d15f
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Mar 05 15:18:24 2024
Push computation of MinMaxSizes into ResolveInlineLengthInternal.
Bug: 313072
Change-Id: If6444b162dc220969674cb24360e048e5fe03ae8
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1268455}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
ap...@google.com <ap...@google.com> #40
Branch: main
commit 38f8be1ccac3c11ff6c9c111541d51955024d75c
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Mar 05 15:18:13 2024
Make length_utils functions use base::FunctionRef instead of templates.
This changes length_utils functions that were previously templatized
over callback functions to instead take base::FunctionRef. It moves the
ones that were not inline into length_utils.cc as well (except for
ComputeMinAndMaxContentContributionForSelf, which is changed to be
inline).
Bug: 313072
Change-Id: I017801e183ec9925bb74500ceb32872f267a8365
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1268454}
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
ap...@google.com <ap...@google.com> #41
Branch: main
commit c6ab594ab88f8512d273f62546cc5cb71ba65a46
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Mar 05 18:20:50 2024
Treat indefinite percentages in calc-size() calculation as 0.
This makes us correctly treat percentages in a calc-size() calculation
as zero in contexts where percentages are not definite.
Previously the tests I had for this passed because they were resolving
against -1 (kIndefiniteSize) and then the result was being clamped.
This adds a test (the "calc-size(any, 31% + 12px)" case) for a case
where that doesn't work correctly.
Bug: 313072
Change-Id: I37660a4c259cf02233d19659301f337077d30436
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1268559}
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.tentative.html
ap...@google.com <ap...@google.com> #42
Branch: main
commit c1b2f0b50b093450b345a96c2f7ba823ac74f0f3
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 07 16:39:43 2024
Move handling of many auto and unresolvable length cases into Resolve*LengthInternal.
Moving the handling of these into ResolveInlineLengthInternal and
ResolveBlockLengthInternal (from their callers) is needed to support
calc-size(auto, ...).
Bug: 313072
Bug: 328572265
Change-Id: I731808da198ed26495bfd5a2ad5850cec616409a
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1269622}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
ap...@google.com <ap...@google.com> #43
Branch: main
commit 7cd2d39e1c10023d04f60802db402516e8ea0548
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Mar 08 02:54:36 2024
Remove unneeded BlockLengthUnresolvable from ResolveMaxBlockLength.
I missed the review comment about this in
Bug: 313072
Change-Id: I4a6725b4cc63d561120084307ba26c7f7a42ba31
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1269982}
M third_party/blink/renderer/core/layout/length_utils.h
ap...@google.com <ap...@google.com> #44
Branch: main
commit e136a68b75f3059922df378d76fd83f6202ada88
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Mar 13 19:46:53 2024
Push resolution of auto into ResolveInlineLengthInternal.
This pushes the resolution of 'auto' values into other values into
ResolveInlineLengthInternal. This is needed to support auto values
inside of calc-size().
Bug: 313072
Change-Id: Ieaaa46245ea09db3ecfe93af6e2edc6c29295775
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1272362}
M third_party/blink/renderer/core/layout/absolute_utils.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
M third_party/blink/renderer/core/layout/length_utils_test.cc
ap...@google.com <ap...@google.com> #45
Branch: main
commit 098489552edca8820cd901e82d19da9c9f200f55
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Mar 13 19:56:05 2024
Add support for auto keyword in CSS calc-size().
This adds support for the auto keyword in calc-size() by adding the
small changes needed through the whole pipeline: parsing, storage, and
layout. The layout change here is only a single change to activate the
changes in the dependent CLs.
This adds a number of tests for auto. The existing tests for animation
from a neutral keyframe to calc-size(auto, size) do not yet work, but
animation between calc-size(auto, ...) values works (as shown by the new
tests).
Bug: 313072
Change-Id: Ibe0c1597eef0bf442f58375da70ea5a12b620acd
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1272370}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
M third_party/blink/renderer/core/css/properties/css_parsing_utils.h
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width.tentative.html
ap...@google.com <ap...@google.com> #46
Branch: main
commit d0a4c3ccf23820bb4bc279610dbdb78c8ef744b2
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Mar 13 19:55:45 2024
Push resolution of auto into ResolveBlockLengthInternal.
This pushes the resolution of 'auto' values into other values into
ResolveBlockLengthInternal. This is needed to support auto values
inside of calc-size().
Bug: 313072
Change-Id: I18b2657fc441de70c681da7a4d66f4d46327e32b
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1272369}
M third_party/blink/renderer/core/layout/absolute_utils.cc
M third_party/blink/renderer/core/layout/column_layout_algorithm.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
M third_party/blink/renderer/core/layout/length_utils_test.cc
ap...@google.com <ap...@google.com> #47
Branch: main
commit 5f47ae50bde90237d536d20315150c9128a20fd0
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Mar 20 19:33:25 2024
Add animation support for sizing keywords as lengths.
This adds animation support for sizing keywords as lengths, and uses it
only when calc-size() is enabled. It then forbids animating the values.
Future CLs will be needed to make some cases interpolate (but some cases
should not interpolate, and we don't have all the infrastructure to
distinguish them yet).
This also adds a lot of tests for what should eventually work. The
failures of the new tests are either because the above interpolation
support hasn't been added, or because we don't support the stretch
keyword yet.
Bug: 313072
Change-Id: I7f00e423ca155bdceace224ae34041ce458d063d
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1275775}
M third_party/blink/renderer/core/animation/css_length_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_length_interpolation_type.h
M third_party/blink/renderer/core/animation/css_length_list_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_text_indent_interpolation_type.cc
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/animation/interpolable_length.h
M third_party/blink/renderer/core/animation/length_property_functions.cc
M third_party/blink/renderer/core/animation/length_property_functions.h
A third_party/blink/web_tests/external/wpt/css/css-sizing/animation/height-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-height-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-width-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-width-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-height-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-width-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-width-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/animation/width-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/width-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #48
Branch: main
commit de0887821925ea5bd5caf083429cd5434a33d695
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 21 01:28:19 2024
Simplify arithmetic operations on calc-size() during animation.
This tries to ensure that math done by the animation code keeps
calc-size() at the top level of an expression rather than creating
arithmetic operations containing calc-size() expressions. This is a
step towards following the spec's rules that calc-size() cannot be
nested within calc() expressions. It also makes it easier for animation
code to examine calc-size() values since they are always at the top
level of the expression.
Bug: 313072
Change-Id: I37ca94bcf3c0897f83fa84ed56f367522dc5c5e7
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1275978}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/animation/interpolable_value.cc
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/height-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-height-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-width-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-height-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-width-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/width-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.tentative.html
ap...@google.com <ap...@google.com> #49
Branch: main
commit aa21e4ddd81954cda7eb1ff8b1270fed5bf1445c
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 21 18:17:48 2024
Limit use of calc-size() within other expression contexts.
This restricts the use of calc-size() to the toplevel expression and to
the basis of another calc-size() expression. (It should eventually also
be allowed in mix() when we support that.) It implements the
restriction in the same way that the spec describes it: based on the
idea that its type is not a length.
Bug: 313072
Change-Id: I157a16fee67674511f22f7d604c259c2230ab79c
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1276371}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/css_primitive_value.cc
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
ap...@google.com <ap...@google.com> #50
Branch: main
commit 50cb6556ecbb2a84a0226d8adfa3ae7bcffc2e73
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 21 22:03:04 2024
Implement rules for when we can interpolate calc-size() expressions.
This starts interpolating between two calc-size() expressions, or
between calc-size() expressions and keywords. It supports most of the
cases where we should do so, though leaves some TODOS for calc-size()
nested within the basis.
The failing tests related to lack of support for the 'stretch' keyword.
Bug: 313072
Change-Id: Ie36719cad46649d5c1f449adbc6d4ad4dfc96308
Reviewed-on:
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1276526}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/animation/interpolable_length.h
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #51
Branch: main
commit a815a0f238bedeea5b85b7c6783d2c5d2cf29de3
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 21 22:04:16 2024
Add flag for testing compatibility of CSS sizing keyword animation.
This adds the CSSSizingKeywordAnimation flag to RuntimeEnabledFeatures.
When enabled, this allows animations between values like auto,
min-content, fit-content, etc. and lengths or percentages.
Bug: 313072
Change-Id: I877cffea419adb4617934ffeeab3a992b541c96b
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1276528}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/platform/runtime_enabled_features.json5
M third_party/blink/web_tests/VirtualTestSuites
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/README.md
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/height-composition-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/height-interpolation-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/max-height-interpolation-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/max-width-interpolation-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-height-composition-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-height-interpolation-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-width-composition-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-width-interpolation-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/width-composition-expected.txt
A third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/width-interpolation-expected.txt
ap...@google.com <ap...@google.com> #52
Branch: main
commit 9039aeb7691e0db6009bbf7850a3fb3a5989354c
Author: L. David Baron <dbaron@chromium.org>
Date: Mon Mar 25 17:03:11 2024
Mark calc-size() animation tests as needing longer timeout.
Bug: 313072
Fixed: 330918800
Change-Id: I1b745dba4ab235b72420c8b05b716ff5a09b2fc6
Reviewed-on:
Commit-Queue: Robert Flack <flackr@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1277731}
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #53
Branch: main
commit 05dae7dbf633fa9938ccf2c426d22696eb60f2bb
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 28 16:06:06 2024
Reduce number of test_no_interpolation tests between sizing keywords.
This removes some excessive tests that were making the tests slow.
Bug: 313072
Change-Id: I3ce49ce634930849798df74e4a40bdf4656c4b78
Reviewed-on:
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1279693}
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #54
Branch: main
commit 28afca84d1300986fd06e0666006a3e4b934971a
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 28 20:20:01 2024
Restore long timeout for calc-size animation tests.
This reverts part of
because there has been one timeout of each test since it landed:
Bug: 313072, 330918800
Change-Id: I31bb7748fedae79239b458450b9607e5e42df5a3
Reviewed-on:
Auto-Submit: David Baron <dbaron@chromium.org>
Commit-Queue: Robert Flack <flackr@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1279897}
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #55
Branch: main
commit 8414742082625a55b9fbf5adbd758d59c44b8402
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 28 22:04:13 2024
Convert some uses of Length::IsAuto to HasAuto.
This is the result of auditing all callers of Length::IsAuto and either:
* deciding they were fine as IsAuto
* converting them to HasAuto, or
* adding further TODO comments.
This is needed for correct behavior of calc-size(auto, ...) in some
cases.
Bug: 313072
Change-Id: I90aaa166985c69de656eb819182300c07c1bf597
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1279913}
M third_party/blink/renderer/core/frame/smart_clip.cc
M third_party/blink/renderer/core/html/html_image_fallback_helper.cc
M third_party/blink/renderer/core/inspector/inspector_highlight.cc
M third_party/blink/renderer/core/layout/absolute_utils.cc
M third_party/blink/renderer/core/layout/block_layout_algorithm.cc
M third_party/blink/renderer/core/layout/block_node.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.h
M third_party/blink/renderer/core/layout/flex/flexible_box_algorithm.cc
M third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
M third_party/blink/renderer/core/layout/layout_box.cc
M third_party/blink/renderer/core/layout/layout_image.cc
M third_party/blink/renderer/core/layout/layout_utils.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/svg/layout_svg_image.cc
M third_party/blink/renderer/core/layout/table/table_layout_algorithm.cc
M third_party/blink/renderer/core/style/grid_track_size.h
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #56
Branch: main
commit c225a0dbf68d7ae25a706a58fb7e36591cb44315
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Mar 28 22:13:20 2024
Fix conversion test in CSSLengthInterpolationType::MaybeConvertInherit.
This check for IsAuto was really checking whether the GetLength
succeeded; it is now possible for GetLength to succeed while setting the
length to auto.
The web-animations/responsive/width.html is only tangentially related,
since it was written when I thought this was really testing for 'auto'.
The existing failure in that test matches existing failures in other
tests in the same directory, on which it was modeled.
The change to
external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
does test the fix.
I added tracking of the boolean in the InheritedLengthChecker despite
that I can't think of a case where it matters today. I think it's the
right thing given the function semantics, and not doing so could lead to
subtle bugs given future changes to LengthPropertyFunctions::GetLength.
(This was part of auditing uses of Length::IsAuto() to convert the
necessary ones to HasAuto().)
Bug: 313072
Change-Id: I5f7e5efe0d6f1b6ca598130ba50b06c65f3c721d
Reviewed-on:
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1279929}
M third_party/blink/renderer/core/animation/css_length_interpolation_type.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
A third_party/blink/web_tests/external/wpt/web-animations/responsive/width-expected.txt
A third_party/blink/web_tests/external/wpt/web-animations/responsive/width.html
ap...@google.com <ap...@google.com> #57
Branch: main
commit d9707bb2177278631cbfeeaa52fd395ebafc9fd1
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Mar 29 13:27:40 2024
Fix check in GridSet constructor to handle CSS calc().
This is the result of auditing all callers of Length::IsPercent, to find
things that would cause incorrect behavior with calc() and/or
calc-size().
In the long term, this check and many others in this file should
probably handle calc-size() (since I think we *probably* should support
calc-size() for grid track sizes), but for now just fix this one check
that is inconsistent with the rest.
Without this change, the modified test fails a DCHECK() in
GridSizingTrackCollection::InitializeSets().
Bug: 313072
Change-Id: I0b0da3ffcc1e4bdbff3d4463f345ff1f456a93f2
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1280149}
M third_party/blink/renderer/core/layout/grid/grid_track_collection.cc
M third_party/blink/web_tests/external/wpt/css/css-grid/layout-algorithm/grid-fit-content-percentage.html
ap...@google.com <ap...@google.com> #58
Branch: main
commit 992b1ba295789c45c51899c415185db235d591db
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Mar 29 22:46:38 2024
Convert Length::IsPercentOrCalcOrStretch to HasPercentOrStretch.
This new function excludes calc() expressions that do not have
percentages or stretch, which can happen with either anchor queries or
calc-size().
Converting all callers of the existing function seems correct (although
some of the callers are optimizations where it's not required).
This also corrects the error, originally introduced in
calc-size(-webkit-fill-available, ...) was reporting true for
HasContentOrIntrinsic(), which was not the case for
-webkit-fill-available alone.
Bug: 313072
Change-Id: Ie3a096c8c02013465c961b40a47dffdd85ce0f4f
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1280389}
M third_party/blink/renderer/core/layout/block_node.cc
M third_party/blink/renderer/core/layout/grid/grid_item.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #59
Branch: main
commit 420a92c3e960dc443b869120951c0ef864b9abd6
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Apr 04 22:13:33 2024
Convert many callers of Length::IsPercentOrCalc().
By the time we have a Length, only calc() expressions involving
percentages that are resolved during layout, anchor(), or calc-size()
should still be represented as calculations. So prior to anchor() and
calc-size(), IsPercentOrCalc() made sense conceptually.
This converts many callers to Length::HasPercent(). For some of these
callers the difference matters for calc-size() correctness; for some it
does not currently matter (because the values can't contain calc-size())
and either one would be correct. This conversion can also affect the
behavior when anchor() is used in a calc() expression (and percentages
are not).
Some other callers are converted to either (a) explicitly checking
Length::IsPercent() || Length::IsCalculated(), or (b) checking
!Length::IsFixed().
Callers that are using IsPercentOrCalc() to either:
(a) optimize away computation of the percentage basis (max_value), or
(b) optimize away handling of changes to the percentage basis
are left as-is. These uses could be converted to a function that is
similar to HasPercent but also accounts for percentages like the one in
calc-size(any, 30%) that do depend on the percentage basis but do not
act like a percentage-typed value. The function should probably be
renamed to account for this, and its implementation could perhaps be
changed as well, but this is not done in this CL.
Bug: 313072
Change-Id: I176abec7a6a03b3cf9975c5107ea32691f305d0f
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1282785}
M third_party/blink/renderer/core/animation/css_font_size_interpolation_type.cc
M third_party/blink/renderer/core/animation/length_property_functions.cc
M third_party/blink/renderer/core/css/properties/computed_style_utils.cc
M third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
M third_party/blink/renderer/core/html/forms/text_control_inner_elements.cc
M third_party/blink/renderer/core/layout/block_layout_algorithm.cc
M third_party/blink/renderer/core/layout/block_node.cc
M third_party/blink/renderer/core/layout/grid/grid_track_collection.cc
M third_party/blink/renderer/core/layout/layout_inline.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/relative_utils.cc
M third_party/blink/renderer/core/layout/table/table_layout_algorithm.cc
M third_party/blink/renderer/core/layout/text_autosizer.cc
M third_party/blink/renderer/core/paint/background_image_geometry.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #60
Branch: main
commit c4006cffaabe564320f653d9817528eba1a8a645
Author: L. David Baron <dbaron@chromium.org>
Date: Mon Apr 08 20:31:29 2024
Expose Length::HasStretch().
This is already on CalculationExpressionNode, but this exposes it on
Length as well. This is needed by
Bug: 313072
Change-Id: Id227ec6d51293c3b088da9ae9a7dcf1fc446ba7d
Reviewed-on:
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1284076}
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #61
Branch: main
commit 08d9c71ac53457e12fa84e0985944179df9c0a72
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Apr 24 19:37:07 2024
Rename Length::IsPercentOrCalc to MayHavePercentDependence.
Following
remaining callers of Length::IsPercentOrCalc are all callers that are
making an optimization to check whether they can optimize away a
computation of the percentage basis or they need to handle a change to
the percentage basis.
This renames Length::IsPercentOrCalc to Length::MayHavePercentDependence
so that callers who might have previously used IsPercentOrCalc are
pushed to HasPercent when it is more appropriate, and adds additional
documentation for the method.
This converts the callers that are (or may be for) for properties that
can contain calc-size() to use MayHavePercentDependence(), and converts
the callers that are for properties that cannot (and where the
distinction doesn't matter) to use the shorter HasPercent().
See thread at
Bug: 313072
Change-Id: I1ba3992d2bee81c67997e25970d18d92f332547e
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1292024}
M third_party/blink/renderer/core/layout/block_node.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/flex/flexible_box_algorithm.cc
M third_party/blink/renderer/core/layout/forms/fieldset_layout_algorithm.cc
M third_party/blink/renderer/core/layout/fragment_builder.cc
M third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
M third_party/blink/renderer/core/layout/inline/inline_box_state.cc
M third_party/blink/renderer/core/layout/inline/line_breaker.cc
M third_party/blink/renderer/core/layout/layout_block.cc
M third_party/blink/renderer/core/layout/layout_box_model_object.cc
M third_party/blink/renderer/core/layout/layout_utils.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/physical_fragment.cc
M third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.cc
M third_party/blink/renderer/core/layout/svg/layout_svg_resource_gradient.cc
M third_party/blink/renderer/core/paint/box_paint_invalidator.cc
M third_party/blink/renderer/core/style/computed_style.cc
M third_party/blink/renderer/core/style/grid_track_size.h
M third_party/blink/renderer/core/svg/svg_length_functions.cc
M third_party/blink/renderer/platform/geometry/length.h
M third_party/blink/renderer/platform/transforms/translate_transform_operation.h
ap...@google.com <ap...@google.com> #62
Branch: main
commit 846f659cf10d9811fc920f244a1a269291dec7ee
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Apr 24 19:45:15 2024
Remove DCHECK() that is no longer valid with calc-size().
The rules for animation of calc-size() intentionally allow animation
between calc-size() expressions typed as something other than a
percentage (e.g., a sizing keyword) and a percentage. This animation
erases the percentage-ness from the type at all intermediate values.
This means the animation works correctly when the percentage basis is
definite, but is incorrect when the percentage basis is indefinite.
This is an intentional behavior compromise discussed in
This adds a few tests that would hit the removed DCHECK().
Bug: 313072
Change-Id: If5abd44475742272a4635293ddc12837f3ae7153
Reviewed-on:
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1292038}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
ap...@google.com <ap...@google.com> #63
Branch: main
commit 0e97ad1ad16e8959f1c90880140bfeb7151eea36
Author: L. David Baron <dbaron@chromium.org>
Date: Mon Apr 29 22:26:07 2024
Handle single-argument form of CSS calc-size().
Bug: 313072
Change-Id: I8f27f77618efe466bfee67ad40d1100985106b0d
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1294017}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
ap...@google.com <ap...@google.com> #64
Branch: main
commit 3ae603ad4984fa277a826fbf4b7d85a254c13a9b
Author: L. David Baron <dbaron@chromium.org>
Date: Tue May 21 17:55:30 2024
Don't create CSSNumericValue objects for lengths with calc-size().
Similar to the change made for anchor functions in
trying to construct typed OM objects for a case (the sizing keywords in
calc-size()) where we would fail to do so (and crash). This does so for
all calc-size() values rather than only those with sizing keywords
because this is the main use case for calc-size() and the change is
easier that way.
Bug: 313072
Change-Id: I9ad3d992836a9fe6eca277b66ed317cf6023b518
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1303887}
M third_party/blink/renderer/core/css/cssom/css_numeric_value.cc
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-typed-om.html
ap...@google.com <ap...@google.com> #65
Branch: main
commit 394396b47843ef9e5c3581ae1ce849aa2feed131
Author: L. David Baron <dbaron@chromium.org>
Date: Wed May 22 13:04:22 2024
Correct implementation of calc-size() interpolation rules.
I believe I initially implemented these before the spec was written (or
before I was aware that it was). This updates the interpolation rules
to follow
the clarifications in
This doesn't implement the IACVT (invalid at computed value time) aspect
of the clarification in
and therefore adds both TODO comments and failing tests. (The tests are
useful to check for lack of crashes; when I first wrote them they did
crash and I needed to fix the crashes.)
Bug: 313072
Change-Id: Ia9903bd138c3afb58ef12da45171920d28de8fa6
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1304382}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion.tentative.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.tentative.html
ap...@google.com <ap...@google.com> #66
Branch: main
commit ae5d2120c5105ee98091aa6a84c49a01b7f94414
Author: L. David Baron <dbaron@chromium.org>
Date: Tue Jun 04 18:50:22 2024
Convert most callers of intrinsic size type checking methods on blink::Length.
This is the result of auditing the callers of all of the intrinsic size
type checking methods on blink::Length for correct interaction with
calc-size(). It adds new Has* methods as needed, and makes many of the
conversions that are needed, while leaving TODO comments for a few of
the more interesting ones.
The new Has* virtual methods on CalculationExpressionNode are perhaps
not the most efficient way of solving the problem, but they do appear to
be the cleanest and best fit for the existing code, and guarding the
calls with checks of HasContentOrIntrinsicSize() should avoid any real
performance problems.
Bug: 313072
Change-Id: I7ae40994fa15a798fc5b8d35728a6124ad823014
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1310060}
M third_party/blink/renderer/core/layout/flex/flexible_box_algorithm.cc
M third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
M third_party/blink/renderer/core/layout/layout_utils.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/table/table_node.cc
M third_party/blink/renderer/core/style/computed_style.h
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
M third_party/blink/renderer/platform/geometry/calculation_value.cc
M third_party/blink/renderer/platform/geometry/calculation_value.h
M third_party/blink/renderer/platform/geometry/length.cc
M third_party/blink/renderer/platform/geometry/length.h
ap...@google.com <ap...@google.com> #67
Branch: main
commit 3517e3c1bcf063018af78c47df3a72a5502ce861
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Jul 10 21:19:07 2024
Implement CSS side of support for interpolate-size CSS property.
This implements the CSS side of support for the interpolate-size CSS
property that was agreed on in
and has a draft specification at
This is part of
Making the property do something will be in a later CL.
This property is behind the CSSCalcSizeFunction feature.
Bug: 313072, 346977015
Change-Id: I49a01926866a4bae87bf88ace3c0b0119685ae51
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1325755}
M third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom
M third_party/blink/renderer/core/animation/css/css_animations.cc
M third_party/blink/renderer/core/css/css_properties.json5
M third_party/blink/renderer/core/css/css_property_equality.cc
M third_party/blink/renderer/core/css/css_value_keywords.json5
M third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
M third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/interpolate-size-computed.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/interpolate-size-parsing.html
M third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-listing-expected.txt
M third_party/blink/web_tests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
M third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
M third_party/blink/web_tests/webexposed/css-properties-as-js-properties-expected.txt
M third_party/blink/web_tests/webexposed/css-property-listing-expected.txt
M tools/metrics/histograms/enums.xml
ap...@google.com <ap...@google.com> #68
Branch: main
commit 415e2bf8e703d427e09945d42852fee0d942ed82
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Jul 17 20:52:23 2024
Pass through information needed to use the interpolate-size CSS property.
This passes the value of the interpolate-size property (or an enum
derived from it) through so that we can use it in
InterpolableLength::CanMergeValues to decide whether sizing keyword
values can be interpolated.
It is part of implementing the interpolate-size property; see:
Bug: 313072, 346977015
Change-Id: I1812789e95da2de58df655318622f42bcfc0a948
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1329104}
M third_party/blink/renderer/core/animation/basic_shape_interpolation_functions.cc
M third_party/blink/renderer/core/animation/css/css_animations.cc
M third_party/blink/renderer/core/animation/css_border_image_length_box_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_clip_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_interpolation_environment.h
M third_party/blink/renderer/core/animation/css_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_interpolation_type.h
M third_party/blink/renderer/core/animation/css_length_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_length_interpolation_type.h
M third_party/blink/renderer/core/animation/css_length_list_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_ray_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_text_indent_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_translate_interpolation_type.cc
M third_party/blink/renderer/core/animation/interpolable_filter.cc
M third_party/blink/renderer/core/animation/interpolable_grid_length.cc
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/animation/interpolable_length.h
M third_party/blink/renderer/core/animation/size_interpolation_functions.cc
ap...@google.com <ap...@google.com> #69
Branch: main
commit d6e2cc411c26af7287f2b039cb5d6631477bf0d6
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Jul 17 20:59:45 2024
Pass CSSProperty to InterpolableLength::MaybeConvertLength.
This passes the CSS property through to
InterpolableLength::MaybeConvertLength, which allows it to call
LengthPropertyFunctions::CanAnimateKeyword. This lets us avoid having
sizing keywords in InterpolableLength values that can't really animate,
or having to distinguish only by the interpolation type class. This is
currently an issue for offset-anchor and offset-position, which have an
auto value, and which use the CSSLengthListInterpolationType.
This is a prerequisite for CHECK()s that ensure we don't fail to pass an
interpolate-size value through in a case where we actually need to.
Bug: 313072, 346977015
Change-Id: Iea48bde189572af5670af21d2fe6af004442de64
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1329117}
M third_party/blink/renderer/core/animation/basic_shape_interpolation_functions.cc
M third_party/blink/renderer/core/animation/basic_shape_interpolation_functions.h
M third_party/blink/renderer/core/animation/css_basic_shape_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_border_image_length_box_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_clip_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_filter_list_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_grid_template_property_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_grid_template_property_interpolation_type.h
M third_party/blink/renderer/core/animation/css_length_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_length_list_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_ray_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_size_list_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_text_indent_interpolation_type.cc
M third_party/blink/renderer/core/animation/css_translate_interpolation_type.cc
M third_party/blink/renderer/core/animation/interpolable_filter.cc
M third_party/blink/renderer/core/animation/interpolable_filter.h
M third_party/blink/renderer/core/animation/interpolable_grid_length.cc
M third_party/blink/renderer/core/animation/interpolable_grid_length.h
M third_party/blink/renderer/core/animation/interpolable_grid_track_list.cc
M third_party/blink/renderer/core/animation/interpolable_grid_track_list.h
M third_party/blink/renderer/core/animation/interpolable_grid_track_repeater.cc
M third_party/blink/renderer/core/animation/interpolable_grid_track_repeater.h
M third_party/blink/renderer/core/animation/interpolable_grid_track_size.cc
M third_party/blink/renderer/core/animation/interpolable_grid_track_size.h
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/animation/interpolable_length.h
M third_party/blink/renderer/core/animation/size_interpolation_functions.cc
M third_party/blink/renderer/core/animation/size_interpolation_functions.h
ap...@google.com <ap...@google.com> #70
Branch: main
commit 24de5be4e884ea95bd7ca3a1e7fe6b5a64bffff5
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Jul 17 21:02:21 2024
Implement animation behavior of the interpolate-size CSS property.
This implements the animation behavior of the interpolate-size CSS
property to enable CSS animations between sizing keywords when possible,
and removes a feature flag (and corresponding virtual test suite) that
enabled the same.
For more on the interpolate-size property, see:
Bug: 313072
Fixed: 349903574, 346977015
Change-Id: Ie4214af5ff5ea1e3253893dbcc5567e9026f1a06
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1329119}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/platform/runtime_enabled_features.json5
M third_party/blink/web_tests/VirtualTestSuites
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/height-composition.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-height-composition.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/max-width-composition.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-height-composition.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/min-width-composition.html
M third_party/blink/web_tests/external/wpt/css/css-sizing/animation/width-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-height-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-height-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-height-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-height-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-width-composition-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-width-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-width-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-max-width-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-height-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-height-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-width-composition-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-width-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-width-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-min-width-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-which-value.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-width-composition.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-width-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-width-interpolation.html
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/README.md
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/height-composition-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/height-interpolation-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/max-height-interpolation-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/max-width-interpolation-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-height-composition-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-height-interpolation-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-width-composition-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/min-width-interpolation-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/width-composition-expected.txt
D third_party/blink/web_tests/virtual/css-sizing-keyword-animation/external/wpt/css/css-sizing/animation/width-interpolation-expected.txt
ap...@google.com <ap...@google.com> #71
Branch: main
commit c46eb60f74fe950537d9bc2988f48a0c7fd49906
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Jul 17 21:10:06 2024
Fall back to discrete animation when calc-size() interpolation would exceed expansion limit.
Interpolating between calc-size() expressions that have a nested
calc-size() expression as the basis requires expansion in order to make
the bases compatible. We have an expansion limit to prevent overly
large results.
This change makes expressions whose interpolation would exceed the
expansion limit be treated as not interpolable (that is, animate
discretely), as resolved in
Fixed: 346975480
Bug: 313072
Change-Id: I22da5a67eddb429140e813e0b41a7af641b8fa33
Reviewed-on:
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1329123}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.tentative.html
ap...@google.com <ap...@google.com> #72
Branch: main
commit 3a54be696bf5bc422ea0091d904511418b49b6f6
Author: L. David Baron <dbaron@chromium.org>
Date: Wed Jul 17 22:05:43 2024
Add tests for interpolate-size and calc-size() with logical properties.
The interpolate-size property (and thus the calc-size() function)
already works correctly for logical properties, but this adds some basic
tests to check this.
Bug: 313072, 346977015
Change-Id: I92ac9f0df5dd4a744dc4939468d7f7617ddd06b9
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1329160}
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-logical-properties-interpolation-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/interpolate-size-logical-properties-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
ap...@google.com <ap...@google.com> #73
Branch: main
commit 0fa3d70c96bc84e446022e3e1a41035262527f26
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Jul 19 01:10:24 2024
Refactor handling of flex-basis: content to allow supporting calc-size(content, ...).
This refactors the handling of flex-basis: content in both the block and
inline directions so that it is handled inside of
ResolveBlockLengthInternal/ResolveInlineLengthInternal and we can
support calc-size(content, ...) on flex-basis.
Bug: 313072
Change-Id: I69d1af7a7d75e71da16f07b41f4914bc3901c9eb
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1329924}
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/length_utils.cc
ap...@google.com <ap...@google.com> #74
Branch: main
commit 9609febe7b2225e339ad37321412472a5213e6d7
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Jul 25 01:48:40 2024
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:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1332729}
M third_party/blink/renderer/core/animation/length_property_functions.cc
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/renderer/core/css/css_math_expression_node.h
M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
M third_party/blink/renderer/core/css/properties/css_parsing_utils.h
M third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/calculation_expression_node.h
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-basis-on-column-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-basis-on-column.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-basis-on-row-expected.txt
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-basis-on-row.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.tentative.html
ap...@google.com <ap...@google.com> #75
Branch: main
commit 5054efb0e35fcf0969acad02c529c27a5e1e91f8
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Jul 25 01:48:26 2024
Refactor handling of flex-basis: auto to allow supporting calc-size(auto, ...).
This refactors the handling of flex-basis: auto (and its interaction
with width/height: auto) so that we can support calc-size(auto, ...) on
flex-basis and its combination with calc-size(auto, ...) on
width/height.
This does result in two calls to Resolve*LengthInternal in common cases
where we used to have one call. We could optimize those away for the
common cases if we wanted to, at the cost of a little bit of complexity
and the cost of having some of the interesting cases onto a much less
used codepath.
Bug: 313072
Change-Id: Ifce9d0ed456cb79ef7d5f9b50b56d5eb839cf778
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1332728}
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
ap...@google.com <ap...@google.com> #76
Branch: main
commit 84b283d561ae91f2649490f0fa835bf23684a204
Author: L. David Baron <dbaron@chromium.org>
Date: Thu Jul 25 20:35:31 2024
Remove tentative from filenames of calc-size() tests.
Given the specification at:
and the additional specification diffs at:
these tests no longer need tentative in their filenames.
Bug: 313072
Change-Id: Idf0d657c0273ad52658b9222125941cae74e5d25
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1333184}
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-width-interpolation.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width.html
ap...@google.com <ap...@google.com> #77
Branch: main
commit f0661d1624ee7b2caa63b877d1feddeeb07a89d5
Author: L. David Baron <dbaron@chromium.org>
Date: Fri Jul 26 03:10:26 2024
Enable CSS calc-size() function and interpolate-size property to ship in M129.
Chromestatus:
I2S:
Bug: 313072
Change-Id: I89fa398a09c354ce510a22174c80c21405b65166
Reviewed-on:
Commit-Queue: Domenic Denicola <domenic@chromium.org>
Reviewed-by: Domenic Denicola <domenic@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1333356}
M third_party/blink/renderer/platform/runtime_enabled_features.json5
M third_party/blink/web_tests/virtual/stable/webexposed/css-properties-as-js-properties-expected.txt
M third_party/blink/web_tests/virtual/stable/webexposed/css-property-listing-expected.txt
ap...@google.com <ap...@google.com> #78
Branch: main
commit f64e70b80b9ca69c4ef20627e28507b4a23734da
Author: Kevin Ellis <kevers@google.com>
Date: Tue Aug 06 17:45:28 2024
Fix crash when animating flexBasis content
Bug: 356194015, 313072
Change-Id: I37a2868630011e54db6c2b978eb7d9f7575b861e
Reviewed-on:
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1337972}
M third_party/blink/renderer/core/animation/interpolable_length.cc
A third_party/blink/web_tests/external/wpt/css/css-flexbox/animation/flex-basis-content-crash.html
ap...@google.com <ap...@google.com> #79
Branch: main
commit f9932a8389aca21756c832edbd68c4846e941db4
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 06 22:26:03 2024
[layout] Rework inline-size aspect-ratio logic.
Previously we had special logic to determine if we had an aspect-ratio
present, and manually resolve the size.
Instead of this we should have been changing what "auto" maps to when
we have an aspect-ratio present.
This patch:
1. Checks if we can determine the inline-size from the aspect-ratio
by seeing if we can resolve the block-size.
2. From this maps the "auto" length to "fit-content" when needed.
3. Changes the automatic minimum size logic to determine if our
main length has a content-based size.
Bug: 40339056
Change-Id: Ia47d4473cff22defc08924466ce4f445ed654d5a
Reviewed-on:
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1338142}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-aspect-ratio-001.html
ap...@google.com <ap...@google.com> #80
Branch: main
commit b43053255f4956177da74e02fa0169647ac10bf9
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 06 22:49:04 2024
[layout] Rework block-size aspect-ratio logic.
Similar to:
Previously we had special logic to determine if we had an aspect-ratio
present, and manually resolve the size.
This changes what "auto" maps to when we have an aspect-ratio present.
This patch:
1. Checks if we can determine the block-size from the aspect-ratio,
e.g. if we have a definite inline-size.
2. From this maps the "auto" length to "fit-content" when needed.
3. Changes the automatic minimum size logic to determine if our
main length has a content-based size.
Bug: 40339056
Change-Id: I1338a957871004be53be98b834ae4853e88481aa
Reviewed-on:
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1338154}
M third_party/blink/renderer/core/layout/length_utils.cc
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-aspect-ratio-002.html
ap...@google.com <ap...@google.com> #81
Branch: refs/branch-heads/6613
commit c5e6afed9ca0115db7a5a26411dcebf7da901d03
Author: Kevin Ellis <kevers@google.com>
Date: Thu Aug 08 13:21:25 2024
Fix crash when animating flexBasis content
(cherry picked from commit f64e70b80b9ca69c4ef20627e28507b4a23734da)
Bug: 356194015, 313072
Change-Id: I37a2868630011e54db6c2b978eb7d9f7575b861e
Reviewed-on:
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1337972}
Reviewed-on:
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/branch-heads/6613@{#777}
Cr-Branched-From: 03c1799e6f9c7239802827eab5e935b9e14fceae-refs/heads/main@{#1331488}
M third_party/blink/renderer/core/animation/interpolable_length.cc
A third_party/blink/web_tests/external/wpt/css/css-flexbox/animation/flex-basis-content-crash.html
ap...@google.com <ap...@google.com> #82
Branch: main
commit 54ea9abd0881902e8e93a4e94fb60eb905f367ea
Author: David Baron <dbaron@chromium.org>
Date: Thu Aug 08 17:47:36 2024
Remove the 1-argument form of calc-size().
This removes the 1-argument form of calc-size() as resolved in
Bug: 313072
Fixed: 358160890
Change-Id: I323127d93c846ee7d5a05dc06eb7f164df63ac26
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1339169}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-typed-om.html
ap...@google.com <ap...@google.com> #83
Branch: main
commit da18fe7fd3df160cee00f87da2443a3007281bef
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 08 18:11:37 2024
[layout] Fix content-contributions of calc-size().
Previously we'd just treat calc-size() as effectively the same as auto.
This was incorrect. Instead:
- Attempt to resolve the main length, if this succeeds this is our
contribution. (This will capture the calc-size(min-content, size)
case.
- If this returns an indefinite size, we force the sizing keyword
as auto, and for the min-size treat auto as min-content, and for
the max-size treat auto as max-content.
This patch also fixes some "depends_on_block_constraints" logic
(accidentally) in cases like:
<div style="min-width: min-content; width: 0px;"></div>
where we weren't properly calculating this value.
Bug: 40339056
Change-Id: I22ee162deb49c37b948e5a22a12218b392710603
Reviewed-on:
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Auto-Submit: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1339188}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
M third_party/blink/renderer/platform/geometry/calculation_expression_node.cc
M third_party/blink/renderer/platform/geometry/length.h
A third_party/blink/web_tests/external/wpt/css/css-sizing/intrinsic-percent-replaced-dynamic-011.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/intrinsic-percent-replaced-dynamic-012.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-min-max-sizes-001.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-min-max-sizes-002.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-min-max-sizes-003.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-min-max-sizes-004.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-min-max-sizes-005.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-min-max-sizes-006.html
ap...@google.com <ap...@google.com> #84
Branch: main
commit 2b95ca28413537dc13f18eaa7e1ab7f533dfc275
Author: David Baron <dbaron@chromium.org>
Date: Fri Aug 09 17:52:42 2024
Remove TODO comment about flex-basis highlighting and simplify Length::IsSpecified call.
This change:
* removes a TODO comment in the flex-basis highlight code about
supporting calc-size(), because the code is only attempting to handle
the "easy" cases (Length::IsFixed()), and calc-size() is far from
qualifying for those.
* simplifies a Length::IsSpecified() call to a Length::IsFixed() call
because that length can only be two possible things (auto or fixed)
given the control flow
Bug: 313072
Change-Id: I82a1a140cf5436050ad1721db0eabf456e1b7697
Reviewed-on:
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1339719}
M third_party/blink/renderer/core/inspector/inspector_highlight.cc
ap...@google.com <ap...@google.com> #85
Branch: main
commit 4bf814e1e467d73604a5d54424fcaf94577f607a
Author: David Baron <dbaron@chromium.org>
Date: Fri Aug 09 18:16:23 2024
Remove TODO about calc-size() parsing restrictions that was already done.
This was done in a somewhat stricter way than what this comment was
asking for, in
Bug: 313072
Change-Id: I39d330b39846c38881b308d0c852a9a12b71123b
Reviewed-on:
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1339739}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
ap...@google.com <ap...@google.com> #86
Branch: main
commit 0e590272c7e7c48eaa5771c632e0e11f150b6a77
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Aug 09 18:27:48 2024
[calc-size] Ensure that an indefinite intermediate result yields an indefinite result.
From:
This avoids making an overall result depend on math done on
kIndefiniteSize. The math itself may still occur, but the result is
ignored.
Bug: 313072
Co-authored-by: David Baron <dbaron@chromium.org>
Change-Id: Ia054566fbad49b9b9e0e6369f5b8e114c13adf88
Reviewed-on:
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1339751}
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.html
ap...@google.com <ap...@google.com> #87
Branch: main
commit 527c0b16490aad0f1c76027e707e2afb918e812c
Author: David Baron <dbaron@chromium.org>
Date: Fri Aug 09 18:33:31 2024
Fix calc-size() interactions with border/padding/box-sizing.
Bug: 313072
Change-Id: Ib51a8bd4f386fe082c9a95ee0e8de4fab4d8ffe1
Reviewed-on:
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1339759}
M third_party/blink/renderer/core/layout/length_utils.cc
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height-box-sizing.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-width-box-sizing.html
ap...@google.com <ap...@google.com> #88
Branch: main
commit d8dd9b8049a717b947ce40044082b0db8f65574a
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 12 22:55:17 2024
[calc-size] Allow applying calc-size to the auto min-size.
This patch shifts where we apply the auto min-size. Previously we
change the blink::Length we resolved. This patch passes in an
auto_length to resolve if the original length has auto instead.
Fixes: block-aspect-ratio-038.html as we weren't correctly clamping
the auto-min-size by the max-size in the inline direction.
Bug: 1343829, 313072
Change-Id: Ia56ea5e52b3a42c5b7af8447eb19888883e7e76e
Reviewed-on:
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1340677}
M third_party/blink/renderer/core/layout/absolute_utils.cc
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/length_utils.h
M third_party/blink/web_tests/TestExpectations
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-aspect-ratio-003.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-aspect-ratio-004.html
ap...@google.com <ap...@google.com> #89
Branch: main
commit 7a1521a46b560766b636b0c59b5d8f8a8a667d2b
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 12 23:02:57 2024
[layout] Apply the auto min-size during content-contribution.
Previously we didn't correctly apply the automatic minimum size from
aspect-ratio during calculating the content-contribution.
Bug: 313072
Change-Id: I6950cdf44b50b5084682c35147764e622a831a26
Reviewed-on:
Reviewed-by: David Grogan <dgrogan@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1340679}
M third_party/blink/renderer/core/layout/block_node.cc
M third_party/blink/renderer/core/layout/length_utils.cc
M third_party/blink/renderer/core/layout/min_max_sizes.h
A third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-056.html
A third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/block-aspect-ratio-057.tentative.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-aspect-ratio-005.html
ap...@google.com <ap...@google.com> #90
Branch: main
commit 6a53bfefb5dddd7a66fbb0cb6ddd1ca291e5ac56
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 12 23:18:45 2024
[calc-size] Fix grid intrinsic repeat calculation.
Previously during the min/max sizes pass we returned
border/scrollbar/padding as the min-content/max-content sizes for
calculating how many repeaters we have.
This was ~fine, but now with calc-size() we can perform calculations
based on this. This would result in a incorrect calculation (as
demonstrated by the testcase).
Return kIndefiniteSize instead.
Bug: 313072
Change-Id: I4efa890f4ad5ff4df3e4c2f682cd8b49681c7d64
Reviewed-on:
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1340685}
M third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-grid-repeat.html
ap...@google.com <ap...@google.com> #91
Branch: main
commit f357fe9f912bd1723fb73fdb693c6825dae23390
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 12 23:50:16 2024
[calc-size] Fix calc-size(auto) for flex auto min-size.
This patch allows performing calculations on the flex automatic
minimum size.
Reworks the code to just call ComputeMinMax*Sizes directly, instead
of calling ResolveMinInlineLength/etc manually.
Bug: 313072
Change-Id: I3d2f2dcac42615a1939a8313762ad0037372e11f
Reviewed-on:
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1340707}
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-001.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-002.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-003.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-004.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-005.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-006.html
ap...@google.com <ap...@google.com> #92
Branch: main
commit 9e2aa651eac615a219d23f93b137fba65dd8827f
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 13 18:52:34 2024
[calc-size] Rework stretch alignment in flexbox.
Previously each FlexItem object had a FlexOffset which was "global",
e.g. its origin was the based off the parent flexbox (not the flex
line for example).
This resulted in some somewhat complex tracking, needing to adjust
the offset whenever a flex-line shifted, etc.
Instead of this global offset, just track the main_axis_offset.
Calculate the cross_axis_offset based on the flex-line offset, and
calculating the alignment just before we add the result to the
fragment builder.
This removes FlexItem::ComputeStretchedSize which was problematic
for calc-size() as it was performing a stretch without using
any of our length_utils functions, (and not resolving auto correctly).
Bug: 313072
Change-Id: Ia717c7b5920e4b8fc546add34022a95f10999756
Reviewed-on:
Reviewed-by: David Grogan <dgrogan@chromium.org>
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1341154}
M third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc
M third_party/blink/renderer/core/layout/flex/flexible_box_algorithm.cc
M third_party/blink/renderer/core/layout/flex/flexible_box_algorithm.h
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-flex-007.html
ap...@google.com <ap...@google.com> #93
Branch: main
commit 44ef8226c901a4c4f5bbeefc4ab85d770cecb4a6
Author: David Baron <dbaron@chromium.org>
Date: Wed Aug 14 17:50:03 2024
Add tests for unitless 0 being invalid in calc-size().
See
Bug: 341564374, 313072
Change-Id: Ie0e03b82812b0f7748aaa5f892c60347bcf996e0
Reviewed-on:
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1341797}
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.html
ap...@google.com <ap...@google.com> #94
Branch: main
commit 57b34a9c9d1c20f24307766f3c16242c3a6365e8
Author: David Baron <dbaron@chromium.org>
Date: Wed Aug 14 20:28:01 2024
[calc-size] Audit uses of Length::IsSpecified.
This avoids using Length::IsSpecified for width/height and their min/max
variants, so that calc-size() behaves the same as the underlying basis.
Bug: 313072
Change-Id: I00af8b5ba3ec13b37f584a5f6d4ba35c2097928e
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1341909}
M third_party/blink/renderer/core/layout/inline/inline_node.h
M third_party/blink/renderer/core/layout/layout_custom_scrollbar_part.cc
M third_party/blink/renderer/core/layout/text_autosizer.cc
ap...@google.com <ap...@google.com> #95
Branch: main
commit 6faeb2c257998eee2f291687ec966507b1f3e436
Author: David Baron <dbaron@chromium.org>
Date: Fri Aug 16 14:21:41 2024
Update interpolation between calc-size() values to better preserve percentageness.
This updates the code for interpolation of calc-size() values to match
recent spec changes that correspond to the latest discussions in
The idea of these changes is that, before we interpolate values with
different basis, we do stronger canonicalization of the basis (rather
than just un-nesting a basis that is a nested calc-size()). This means
that all <calc-sum> bases with percentages have their canonical basis be
100% and all other <calc-sum> bases have their canonical basis be any.
This means that a canonical basis is either a sizing keyword, 100%, or
any.
This stronger canonicalization code means we can remove a separate
substitution pass, since all of the necessary substitution was already
done during canonicalization.
This change also removes some extra checks in
InterpolableLength::CanMergeValues() since
CSSMathExpressionOperation::CreateArithmeticOperationAndSimplifyCalcSize()
also has those checks, and CanMergeValues already needs to call it.
The overall result of these changes should be:
* better (but still imperfect) preservation of percentageness
* a small set of cases that no longer interpolate (a calc-size() whose
basis is a sizing keyword with another whose basis is a <calc-sum>
containing percentages)
* following the spec's rules on always canonicalizing before
interpolating rather than optimizing it away in some cases, given that
it is observable (see
wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion.html)
Bug: 313072
Change-Id: Ie302c0440b5645afe2b458cdb672d544a836b946
Reviewed-on:
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1342798}
M third_party/blink/renderer/core/animation/interpolable_length.cc
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-height-interpolation.html
A third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion-expected.txt
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion.html
ap...@google.com <ap...@google.com> #96
Branch: main
commit 2919d87f001a32ddefb09130b011821cca63dc63
Author: David Baron <dbaron@chromium.org>
Date: Fri Aug 16 18:56:52 2024
Add tests for calc-size(calc-size(any, ...), size), which is allowed.
This change removes a TODO comment saying that the 'size' keyword should
be disallowed when the *nested* basis is 'any', and adds tests testing
that things work correctly for such cases.
This restriction is not required by the spec, and is not needed, since
the behavior of the 'size' keyword in this case is well-defined.
Bug: 313072
Change-Id: Icc2a879e8559ef5b0c97b852d179d73a7f113aa1
Reviewed-on:
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1342954}
M third_party/blink/renderer/core/css/css_math_expression_node.cc
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/calc-size-interpolation-expansion.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-height.html
M third_party/blink/web_tests/external/wpt/css/css-values/calc-size/calc-size-parsing.html
ap...@google.com <ap...@google.com> #97
Branch: main
commit b48701bac2af86d7c901002349180d331885e541
Author: David Baron <dbaron@chromium.org>
Date: Fri Aug 30 22:43:19 2024
Also consider stretch/-webkit-fill-available in code that used to use Length::IsSpecified.
This fixes an error in commit 57b34a9c9d1c20f24307766f3c16242c3a6365e8,
which converted callers of Length::IsSpecified to handle calc-size().
The changes in that CL didn't consider the -webkit-fill-available (or,
in the future, stretch) keyword, which is not covered by
HasAutoOrContentOrIntrinsic().
This makes these callers consider that case as well.
Fixed: 361601751
Bug: 313072
Change-Id: I9ecaf6b6f3b0c108e33068325b302a5100f1fb28
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1349460}
M third_party/blink/renderer/core/layout/inline/inline_node.h
M third_party/blink/renderer/core/layout/layout_custom_scrollbar_part.cc
M third_party/blink/renderer/core/layout/text_autosizer.cc
A third_party/blink/web_tests/scrollbars/scrollbar-intrinsic-keywords-crash-expected.txt
A third_party/blink/web_tests/scrollbars/scrollbar-intrinsic-keywords-crash.html
ap...@google.com <ap...@google.com> #98
Branch: refs/branch-heads/6668
commit 445057f4140e8386a595bb673256e701f99784d3
Author: David Baron <dbaron@chromium.org>
Date: Tue Sep 03 19:51:34 2024
Also consider stretch/-webkit-fill-available in code that used to use Length::IsSpecified.
This fixes an error in commit 57b34a9c9d1c20f24307766f3c16242c3a6365e8,
which converted callers of Length::IsSpecified to handle calc-size().
The changes in that CL didn't consider the -webkit-fill-available (or,
in the future, stretch) keyword, which is not covered by
HasAutoOrContentOrIntrinsic().
This makes these callers consider that case as well.
(cherry picked from commit b48701bac2af86d7c901002349180d331885e541)
Fixed: 361601751
Bug: 313072
Change-Id: I9ecaf6b6f3b0c108e33068325b302a5100f1fb28
Reviewed-on:
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1349460}
Reviewed-on:
Auto-Submit: David Baron <dbaron@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/branch-heads/6668@{#802}
Cr-Branched-From: 05bc664984ca075216b7f2198c88b9725bfa1b9b-refs/heads/main@{#1343869}
M third_party/blink/renderer/core/layout/inline/inline_node.h
M third_party/blink/renderer/core/layout/layout_custom_scrollbar_part.cc
M third_party/blink/renderer/core/layout/text_autosizer.cc
A third_party/blink/web_tests/scrollbars/scrollbar-intrinsic-keywords-crash-expected.txt
A third_party/blink/web_tests/scrollbars/scrollbar-intrinsic-keywords-crash.html
ap...@google.com <ap...@google.com> #99
Branch: main
commit d192ad18b88d5a32a74d83caecffc7ea64c276f7
Author: David Baron <dbaron@chromium.org>
Date: Fri Sep 06 14:32:34 2024
Make the sticky images quirk for table cell content size closer to spec.
This makes the sticky images quirk for table cell content size check
only the 'auto' keyword as specified in the quirks mode spec. It
previously checked for all of the sizing keywords, including their use
in calc-size().
This is a followup to commit 57b34a9c9d1c20f24307766f3c16242c3a6365e8
and commit b48701bac2af86d7c901002349180d331885e541.
Bug: 313072
Change-Id: I4e62b18375d86db25efe9da0e46f6bc8b81e326e
Reviewed-on:
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1352030}
M third_party/blink/renderer/core/layout/inline/inline_node.h
M third_party/blink/renderer/platform/runtime_enabled_features.json5
ap...@google.com <ap...@google.com> #100
Project: chromium/src
Branch: main
Author: David Baron <
Link:
calc-size + interpolate-size WebDX feature use counters + test mappings
Expand for full commit details
calc-size + interpolate-size WebDX feature use counters + test mappings
This adds:
* a WebFeature use counter for calc-size()
* a WebDXFeature for both calc-size() and interpolate-size
* WPT test mappings for both WebDX features
The WebDX features are described at:
https://web-platform-dx.github.io/web-features-explorer/features/calc-size/
https://web-platform-dx.github.io/web-features-explorer/features/interpolate-size/
and were added in:
https://github.com/web-platform-dx/web-features/pull/2110
https://github.com/web-platform-dx/web-features/pull/2148
Bug: 313072
Change-Id: Id34d234aab6514b514f012688fafc4d6dec1d991
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6024690
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383940}
Files:
- M
components/page_load_metrics/browser/observers/use_counter_page_load_metrics_observer.cc
- M
third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
- M
third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom
- M
third_party/blink/renderer/core/css/css_math_expression_node.cc
- A
third_party/blink/web_tests/external/wpt/css/css-values/calc-size/WEB_FEATURES.yml
- A
third_party/blink/web_tests/external/wpt/css/css-values/calc-size/animation/WEB_FEATURES.yml
- M
tools/metrics/histograms/enums.xml
Hash: 4d9a91f41fa68834ef6cef51bb96279b63dfa53c
Date: Sat Nov 16 02:24:20 2024
ap...@google.com <ap...@google.com> #101
Project: chromium/src
Branch: main
Author: David Baron <
Link:
Remove CSSCalcSizeFunction feature flag.
Expand for full commit details
Remove CSSCalcSizeFunction feature flag.
This removes the CSSCalcSizeFunction feature flag, which guarded the
calc-size() function and the interpolate-size property, and which
shipped in M129.
Bug: 313072, 40339056
Change-Id: I6e8508435316ed151be2898f21d68d9174355bf7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043336
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: Daniil Sakhapov <sakhapov@chromium.org>
Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1386882}
Files:
- M
third_party/blink/renderer/core/animation/interpolable_length.cc
- M
third_party/blink/renderer/core/animation/length_property_functions.cc
- M
third_party/blink/renderer/core/css/css_math_expression_node.cc
- M
third_party/blink/renderer/core/css/css_properties.json5
- M
third_party/blink/renderer/platform/runtime_enabled_features.json5
Hash: 64de89eefbf8de066af028605d496e44acc80484
Date: Fri Nov 22 17:03:43 2024
ap...@google.com <ap...@google.com> #102
Project: chromium/src
Branch: main
Author: David Baron <
Link:
Remove StricterCellWidthContentSizeQuirk feature flag.
Expand for full commit details
Remove StricterCellWidthContentSizeQuirk feature flag.
This removes the StricterCellWidthContentSizeQuirk feature flag, which
guarded a small behavior change that shipped in M130. See
https://crrev.com/d192ad18b88d5a32a74d83caecffc7ea64c276f7 .
Bug: 313072, 40339056
Change-Id: I11e5024b23e7c75f01345b698c5943d390214063
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6043144
Commit-Queue: David Baron <dbaron@chromium.org>
Commit-Queue: David Grogan <dgrogan@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Reviewed-by: David Grogan <dgrogan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1386936}
Files:
- M
third_party/blink/renderer/core/layout/inline/inline_node.h
- M
third_party/blink/renderer/platform/runtime_enabled_features.json5
Hash: a4c9a193d1b4fac2c099317d5effc2581425bdd0
Date: Fri Nov 22 18:16:50 2024
Description
Chrome Version : 32.0.1678.0
I believe this is just not yet possible in Browsers. This came up for a google app, but clearly other folks are asking for this as well:
Would require us to compute the size on the main thread (in a layout) and provide that to the compositor thread, but presumably we could be smarter about it than having devs have to compute the height from JS only to pass to CSS to pass to animation. :(