Skip to content

[web] Fix empty first frame in multiview mode - #172493

Merged
auto-submit[bot] merged 2 commits into
flutter:masterfrom
mdebbar:empty_first_frame
Jul 25, 2025
Merged

auto-submit[bot] merged 2 commits into
flutter:masterfrom
mdebbar:empty_first_frame

Conversation

@mdebbar

@mdebbar mdebbar commented Jul 21, 2025 •

Copy link
Copy Markdown
Contributor

The issue was caused by a stale EngineFlutterView.physicalSize that happened to be Size(0, 0) making rendering a no-op in the first frame.

Fixes #172397

@github-actions github-actions Bot added engine flutter/engine related. See also e: labels. platform-web Web applications specifically labels Jul 21, 2025
@mdebbar
mdebbar requested review from ditman and yjbanov July 22, 2025 16:16

@yjbanov yjbanov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

@mdebbar mdebbar added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 25, 2025
@auto-submit
auto-submit Bot added this pull request to the merge queue Jul 25, 2025
Merged via the queue into flutter:master with commit c1c38ad Jul 25, 2025
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 25, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 26, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 27, 2025
azatech pushed a commit to azatech/flutter that referenced this pull request Jul 28, 2025
The issue was caused by a stale `EngineFlutterView.physicalSize` that
happened to be `Size(0, 0)` making rendering a no-op in the first frame.

Fixes flutter#172397
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 28, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 28, 2025
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Jul 28, 2025
Roll Flutter from 20788c0 to cfbaa18 (43 revisions)

flutter/flutter@20788c0...cfbaa18

