Skip to content

Conversation

@LongCatIsLooong
Copy link
Contributor

@LongCatIsLooong LongCatIsLooong commented Feb 24, 2025

This API allows the widget tree of an OverlayPortal.overlayChild to depend on various layout information (e.g. the incoming constraints, or the size of a RenderObject) from another child subtree of Overlay that does layout before the overlayChild.

Most RenderObject subclasses can only access its child's or children's layout info, but not the layout info of its other descendants because of the "relayout boundary" optimization. Such locality makes the layout dependencies easier to reason about but it also makes it difficult to implement certain common UI patterns (see the examples in the description of the previous PR)

The API is currently only available on OverlayPortal as it is the only Overlay API (AFAIK) that guarantees every render object in a "path" within the render tree has finished doing layout.

TODO: polish the API docs and code comments
TODO: more tests?

TODO: markNeedsLayout should not imply markNeedsPaint in this case (or in layout builders in general).

part1: #163575
diff this ... part1 LongCatIsLooong/flutter@OverlayPortal-always-add-to-dirty-list...LongCatIsLooong:flutter:OverlayPortal-paint-transform-builder

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Such that nobody `implements` it. Currently it has private
APIs used by the `RenderObject` class (e.g., the dirty lists).
If someone were to implement a `PipelineOwner` outside of
object.dart, they will get a runtime crash since they won't be
able to provide those private APIs and RenderObjects actually
expect those APIs to exist.
This allows `overlyChild` to inspect the layout of the regular
child (for example, computing the size and the paint transform from the
Overlay to the regular child in `overlayChild`'s performLayout method).
…ongCatIsLooong/flutter into OverlayPortal-always-add-to-dirty-list
@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: scrolling Viewports, list views, slivers, etc. labels Feb 24, 2025
@LongCatIsLooong LongCatIsLooong changed the title OverlayPortal.overlayChildLayoutBuilder (placeholder name) OverlayPortal.overlayChildLayoutBuilder Feb 28, 2025
@LongCatIsLooong LongCatIsLooong marked this pull request as ready for review February 28, 2025 21:57
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 5, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 7, 2025
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
… (#8922)

Manual roll Flutter from b16430b2fd57 to 1d954f4e96bd (114 revisions)

Manual roll requested by [email protected]

flutter/flutter@b16430b...1d954f4

2025-03-17 [email protected] Revert "[skwasm] Dynamic Threading
(#164748)" (flutter/flutter#165350)
2025-03-17 [email protected] Roll Skia from fa669e2e6d12
to 52130e5c3b34 (4 revisions) (flutter/flutter#165348)
2025-03-17 [email protected]
`OverlayPortal.childLayoutBuilder` should rebuild when `OverlayPortal`
rebuilds. (flutter/flutter#165331)
2025-03-17 [email protected] [web][a11y]Delete
_childContainerElement (flutter/flutter#163662)
2025-03-17 [email protected] Roll Skia from e45207898e60
to fa669e2e6d12 (8 revisions) (flutter/flutter#165342)
2025-03-17 [email protected] Add documentation for Java test
filtering to plugins test document (flutter/flutter#165314)
2025-03-17 [email protected] Roll Fuchsia Linux SDK from
SDNQgVXxHbbd0qsVw... to mPniqXmPpXqMMpM8z... (flutter/flutter#165313)
2025-03-17 [email protected] Roll Dart SDK from
9283d47199b7 to 725172afbc42 (1 revision) (flutter/flutter#165310)
2025-03-17 [email protected] feat(Tooltip): replace the height parameter
with constraints (flutter/flutter#163314)
2025-03-17 [email protected] Fix arrowHeadColor breaks differentiation
between states (flutter/flutter#165178)
2025-03-17 [email protected] Removes
assumption that basis scalar and rounded_scalar match
(flutter/flutter#165166)
2025-03-17 [email protected] Roll Skia from 69cf4c2c5db8
to e45207898e60 (1 revision) (flutter/flutter#165300)
2025-03-17 [email protected] Refactor: Move
sliders value indicator shape to seperate file (flutter/flutter#162858)
2025-03-17 [email protected] Roll Skia from 3931c31032c7
to 69cf4c2c5db8 (1 revision) (flutter/flutter#165288)
2025-03-17 [email protected] Delete
`docs/infra/Infra-Ticket-Queue.md` (flutter/flutter#165258)
2025-03-16 [email protected] Roll Skia from 3413a02d6fc8
to 3931c31032c7 (1 revision) (flutter/flutter#165277)
2025-03-16 [email protected] Roll Fuchsia Linux SDK from
LPz5j18JDsms41r3T... to SDNQgVXxHbbd0qsVw... (flutter/flutter#165275)
2025-03-16 [email protected] Roll Dart SDK from
067560bcd521 to 9283d47199b7 (1 revision) (flutter/flutter#165269)
2025-03-16 [email protected] Roll Skia from f124daeb564d
to 3413a02d6fc8 (1 revision) (flutter/flutter#165263)
2025-03-15 [email protected] Roll Dart SDK from
40bb66a945e4 to 067560bcd521 (1 revision) (flutter/flutter#165262)
2025-03-15 [email protected] Roll Fuchsia Linux SDK from
efdpJgW4DIV6j1mO1... to LPz5j18JDsms41r3T... (flutter/flutter#165252)
2025-03-15 [email protected] Roll Dart SDK from
f23d496f0585 to 40bb66a945e4 (1 revision) (flutter/flutter#165250)
2025-03-15 [email protected] Roll Dart SDK from
8814749ec6a4 to f23d496f0585 (1 revision) (flutter/flutter#165246)
2025-03-15 [email protected] Roll Skia from 4568e766ed0a
to f124daeb564d (1 revision) (flutter/flutter#165245)
2025-03-15 [email protected] Revert "Prevent
explicit roles from merging (#164732)" (flutter/flutter#165222)
2025-03-15 [email protected] Roll Skia from bac6e76abfc7
to 4568e766ed0a (5 revisions) (flutter/flutter#165241)
2025-03-14 [email protected] Roll Dart SDK from
a51f1bfa0f6a to 8814749ec6a4 (2 revisions) (flutter/flutter#165227)
2025-03-14 [email protected] Roll Skia from 98b6922deecf
to bac6e76abfc7 (5 revisions) (flutter/flutter#165225)
2025-03-14 [email protected] Point ktlint AS
docs to the `.editorconfig` that is actually used by ci, instead of
making a copy in the README (flutter/flutter#165213)
2025-03-14 [email protected] Add remaining dart fixes for Color
deprecations when importing painting.dart (flutter/flutter#162609)
2025-03-14 [email protected] [Accessibility]
Add required semantics flags (flutter/flutter#164585)
2025-03-14 [email protected] Roll Skia from f4467ff38f1f
to 98b6922deecf (5 revisions) (flutter/flutter#165215)
2025-03-14 [email protected] Convert `BaseFlutterTask` From Groovy
to Kotlin (flutter/flutter#163148)
2025-03-14 [email protected]
`OverlayPortal.overlayChildLayoutBuilder` (flutter/flutter#164034)
2025-03-14 [email protected] Remove redundant `useMaterial3: true`
(flutter/flutter#163376)
2025-03-14 [email protected] Roll Packages from
bdb9c96 to d632936 (1 revision) (flutter/flutter#165197)
2025-03-14 [email protected] Changelog updates
from 3.29.2 (flutter/flutter#165194)
2025-03-14 [email protected] Roll Dart SDK from
576514b2bfce to a51f1bfa0f6a (1 revision) (flutter/flutter#165191)
2025-03-14 [email protected] Roll Dart SDK from
ceb58442306e to 576514b2bfce (2 revisions) (flutter/flutter#165180)
2025-03-14 [email protected] Roll Fuchsia Linux SDK from
qXOLczyRJadxMW0PK... to efdpJgW4DIV6j1mO1... (flutter/flutter#165175)
2025-03-14 [email protected] [Impeller] Enable mediatek on API
34+. (flutter/flutter#165156)
2025-03-14 [email protected] Roll Dart SDK from
cd06d4ba4fec to ceb58442306e (5 revisions) (flutter/flutter#165159)
2025-03-13 [email protected] [FGP conversion]
Port `FlutterExtension` from Groovy to Kotlin (flutter/flutter#165143)
2025-03-13 [email protected] Prevent explicit
roles from merging (flutter/flutter#164732)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
…8922)

Manual roll Flutter from b16430b to 1d954f4 (114 revisions)

Manual roll requested by [email protected]

flutter/flutter@b16430b...1d954f4

2025-03-17 [email protected] Revert "[skwasm] Dynamic Threading
(#164748)" (flutter/flutter#165350)
2025-03-17 [email protected] Roll Skia from fa669e2e6d12
to 52130e5c3b34 (4 revisions) (flutter/flutter#165348)
2025-03-17 [email protected]
`OverlayPortal.childLayoutBuilder` should rebuild when `OverlayPortal`
rebuilds. (flutter/flutter#165331)
2025-03-17 [email protected] [web][a11y]Delete
_childContainerElement (flutter/flutter#163662)
2025-03-17 [email protected] Roll Skia from e45207898e60
to fa669e2e6d12 (8 revisions) (flutter/flutter#165342)
2025-03-17 [email protected] Add documentation for Java test
filtering to plugins test document (flutter/flutter#165314)
2025-03-17 [email protected] Roll Fuchsia Linux SDK from
SDNQgVXxHbbd0qsVw... to mPniqXmPpXqMMpM8z... (flutter/flutter#165313)
2025-03-17 [email protected] Roll Dart SDK from
9283d47199b7 to 725172afbc42 (1 revision) (flutter/flutter#165310)
2025-03-17 [email protected] feat(Tooltip): replace the height parameter
with constraints (flutter/flutter#163314)
2025-03-17 [email protected] Fix arrowHeadColor breaks differentiation
between states (flutter/flutter#165178)
2025-03-17 [email protected] Removes
assumption that basis scalar and rounded_scalar match
(flutter/flutter#165166)
2025-03-17 [email protected] Roll Skia from 69cf4c2c5db8
to e45207898e60 (1 revision) (flutter/flutter#165300)
2025-03-17 [email protected] Refactor: Move
sliders value indicator shape to seperate file (flutter/flutter#162858)
2025-03-17 [email protected] Roll Skia from 3931c31032c7
to 69cf4c2c5db8 (1 revision) (flutter/flutter#165288)
2025-03-17 [email protected] Delete
`docs/infra/Infra-Ticket-Queue.md` (flutter/flutter#165258)
2025-03-16 [email protected] Roll Skia from 3413a02d6fc8
to 3931c31032c7 (1 revision) (flutter/flutter#165277)
2025-03-16 [email protected] Roll Fuchsia Linux SDK from
LPz5j18JDsms41r3T... to SDNQgVXxHbbd0qsVw... (flutter/flutter#165275)
2025-03-16 [email protected] Roll Dart SDK from
067560bcd521 to 9283d47199b7 (1 revision) (flutter/flutter#165269)
2025-03-16 [email protected] Roll Skia from f124daeb564d
to 3413a02d6fc8 (1 revision) (flutter/flutter#165263)
2025-03-15 [email protected] Roll Dart SDK from
40bb66a945e4 to 067560bcd521 (1 revision) (flutter/flutter#165262)
2025-03-15 [email protected] Roll Fuchsia Linux SDK from
efdpJgW4DIV6j1mO1... to LPz5j18JDsms41r3T... (flutter/flutter#165252)
2025-03-15 [email protected] Roll Dart SDK from
f23d496f0585 to 40bb66a945e4 (1 revision) (flutter/flutter#165250)
2025-03-15 [email protected] Roll Dart SDK from
8814749ec6a4 to f23d496f0585 (1 revision) (flutter/flutter#165246)
2025-03-15 [email protected] Roll Skia from 4568e766ed0a
to f124daeb564d (1 revision) (flutter/flutter#165245)
2025-03-15 [email protected] Revert "Prevent
explicit roles from merging (#164732)" (flutter/flutter#165222)
2025-03-15 [email protected] Roll Skia from bac6e76abfc7
to 4568e766ed0a (5 revisions) (flutter/flutter#165241)
2025-03-14 [email protected] Roll Dart SDK from
a51f1bfa0f6a to 8814749ec6a4 (2 revisions) (flutter/flutter#165227)
2025-03-14 [email protected] Roll Skia from 98b6922deecf
to bac6e76abfc7 (5 revisions) (flutter/flutter#165225)
2025-03-14 [email protected] Point ktlint AS
docs to the `.editorconfig` that is actually used by ci, instead of
making a copy in the README (flutter/flutter#165213)
2025-03-14 [email protected] Add remaining dart fixes for Color
deprecations when importing painting.dart (flutter/flutter#162609)
2025-03-14 [email protected] [Accessibility]
Add required semantics flags (flutter/flutter#164585)
2025-03-14 [email protected] Roll Skia from f4467ff38f1f
to 98b6922deecf (5 revisions) (flutter/flutter#165215)
2025-03-14 [email protected] Convert `BaseFlutterTask` From Groovy
to Kotlin (flutter/flutter#163148)
2025-03-14 [email protected]
`OverlayPortal.overlayChildLayoutBuilder` (flutter/flutter#164034)
2025-03-14 [email protected] Remove redundant `useMaterial3: true`
(flutter/flutter#163376)
2025-03-14 [email protected] Roll Packages from
9cc6f37 to ff7724c (1 revision) (flutter/flutter#165197)
2025-03-14 [email protected] Changelog updates
from 3.29.2 (flutter/flutter#165194)
2025-03-14 [email protected] Roll Dart SDK from
576514b2bfce to a51f1bfa0f6a (1 revision) (flutter/flutter#165191)
2025-03-14 [email protected] Roll Dart SDK from
ceb58442306e to 576514b2bfce (2 revisions) (flutter/flutter#165180)
2025-03-14 [email protected] Roll Fuchsia Linux SDK from
qXOLczyRJadxMW0PK... to efdpJgW4DIV6j1mO1... (flutter/flutter#165175)
2025-03-14 [email protected] [Impeller] Enable mediatek on API
34+. (flutter/flutter#165156)
2025-03-14 [email protected] Roll Dart SDK from
cd06d4ba4fec to ceb58442306e (5 revisions) (flutter/flutter#165159)
2025-03-13 [email protected] [FGP conversion]
Port `FlutterExtension` from Groovy to Kotlin (flutter/flutter#165143)
2025-03-13 [email protected] Prevent explicit
roles from merging (flutter/flutter#164732)
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
…8922)

Manual roll Flutter from b16430b to 1d954f4 (114 revisions)

Manual roll requested by [email protected]

flutter/flutter@b16430b...1d954f4

2025-03-17 [email protected] Revert "[skwasm] Dynamic Threading
(#164748)" (flutter/flutter#165350)
2025-03-17 [email protected] Roll Skia from fa669e2e6d12
to 52130e5c3b34 (4 revisions) (flutter/flutter#165348)
2025-03-17 [email protected]
`OverlayPortal.childLayoutBuilder` should rebuild when `OverlayPortal`
rebuilds. (flutter/flutter#165331)
2025-03-17 [email protected] [web][a11y]Delete
_childContainerElement (flutter/flutter#163662)
2025-03-17 [email protected] Roll Skia from e45207898e60
to fa669e2e6d12 (8 revisions) (flutter/flutter#165342)
2025-03-17 [email protected] Add documentation for Java test
filtering to plugins test document (flutter/flutter#165314)
2025-03-17 [email protected] Roll Fuchsia Linux SDK from
SDNQgVXxHbbd0qsVw... to mPniqXmPpXqMMpM8z... (flutter/flutter#165313)
2025-03-17 [email protected] Roll Dart SDK from
9283d47199b7 to 725172afbc42 (1 revision) (flutter/flutter#165310)
2025-03-17 [email protected] feat(Tooltip): replace the height parameter
with constraints (flutter/flutter#163314)
2025-03-17 [email protected] Fix arrowHeadColor breaks differentiation
between states (flutter/flutter#165178)
2025-03-17 [email protected] Removes
assumption that basis scalar and rounded_scalar match
(flutter/flutter#165166)
2025-03-17 [email protected] Roll Skia from 69cf4c2c5db8
to e45207898e60 (1 revision) (flutter/flutter#165300)
2025-03-17 [email protected] Refactor: Move
sliders value indicator shape to seperate file (flutter/flutter#162858)
2025-03-17 [email protected] Roll Skia from 3931c31032c7
to 69cf4c2c5db8 (1 revision) (flutter/flutter#165288)
2025-03-17 [email protected] Delete
`docs/infra/Infra-Ticket-Queue.md` (flutter/flutter#165258)
2025-03-16 [email protected] Roll Skia from 3413a02d6fc8
to 3931c31032c7 (1 revision) (flutter/flutter#165277)
2025-03-16 [email protected] Roll Fuchsia Linux SDK from
LPz5j18JDsms41r3T... to SDNQgVXxHbbd0qsVw... (flutter/flutter#165275)
2025-03-16 [email protected] Roll Dart SDK from
067560bcd521 to 9283d47199b7 (1 revision) (flutter/flutter#165269)
2025-03-16 [email protected] Roll Skia from f124daeb564d
to 3413a02d6fc8 (1 revision) (flutter/flutter#165263)
2025-03-15 [email protected] Roll Dart SDK from
40bb66a945e4 to 067560bcd521 (1 revision) (flutter/flutter#165262)
2025-03-15 [email protected] Roll Fuchsia Linux SDK from
efdpJgW4DIV6j1mO1... to LPz5j18JDsms41r3T... (flutter/flutter#165252)
2025-03-15 [email protected] Roll Dart SDK from
f23d496f0585 to 40bb66a945e4 (1 revision) (flutter/flutter#165250)
2025-03-15 [email protected] Roll Dart SDK from
8814749ec6a4 to f23d496f0585 (1 revision) (flutter/flutter#165246)
2025-03-15 [email protected] Roll Skia from 4568e766ed0a
to f124daeb564d (1 revision) (flutter/flutter#165245)
2025-03-15 [email protected] Revert "Prevent
explicit roles from merging (#164732)" (flutter/flutter#165222)
2025-03-15 [email protected] Roll Skia from bac6e76abfc7
to 4568e766ed0a (5 revisions) (flutter/flutter#165241)
2025-03-14 [email protected] Roll Dart SDK from
a51f1bfa0f6a to 8814749ec6a4 (2 revisions) (flutter/flutter#165227)
2025-03-14 [email protected] Roll Skia from 98b6922deecf
to bac6e76abfc7 (5 revisions) (flutter/flutter#165225)
2025-03-14 [email protected] Point ktlint AS
docs to the `.editorconfig` that is actually used by ci, instead of
making a copy in the README (flutter/flutter#165213)
2025-03-14 [email protected] Add remaining dart fixes for Color
deprecations when importing painting.dart (flutter/flutter#162609)
2025-03-14 [email protected] [Accessibility]
Add required semantics flags (flutter/flutter#164585)
2025-03-14 [email protected] Roll Skia from f4467ff38f1f
to 98b6922deecf (5 revisions) (flutter/flutter#165215)
2025-03-14 [email protected] Convert `BaseFlutterTask` From Groovy
to Kotlin (flutter/flutter#163148)
2025-03-14 [email protected]
`OverlayPortal.overlayChildLayoutBuilder` (flutter/flutter#164034)
2025-03-14 [email protected] Remove redundant `useMaterial3: true`
(flutter/flutter#163376)
2025-03-14 [email protected] Roll Packages from
9cc6f37 to ff7724c (1 revision) (flutter/flutter#165197)
2025-03-14 [email protected] Changelog updates
from 3.29.2 (flutter/flutter#165194)
2025-03-14 [email protected] Roll Dart SDK from
576514b2bfce to a51f1bfa0f6a (1 revision) (flutter/flutter#165191)
2025-03-14 [email protected] Roll Dart SDK from
ceb58442306e to 576514b2bfce (2 revisions) (flutter/flutter#165180)
2025-03-14 [email protected] Roll Fuchsia Linux SDK from
qXOLczyRJadxMW0PK... to efdpJgW4DIV6j1mO1... (flutter/flutter#165175)
2025-03-14 [email protected] [Impeller] Enable mediatek on API
34+. (flutter/flutter#165156)
2025-03-14 [email protected] Roll Dart SDK from
cd06d4ba4fec to ceb58442306e (5 revisions) (flutter/flutter#165159)
2025-03-13 [email protected] [FGP conversion]
Port `FlutterExtension` from Groovy to Kotlin (flutter/flutter#165143)
2025-03-13 [email protected] Prevent explicit
roles from merging (flutter/flutter#164732)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
This API allows the widget tree of an `OverlayPortal.overlayChild` to
depend on various layout information (e.g. the incoming constraints, or
the size of a RenderObject) from another child subtree of `Overlay` that
does layout before the `overlayChild`.

Most RenderObject subclasses can only access its child's or children's
layout info, but not the layout info of its other descendants because of
the "relayout boundary" optimization. Such locality makes the layout
dependencies easier to reason about but it also makes it difficult to
implement certain common UI patterns (see the examples in the
description of the [previous
PR](flutter#163575))

The API is currently only available on `OverlayPortal` as it is the only
Overlay API (AFAIK) that guarantees every render object in a "path"
within the render tree has finished doing layout.

TODO: polish the API docs and code comments
TODO: more tests?

TODO: markNeedsLayout should not imply markNeedsPaint in this case (or
in layout builders in general).

part1: flutter#163575
diff this ... part1
LongCatIsLooong/flutter@OverlayPortal-always-add-to-dirty-list...LongCatIsLooong:flutter:OverlayPortal-paint-transform-builder

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
This remedies a breaking change from
flutter#164034 by restoring
RenderConstrainedLayoutBuilder as a typedef of
RenderAbstractLayoutBuilderMixin and providing a default implementation
for `layoutInfo`.

Fixes flutter#167247

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

f: scrolling Viewports, list views, slivers, etc. framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants