Skip to content

Conversation

@LouiseHsu
Copy link
Contributor

@LouiseHsu LouiseHsu commented Aug 12, 2025

Part of #169147 (iOS) and #149033 (Android). Implementation PRs coming up!

This enables support for dynamic view resizing in non-web embedders. While this PR enables support, it does not implement support.

Specifically, this creates the pipes (in viewport metrics) for min/max width/height constraints that tell the engine and framework that when rendering the frame it should adjust the width/height as needed for the content. The engine should also discard layer trees that do not fit the constraints.

Since the engine now relies on BoxConstraints, geometry.h has now been moved out of embedder specific codepath so that both embedder and engine can depend on it.

Related PRs:
dart:ui: flutter/engine#48090
framework: #138648
framework reland: #140918
Web: flutter/engine#50271

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.

@github-actions github-actions bot added engine flutter/engine related. See also e: labels. f: scrolling Viewports, list views, slivers, etc. labels Aug 12, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the necessary engine-side support for dynamic view resizing. The changes correctly plumb through view constraints from the embedder to the framework. My review identified a functional issue where new constraint parameters are ignored in hooks.dart, a documentation error in platform_dispatcher.dart, a minor typo, and a C++ style guide violation in shell.h. Addressing these points will improve the correctness and quality of the implementation.

@flutter flutter deleted a comment from gemini-code-assist bot Aug 12, 2025
@LouiseHsu
Copy link
Contributor Author

This PR still needs tests btw.

@github-actions github-actions bot added platform-android Android applications specifically team-android Owned by Android platform team labels Aug 13, 2025
@github-actions github-actions bot removed platform-android Android applications specifically team-android Owned by Android platform team labels Aug 19, 2025
@mboetger mboetger requested a review from loic-sharma August 19, 2025 18:48
@mboetger mboetger marked this pull request as ready for review August 19, 2025 18:48
@auto-submit
Copy link
Contributor

auto-submit bot commented Sep 17, 2025

autosubmit label was removed for flutter/flutter/173610, because - The status or check suite Linux web_canvaskit_tests_4 has failed. Please fix the issues identified (or deflake) before re-applying this label.

@mboetger mboetger added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 17, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Sep 17, 2025

autosubmit label was removed for flutter/flutter/173610, because - The status or check suite Google testing has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 17, 2025
@mboetger mboetger added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 18, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Sep 18, 2025
Merged via the queue into flutter:master with commit b683af0 Sep 18, 2025
192 of 193 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 18, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 20, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Sep 20, 2025
Roll Flutter from 8f94cb0d8f01 to 9ff2767f3cb6 (56 revisions)

flutter/flutter@8f94cb0...9ff2767