2025-07-28 [email protected] Remove shortner (flutter/flutter#172844)
2025-07-28 [email protected] Update `flutter pub get` to use `flutter.version.json` (instead of `version`) (flutter/flutter#172798)
2025-07-27 [email protected] Roll Fuchsia Linux SDK from i7RS-4iBtdndwa3Jy... to tK_PAaLeo0pUxi8hv... (flutter/flutter#172827)
2025-07-26 [email protected] Roll Fuchsia Linux SDK from 4IewCwqcEm7r4QsXd... to i7RS-4iBtdndwa3Jy... (flutter/flutter#172808)
2025-07-26 98614782+auto-submit[bot]@users.noreply.github.com Reverts "fix: get content hash for master on local engine branches (#172792)" (flutter/flutter#172805)
2025-07-26 [email protected] fix: build size_exp artifacts in post (flutter/flutter#172802)
2025-07-26 [email protected] fix: get content hash for master on local engine branches (flutter/flutter#172792)
2025-07-25 [email protected] Update `main`/`master` repoExceptions analysis set (flutter/flutter#172796)
2025-07-25 [email protected] Remove deprecated `--[no-]-disable-dds` (flutter/flutter#172791)
2025-07-25 [email protected] `last_engine_commit.ps1`: Use `$flutterRoot` instead of `$gitTopLevel` (flutter/flutter#172786)
2025-07-25 [email protected] Check file contents, remove tests that are now invalid (`: 'none'`) (flutter/flutter#172788)
2025-07-25 [email protected] windows: allow pwsh.bat wrapper (flutter/flutter#171778)
2025-07-25 [email protected] [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. (flutter/flutter#172592)
2025-07-25 [email protected] Remove deprecated `AssetManifest.json` file (flutter/flutter#172594)
2025-07-25 [email protected] Refactor `verifyVersion` into typed `Version` object, use it (flutter/flutter#172780)
2025-07-25 [email protected] Bump the customer tests to pick up an update to Zulip's tests, for th… (flutter/flutter#172733)
2025-07-25 [email protected] Rename `AppRunLogger`, stop writing status messages that break JSON (flutter/flutter#172591)
2025-07-25 [email protected] Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`. (flutter/flutter#172510)
2025-07-25 [email protected] Fix previous text input connection interrupts enter/space (flutter/flutter#171973)
2025-07-25 [email protected] Update CHANGELOG.md for 3.32.8 (flutter/flutter#172779)
2025-07-25 [email protected] Fix an `omit-type` lint that is breaking the tree (flutter/flutter#172776)
2025-07-25 [email protected] feat(tool): Respect user-data-dir flag from web-browser-flag (flutter/flutter#169445)
2025-07-25 [email protected] [web] Fix empty first frame in multiview mode (flutter/flutter#172493)
2025-07-25 [email protected] Migrate to null aware elements - Part 3 (flutter/flutter#172307)
2025-07-25 [email protected] Update few links in docs (flutter/flutter#172166)
2025-07-25 [email protected] Roll Skia from 768ace3fd144 to 409e1c7ba09b (1 revision) (flutter/flutter#172745)
2025-07-25 [email protected] Roll Fuchsia Linux SDK from a_55b5hqpRnigzuNC... to 4IewCwqcEm7r4QsXd... (flutter/flutter#172742)
2025-07-25 [email protected] Roll Skia from 094ac350125f to 768ace3fd144 (18 revisions) (flutter/flutter#172735)
2025-07-25 [email protected] Remove 2023 deprecated `'platforms'` key from daemon output (flutter/flutter#172593)
2025-07-24 [email protected] Manual roll of Dart from 26dece893751 to 5ede85aff798 (flutter/flutter#172731)
2025-07-24 [email protected] 169108 ci debug (flutter/flutter#172589)
2025-07-24 [email protected] Improve assertion message in `_MixedBorderRadius.resolve()` (flutter/flutter#172100)
2025-07-24 [email protected] Make sure that a BottomAppBar doesn't crash in 0x0 environment (flutter/flutter#172097)
2025-07-24 [email protected] Handle#6537 bottom navigation bar (flutter/flutter#172404)
2025-07-24 [email protected] Make sure that a MaterialBanner doesn't crash in 0x0 environment (flutter/flutter#172074)
2025-07-24 [email protected] Remove support for `pluginClass: none` (on `master`; `> 3.35.0`) (flutter/flutter#172579)
2025-07-24 [email protected] Make sure that a Card doesn't crash in 0x0 environment (flutter/flutter#172373)
2025-07-24 [email protected] Make sure that an AboutDialog doesn't crash in 0x0 environment (flutter/flutter#172444)
2025-07-24 [email protected] Make sure that an ActionChip doesn't crash in 0x0 environment (flutter/flutter#172684)
2025-07-24 [email protected] Delete (unused) `dev/checks_tool` directory (flutter/flutter#172715)
2025-07-24 [email protected] [Android] Add missing ci configuration for `Linux android_java17_tool_integration_tests` (flutter/flutter#172702)
2025-07-24 [email protected] Flutter-Cherrypick-Process.md - Spell cherry-pick consistently (flutter/flutter#172697)
2025-07-24 [email protected] Bringup `linux_web_engine_tests`; failing 4+ times in a row (flutter/flutter#172714)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
@mdebbar
mdebbar deleted the empty_first_frame branch July 28, 2025 19:31
vashworth pushed a commit to vashworth/packages that referenced this pull request Jul 30, 2025
Roll Flutter from 20788c0 to cfbaa18 (43 revisions)

flutter/flutter@20788c0...cfbaa18

2025-07-28 [email protected] Remove shortner (flutter/flutter#172844)
2025-07-28 [email protected] Update `flutter pub get` to use `flutter.version.json` (instead of `version`) (flutter/flutter#172798)
2025-07-27 [email protected] Roll Fuchsia Linux SDK from i7RS-4iBtdndwa3Jy... to tK_PAaLeo0pUxi8hv... (flutter/flutter#172827)
2025-07-26 [email protected] Roll Fuchsia Linux SDK from 4IewCwqcEm7r4QsXd... to i7RS-4iBtdndwa3Jy... (flutter/flutter#172808)
2025-07-26 98614782+auto-submit[bot]@users.noreply.github.com Reverts "fix: get content hash for master on local engine branches (#172792)" (flutter/flutter#172805)
2025-07-26 [email protected] fix: build size_exp artifacts in post (flutter/flutter#172802)
2025-07-26 [email protected] fix: get content hash for master on local engine branches (flutter/flutter#172792)
2025-07-25 [email protected] Update `main`/`master` repoExceptions analysis set (flutter/flutter#172796)
2025-07-25 [email protected] Remove deprecated `--[no-]-disable-dds` (flutter/flutter#172791)
2025-07-25 [email protected] `last_engine_commit.ps1`: Use `$flutterRoot` instead of `$gitTopLevel` (flutter/flutter#172786)
2025-07-25 [email protected] Check file contents, remove tests that are now invalid (`: 'none'`) (flutter/flutter#172788)
2025-07-25 [email protected] windows: allow pwsh.bat wrapper (flutter/flutter#171778)
2025-07-25 [email protected] [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. (flutter/flutter#172592)
2025-07-25 [email protected] Remove deprecated `AssetManifest.json` file (flutter/flutter#172594)
2025-07-25 [email protected] Refactor `verifyVersion` into typed `Version` object, use it (flutter/flutter#172780)
2025-07-25 [email protected] Bump the customer tests to pick up an update to Zulip's tests, for th… (flutter/flutter#172733)
2025-07-25 [email protected] Rename `AppRunLogger`, stop writing status messages that break JSON (flutter/flutter#172591)
2025-07-25 [email protected] Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`. (flutter/flutter#172510)
2025-07-25 [email protected] Fix previous text input connection interrupts enter/space (flutter/flutter#171973)
2025-07-25 [email protected] Update CHANGELOG.md for 3.32.8 (flutter/flutter#172779)
2025-07-25 [email protected] Fix an `omit-type` lint that is breaking the tree (flutter/flutter#172776)
2025-07-25 [email protected] feat(tool): Respect user-data-dir flag from web-browser-flag (flutter/flutter#169445)
2025-07-25 [email protected] [web] Fix empty first frame in multiview mode (flutter/flutter#172493)
2025-07-25 [email protected] Migrate to null aware elements - Part 3 (flutter/flutter#172307)
2025-07-25 [email protected] Update few links in docs (flutter/flutter#172166)
2025-07-25 [email protected] Roll Skia from 768ace3fd144 to 409e1c7ba09b (1 revision) (flutter/flutter#172745)
2025-07-25 [email protected] Roll Fuchsia Linux SDK from a_55b5hqpRnigzuNC... to 4IewCwqcEm7r4QsXd... (flutter/flutter#172742)
2025-07-25 [email protected] Roll Skia from 094ac350125f to 768ace3fd144 (18 revisions) (flutter/flutter#172735)
2025-07-25 [email protected] Remove 2023 deprecated `'platforms'` key from daemon output (flutter/flutter#172593)
2025-07-24 [email protected] Manual roll of Dart from 26dece893751 to 5ede85aff798 (flutter/flutter#172731)
2025-07-24 [email protected] 169108 ci debug (flutter/flutter#172589)
2025-07-24 [email protected] Improve assertion message in `_MixedBorderRadius.resolve()` (flutter/flutter#172100)
2025-07-24 [email protected] Make sure that a BottomAppBar doesn't crash in 0x0 environment (flutter/flutter#172097)
2025-07-24 [email protected] Handle#6537 bottom navigation bar (flutter/flutter#172404)
2025-07-24 [email protected] Make sure that a MaterialBanner doesn't crash in 0x0 environment (flutter/flutter#172074)
2025-07-24 [email protected] Remove support for `pluginClass: none` (on `master`; `> 3.35.0`) (flutter/flutter#172579)
2025-07-24 [email protected] Make sure that a Card doesn't crash in 0x0 environment (flutter/flutter#172373)
2025-07-24 [email protected] Make sure that an AboutDialog doesn't crash in 0x0 environment (flutter/flutter#172444)
2025-07-24 [email protected] Make sure that an ActionChip doesn't crash in 0x0 environment (flutter/flutter#172684)
2025-07-24 [email protected] Delete (unused) `dev/checks_tool` directory (flutter/flutter#172715)
2025-07-24 [email protected] [Android] Add missing ci configuration for `Linux android_java17_tool_integration_tests` (flutter/flutter#172702)
2025-07-24 [email protected] Flutter-Cherrypick-Process.md - Spell cherry-pick consistently (flutter/flutter#172697)
2025-07-24 [email protected] Bringup `linux_web_engine_tests`; failing 4+ times in a row (flutter/flutter#172714)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
ksokolovskyi pushed a commit to ksokolovskyi/flutter that referenced this pull request Aug 19, 2025
The issue was caused by a stale `EngineFlutterView.physicalSize` that
happened to be `Size(0, 0)` making rendering a no-op in the first frame.

Fixes flutter#172397
mboetger pushed a commit to mboetger/flutter that referenced this pull request Sep 18, 2025
The issue was caused by a stale `EngineFlutterView.physicalSize` that
happened to be `Size(0, 0)` making rendering a no-op in the first frame.

Fixes flutter#172397
korca0220 pushed a commit to korca0220/flutter that referenced this pull request Sep 22, 2025
The issue was caused by a stale `EngineFlutterView.physicalSize` that
happened to be `Size(0, 0)` making rendering a no-op in the first frame.

Fixes flutter#172397
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
The issue was caused by a stale `EngineFlutterView.physicalSize` that
happened to be `Size(0, 0)` making rendering a no-op in the first frame.

Fixes flutter#172397
github-merge-queue Bot pushed a commit that referenced this pull request Dec 15, 2025
Fixes #175074

There was an implicit expectation in the resizing code: When the virtual
keyboard is up on mobile, the view's `physicalSize` remains fixed, and
any resizes (presumably caused by the virtual keyboard itself) should be
considered as `viewInsets`.

This expectation was broken inadvertently by my PR:
#172493

<hr>

The sequence of events that lead to the reported issue:

1. View's physical size is calculated based on window size.
2. Text editing starts, virtual keyboard comes up.
3. View's physical size remains unchanged, and the difference caused by
the keyboard is reported as view insets to the framework.
4. (so far so good).
5. When `resizeToAvoidBottomInset` is true, the framework will re-render
its content to fit the available size.
6. The new render call comes with a new size that's basically `physical
height - bottom inset`.
7. The engine takes that new size and applies it to the DOM.
8.  (now the view's DOM element has been resized incorrectly).
9. ...
10. Eventually, this leads to the new insets being calculated
incorrectly resulting in negative insets which cause the framework to
throw.

<hr>

The fix involves the following:
1. Respect the expectation mentioned above: when the keyboard is up,
view's physical size should remain unchanged.
2. *_If_* we ever end up with negative insets, catch it earlier in the
engine so it's easier to debug the root cause.
3. New regression test.
mdebbar added a commit to mdebbar/flutter that referenced this pull request Jan 5, 2026
Fixes flutter#175074

There was an implicit expectation in the resizing code: When the virtual
keyboard is up on mobile, the view's `physicalSize` remains fixed, and
any resizes (presumably caused by the virtual keyboard itself) should be
considered as `viewInsets`.

This expectation was broken inadvertently by my PR:
flutter#172493

<hr>

The sequence of events that lead to the reported issue:

1. View's physical size is calculated based on window size.
2. Text editing starts, virtual keyboard comes up.
3. View's physical size remains unchanged, and the difference caused by
the keyboard is reported as view insets to the framework.
4. (so far so good).
5. When `resizeToAvoidBottomInset` is true, the framework will re-render
its content to fit the available size.
6. The new render call comes with a new size that's basically `physical
height - bottom inset`.
7. The engine takes that new size and applies it to the DOM.
8.  (now the view's DOM element has been resized incorrectly).
9. ...
10. Eventually, this leads to the new insets being calculated
incorrectly resulting in negative insets which cause the framework to
throw.

<hr>

The fix involves the following:
1. Respect the expectation mentioned above: when the keyboard is up,
view's physical size should remain unchanged.
2. *_If_* we ever end up with negative insets, catch it earlier in the
engine so it's easier to debug the root cause.
3. New regression test.
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
Roll Flutter from 20788c0 to cfbaa18 (43 revisions)

flutter/flutter@20788c0...cfbaa18

2025-07-28 [email protected] Remove shortner (flutter/flutter#172844)
2025-07-28 [email protected] Update `flutter pub get` to use `flutter.version.json` (instead of `version`) (flutter/flutter#172798)
2025-07-27 [email protected] Roll Fuchsia Linux SDK from i7RS-4iBtdndwa3Jy... to tK_PAaLeo0pUxi8hv... (flutter/flutter#172827)
2025-07-26 [email protected] Roll Fuchsia Linux SDK from 4IewCwqcEm7r4QsXd... to i7RS-4iBtdndwa3Jy... (flutter/flutter#172808)
2025-07-26 98614782+auto-submit[bot]@users.noreply.github.com Reverts "fix: get content hash for master on local engine branches (#172792)" (flutter/flutter#172805)
2025-07-26 [email protected] fix: build size_exp artifacts in post (flutter/flutter#172802)
2025-07-26 [email protected] fix: get content hash for master on local engine branches (flutter/flutter#172792)
2025-07-25 [email protected] Update `main`/`master` repoExceptions analysis set (flutter/flutter#172796)
2025-07-25 [email protected] Remove deprecated `--[no-]-disable-dds` (flutter/flutter#172791)
2025-07-25 [email protected] `last_engine_commit.ps1`: Use `$flutterRoot` instead of `$gitTopLevel` (flutter/flutter#172786)
2025-07-25 [email protected] Check file contents, remove tests that are now invalid (`: 'none'`) (flutter/flutter#172788)
2025-07-25 [email protected] windows: allow pwsh.bat wrapper (flutter/flutter#171778)
2025-07-25 [email protected] [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. (flutter/flutter#172592)
2025-07-25 [email protected] Remove deprecated `AssetManifest.json` file (flutter/flutter#172594)
2025-07-25 [email protected] Refactor `verifyVersion` into typed `Version` object, use it (flutter/flutter#172780)
2025-07-25 [email protected] Bump the customer tests to pick up an update to Zulip's tests, for th… (flutter/flutter#172733)
2025-07-25 [email protected] Rename `AppRunLogger`, stop writing status messages that break JSON (flutter/flutter#172591)
2025-07-25 [email protected] Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`. (flutter/flutter#172510)
2025-07-25 [email protected] Fix previous text input connection interrupts enter/space (flutter/flutter#171973)
2025-07-25 [email protected] Update CHANGELOG.md for 3.32.8 (flutter/flutter#172779)
2025-07-25 [email protected] Fix an `omit-type` lint that is breaking the tree (flutter/flutter#172776)
2025-07-25 [email protected] feat(tool): Respect user-data-dir flag from web-browser-flag (flutter/flutter#169445)
2025-07-25 [email protected] [web] Fix empty first frame in multiview mode (flutter/flutter#172493)
2025-07-25 [email protected] Migrate to null aware elements - Part 3 (flutter/flutter#172307)
2025-07-25 [email protected] Update few links in docs (flutter/flutter#172166)
2025-07-25 [email protected] Roll Skia from 768ace3fd144 to 409e1c7ba09b (1 revision) (flutter/flutter#172745)
2025-07-25 [email protected] Roll Fuchsia Linux SDK from a_55b5hqpRnigzuNC... to 4IewCwqcEm7r4QsXd... (flutter/flutter#172742)
2025-07-25 [email protected] Roll Skia from 094ac350125f to 768ace3fd144 (18 revisions) (flutter/flutter#172735)
2025-07-25 [email protected] Remove 2023 deprecated `'platforms'` key from daemon output (flutter/flutter#172593)
2025-07-24 [email protected] Manual roll of Dart from 26dece893751 to 5ede85aff798 (flutter/flutter#172731)
2025-07-24 [email protected] 169108 ci debug (flutter/flutter#172589)
2025-07-24 [email protected] Improve assertion message in `_MixedBorderRadius.resolve()` (flutter/flutter#172100)
2025-07-24 [email protected] Make sure that a BottomAppBar doesn't crash in 0x0 environment (flutter/flutter#172097)
2025-07-24 [email protected] Handle#6537 bottom navigation bar (flutter/flutter#172404)
2025-07-24 [email protected] Make sure that a MaterialBanner doesn't crash in 0x0 environment (flutter/flutter#172074)
2025-07-24 [email protected] Remove support for `pluginClass: none` (on `master`; `> 3.35.0`) (flutter/flutter#172579)
2025-07-24 [email protected] Make sure that a Card doesn't crash in 0x0 environment (flutter/flutter#172373)
2025-07-24 [email protected] Make sure that an AboutDialog doesn't crash in 0x0 environment (flutter/flutter#172444)
2025-07-24 [email protected] Make sure that an ActionChip doesn't crash in 0x0 environment (flutter/flutter#172684)
2025-07-24 [email protected] Delete (unused) `dev/checks_tool` directory (flutter/flutter#172715)
2025-07-24 [email protected] [Android] Add missing ci configuration for `Linux android_java17_tool_integration_tests` (flutter/flutter#172702)
2025-07-24 [email protected] Flutter-Cherrypick-Process.md - Spell cherry-pick consistently (flutter/flutter#172697)
2025-07-24 [email protected] Bringup `linux_web_engine_tests`; failing 4+ times in a row (flutter/flutter#172714)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
bisor0627 pushed a commit to bisor0627/packages that referenced this pull request Jun 19, 2026
Roll Flutter from 20788c0 to cfbaa18 (43 revisions)

flutter/flutter@20788c0...cfbaa18

2025-07-28 [email protected] Remove shortner (flutter/flutter#172844)
2025-07-28 [email protected] Update `flutter pub get` to use `flutter.version.json` (instead of `version`) (flutter/flutter#172798)
2025-07-27 [email protected] Roll Fuchsia Linux SDK from i7RS-4iBtdndwa3Jy... to tK_PAaLeo0pUxi8hv... (flutter/flutter#172827)
2025-07-26 [email protected] Roll Fuchsia Linux SDK from 4IewCwqcEm7r4QsXd... to i7RS-4iBtdndwa3Jy... (flutter/flutter#172808)
2025-07-26 98614782+auto-submit[bot]@users.noreply.github.com Reverts "fix: get content hash for master on local engine branches (#172792)" (flutter/flutter#172805)
2025-07-26 [email protected] fix: build size_exp artifacts in post (flutter/flutter#172802)
2025-07-26 [email protected] fix: get content hash for master on local engine branches (flutter/flutter#172792)
2025-07-25 [email protected] Update `main`/`master` repoExceptions analysis set (flutter/flutter#172796)
2025-07-25 [email protected] Remove deprecated `--[no-]-disable-dds` (flutter/flutter#172791)
2025-07-25 [email protected] `last_engine_commit.ps1`: Use `$flutterRoot` instead of `$gitTopLevel` (flutter/flutter#172786)
2025-07-25 [email protected] Check file contents, remove tests that are now invalid (`: 'none'`) (flutter/flutter#172788)
2025-07-25 [email protected] windows: allow pwsh.bat wrapper (flutter/flutter#171778)
2025-07-25 [email protected] [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. (flutter/flutter#172592)
2025-07-25 [email protected] Remove deprecated `AssetManifest.json` file (flutter/flutter#172594)
2025-07-25 [email protected] Refactor `verifyVersion` into typed `Version` object, use it (flutter/flutter#172780)
2025-07-25 [email protected] Bump the customer tests to pick up an update to Zulip's tests, for th… (flutter/flutter#172733)
2025-07-25 [email protected] Rename `AppRunLogger`, stop writing status messages that break JSON (flutter/flutter#172591)
2025-07-25 [email protected] Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`. (flutter/flutter#172510)
2025-07-25 [email protected] Fix previous text input connection interrupts enter/space (flutter/flutter#171973)
2025-07-25 [email protected] Update CHANGELOG.md for 3.32.8 (flutter/flutter#172779)
2025-07-25 [email protected] Fix an `omit-type` lint that is breaking the tree (flutter/flutter#172776)
2025-07-25 [email protected] feat(tool): Respect user-data-dir flag from web-browser-flag (flutter/flutter#169445)
2025-07-25 [email protected] [web] Fix empty first frame in multiview mode (flutter/flutter#172493)
2025-07-25 [email protected] Migrate to null aware elements - Part 3 (flutter/flutter#172307)
2025-07-25 [email protected] Update few links in docs (flutter/flutter#172166)
2025-07-25 [email protected] Roll Skia from 768ace3fd144 to 409e1c7ba09b (1 revision) (flutter/flutter#172745)
2025-07-25 [email protected] Roll Fuchsia Linux SDK from a_55b5hqpRnigzuNC... to 4IewCwqcEm7r4QsXd... (flutter/flutter#172742)
2025-07-25 [email protected] Roll Skia from 094ac350125f to 768ace3fd144 (18 revisions) (flutter/flutter#172735)
2025-07-25 [email protected] Remove 2023 deprecated `'platforms'` key from daemon output (flutter/flutter#172593)
2025-07-24 [email protected] Manual roll of Dart from 26dece893751 to 5ede85aff798 (flutter/flutter#172731)
2025-07-24 [email protected] 169108 ci debug (flutter/flutter#172589)
2025-07-24 [email protected] Improve assertion message in `_MixedBorderRadius.resolve()` (flutter/flutter#172100)
2025-07-24 [email protected] Make sure that a BottomAppBar doesn't crash in 0x0 environment (flutter/flutter#172097)
2025-07-24 [email protected] Handle#6537 bottom navigation bar (flutter/flutter#172404)
2025-07-24 [email protected] Make sure that a MaterialBanner doesn't crash in 0x0 environment (flutter/flutter#172074)
2025-07-24 [email protected] Remove support for `pluginClass: none` (on `master`; `> 3.35.0`) (flutter/flutter#172579)
2025-07-24 [email protected] Make sure that a Card doesn't crash in 0x0 environment (flutter/flutter#172373)
2025-07-24 [email protected] Make sure that an AboutDialog doesn't crash in 0x0 environment (flutter/flutter#172444)
2025-07-24 [email protected] Make sure that an ActionChip doesn't crash in 0x0 environment (flutter/flutter#172684)
2025-07-24 [email protected] Delete (unused) `dev/checks_tool` directory (flutter/flutter#172715)
2025-07-24 [email protected] [Android] Add missing ci configuration for `Linux android_java17_tool_integration_tests` (flutter/flutter#172702)
2025-07-24 [email protected] Flutter-Cherrypick-Process.md - Spell cherry-pick consistently (flutter/flutter#172697)
2025-07-24 [email protected] Bringup `linux_web_engine_tests`; failing 4+ times in a row (flutter/flutter#172714)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
Nakiha pushed a commit to Nakiha/VoidPlayer-Flutter that referenced this pull request Sep 28, 2026
Fixes flutter/flutter#175074

There was an implicit expectation in the resizing code: When the virtual
keyboard is up on mobile, the view's `physicalSize` remains fixed, and
any resizes (presumably caused by the virtual keyboard itself) should be
considered as `viewInsets`.

This expectation was broken inadvertently by my PR:
flutter/flutter#172493

<hr>

The sequence of events that lead to the reported issue:

1. View's physical size is calculated based on window size.
2. Text editing starts, virtual keyboard comes up.
3. View's physical size remains unchanged, and the difference caused by
the keyboard is reported as view insets to the framework.
4. (so far so good).
5. When `resizeToAvoidBottomInset` is true, the framework will re-render
its content to fit the available size.
6. The new render call comes with a new size that's basically `physical
height - bottom inset`.
7. The engine takes that new size and applies it to the DOM.
8.  (now the view's DOM element has been resized incorrectly).
9. ...
10. Eventually, this leads to the new insets being calculated
incorrectly resulting in negative insets which cause the framework to
throw.

<hr>

The fix involves the following:
1. Respect the expectation mentioned above: when the keyboard is up,
view's physical size should remain unchanged.
2. *_If_* we ever end up with negative insets, catch it earlier in the
engine so it's easier to debug the root cause.
3. New regression test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels. platform-web Web applications specifically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[web:multi-view] frame skipped when new view is added

2 participants