2025-09-20 [email protected] Roll Fuchsia Linux SDK from 0_jKqLGnkILvQ5C8a... to CcCe3HpQtBYhTZscb... (flutter/flutter#175698)
2025-09-20 [email protected] Roll Dart SDK from e6e9248aee4f to 9e943fe076c8 (1 revision) (flutter/flutter#175697)
2025-09-20 [email protected] Add `menuController` to `DropdownMenu` (flutter/flutter#175039)
2025-09-20 [email protected] Roll Skia from 1dae085e2f31 to a38a531dec1d (3 revisions) (flutter/flutter#175694)
2025-09-20 [email protected] [a11y] TimePicker clock is unnecessarily announced (flutter/flutter#175570)
2025-09-20 [email protected] Roll Dart SDK from 78e68d1a7dbf to e6e9248aee4f (4 revisions) (flutter/flutter#175690)
2025-09-19 [email protected] Roll Skia from b56003bf2c20 to 1dae085e2f31 (1 revision) (flutter/flutter#175674)
2025-09-19 [email protected] Update `CODEOWNERS` (for dev-tooling) (flutter/flutter#175201)
2025-09-19 [email protected] [a11y-app] Add label to TextFormField in AutoCompleteUseCase. (flutter/flutter#175576)
2025-09-19 [email protected] Fix RadioGroup single selection check. (flutter/flutter#175654)
2025-09-19 [email protected] Roll Packages from f2a65fd to 3d5c419 (2 revisions) (flutter/flutter#175668)
2025-09-19 [email protected] Roll Skia from c74d2bdbd93c to b56003bf2c20 (2 revisions) (flutter/flutter#175665)
2025-09-19 [email protected] Add `CupertinoLinearActivityIndicator` (flutter/flutter#170108)
2025-09-19 [email protected] [ Widget Preview ] Don't update filtered preview set when selecting non-source files (flutter/flutter#175596)
2025-09-19 [email protected] Roll Dart SDK from 2c79803c97db to 78e68d1a7dbf (3 revisions) (flutter/flutter#175646)
2025-09-19 [email protected] Delete unused web_unicode library (flutter/flutter#174896)
2025-09-19 [email protected] Roll Skia from 684f3a831216 to c74d2bdbd93c (2 revisions) (flutter/flutter#175644)
2025-09-19 [email protected] Roll Skia from 462bdece17bf to 684f3a831216 (3 revisions) (flutter/flutter#175641)
2025-09-19 [email protected] Roll Skia from a2c38aa9df80 to 462bdece17bf (11 revisions) (flutter/flutter#175629)
2025-09-18 [email protected] fix(tool): Use merge-base for content hash in detached HEAD (flutter/flutter#175554)
2025-09-18 [email protected] [web] Unskip Cupertino datepicker golden tests in Skwasm (flutter/flutter#174666)
2025-09-18 [email protected] Update rules to include extension rules (flutter/flutter#175618)
2025-09-18 [email protected] [engine] Cleanup Fuchsia FDIO library dependencies (flutter/flutter#174847)
2025-09-18 [email protected] Make sure that a CloseButton doesn't crash in 0x0 environment (flutter/flutter#172902)
2025-09-18 [email protected] [ Tool ] Serve DevTools from DDS, remove ResidentDevToolsHandler (flutter/flutter#174580)
2025-09-18 [email protected] [engine][fuchsia] Update to Fuchsia API level 28 and roll latest GN SDK (flutter/flutter#175425)
2025-09-18 [email protected] Added a 36 device for Firebase Lab Testing (flutter/flutter#175613)
2025-09-18 [email protected] Roll Dart SDK from 09a101793af4 to 2c79803c97db (2 revisions) (flutter/flutter#175608)
2025-09-18 [email protected] Engine Support for Dynamic View Resizing (flutter/flutter#173610)
2025-09-18 [email protected] Roll Packages from fdee698 to f2a65fd (3 revisions) (flutter/flutter#175594)
2025-09-18 [email protected] Connect the FlutterEngine to the FlutterSceneDelegate (flutter/flutter#174910)
2025-09-18 [email protected] Roll Dart SDK from de5dd0f1530f to 09a101793af4 (2 revisions) (flutter/flutter#175583)
2025-09-18 [email protected] Roll Skia from 7b9fe91446ee to a2c38aa9df80 (1 revision) (flutter/flutter#175579)
2025-09-18 [email protected] Roll Skia from ab1b10547461 to 7b9fe91446ee (4 revisions) (flutter/flutter#175569)
2025-09-18 [email protected] [a11y-app] Fix form field label and error message (flutter/flutter#174831)
2025-09-18 [email protected] Fix InputDecoration does not apply errorStyle to error (flutter/flutter#174787)
2025-09-18 [email protected] Migrate to `WidgetPropertyResolver` (flutter/flutter#175397)
2025-09-18 [email protected] Migrate to WidgetState (flutter/flutter#175396)
2025-09-18 [email protected] Roll Skia from 79ec8dfcd9d4 to ab1b10547461 (17 revisions) (flutter/flutter#175561)
2025-09-18 [email protected] Removes NOTICES from licenses input (flutter/flutter#174967)
2025-09-18 [email protected] Roll Dart SDK from 116f7fe72839 to de5dd0f1530f (2 revisions) (flutter/flutter#175557)
2025-09-17 [email protected] [reland][web] Refactor renderers to use the same frontend code #174588 (flutter/flutter#175392)
2025-09-17 [email protected] feat: Enable WidgetStateColor to be used in ChipThemeData.deleteIconColor (flutter/flutter#171646)
2025-09-17 [email protected] Filter out unexpected process logs on iOS with better regex matching. (flutter/flutter#175452)
2025-09-17 [email protected] CupertinoContextMenu child respects available screen width (flutter/flutter#175300)
2025-09-17 [email protected] Correct documentation in PredictiveBackFullscreenPageTransitionsBuilder (flutter/flutter#174362)
...
Jaineel-Mamtora pushed a commit to Jaineel-Mamtora/flutter_forked that referenced this pull request Sep 24, 2025
Part of flutter#169147 (iOS) and
flutter#149033 (Android).
Implementation PRs coming up!

This enables support for dynamic view resizing in non-web embedders.
While this PR enables support, it does not _implement_ support.

Specifically, this creates the pipes (in viewport metrics) for min/max
width/height constraints that tell the engine and framework that when
rendering the frame it should adjust the width/height as needed for the
content. The engine should also discard layer trees that do not fit the
constraints.

Since the engine now relies on BoxConstraints, geometry.h has now been
moved out of embedder specific codepath so that both embedder and engine
can depend on it.

Related PRs:
`dart:ui`: flutter/engine#48090
`framework`: flutter#138648
`framework reland`: flutter#140918
`Web`: flutter/engine#50271

## 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.

---------

Co-authored-by: Matt Boetger <[email protected]>
Co-authored-by: Matt Boetger <[email protected]>
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 12, 2025
lucaantonelli pushed a commit to lucaantonelli/flutter that referenced this pull request Nov 21, 2025
Part of flutter#169147 (iOS) and
flutter#149033 (Android).
Implementation PRs coming up!

This enables support for dynamic view resizing in non-web embedders.
While this PR enables support, it does not _implement_ support.

Specifically, this creates the pipes (in viewport metrics) for min/max
width/height constraints that tell the engine and framework that when
rendering the frame it should adjust the width/height as needed for the
content. The engine should also discard layer trees that do not fit the
constraints.

Since the engine now relies on BoxConstraints, geometry.h has now been
moved out of embedder specific codepath so that both embedder and engine
can depend on it.

Related PRs:
`dart:ui`: flutter/engine#48090
`framework`: flutter#138648
`framework reland`: flutter#140918
`Web`: flutter/engine#50271

## 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.

---------

Co-authored-by: Matt Boetger <[email protected]>
Co-authored-by: Matt Boetger <[email protected]>
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
Part of flutter#169147 (iOS) and
flutter#149033 (Android).
Implementation PRs coming up!

This enables support for dynamic view resizing in non-web embedders.
While this PR enables support, it does not _implement_ support.

Specifically, this creates the pipes (in viewport metrics) for min/max
width/height constraints that tell the engine and framework that when
rendering the frame it should adjust the width/height as needed for the
content. The engine should also discard layer trees that do not fit the
constraints.

Since the engine now relies on BoxConstraints, geometry.h has now been
moved out of embedder specific codepath so that both embedder and engine
can depend on it.

Related PRs:
`dart:ui`: flutter/engine#48090
`framework`: flutter#138648
`framework reland`: flutter#140918
`Web`: flutter/engine#50271

## 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.

---------

Co-authored-by: Matt Boetger <[email protected]>
Co-authored-by: Matt Boetger <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: desktop Running on desktop a: text input Entering text in a text field or keyboard related problems engine flutter/engine related. See also e: labels. f: scrolling Viewports, list views, slivers, etc. platform-android Android applications specifically platform-fuchsia Fuchsia code specifically platform-ios iOS applications specifically platform-windows Building on or for Windows specifically team-android Owned by Android platform team team-ios Owned by iOS platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants