-
Notifications
You must be signed in to change notification settings - Fork 29.8k
[web] Fix empty first frame in multiview mode #172493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
yjbanov
approved these changes
Jul 22, 2025
Contributor
yjbanov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
This was referenced 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 git@reki.re Remove shortner (flutter/flutter#172844) 2025-07-28 matanlurey@users.noreply.github.com Update `flutter pub get` to use `flutter.version.json` (instead of `version`) (flutter/flutter#172798) 2025-07-27 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from i7RS-4iBtdndwa3Jy... to tK_PAaLeo0pUxi8hv... (flutter/flutter#172827) 2025-07-26 engine-flutter-autoroll@skia.org 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 codefu@google.com fix: build size_exp artifacts in post (flutter/flutter#172802) 2025-07-26 codefu@google.com fix: get content hash for master on local engine branches (flutter/flutter#172792) 2025-07-25 matanlurey@users.noreply.github.com Update `main`/`master` repoExceptions analysis set (flutter/flutter#172796) 2025-07-25 matanlurey@users.noreply.github.com Remove deprecated `--[no-]-disable-dds` (flutter/flutter#172791) 2025-07-25 matanlurey@users.noreply.github.com `last_engine_commit.ps1`: Use `$flutterRoot` instead of `$gitTopLevel` (flutter/flutter#172786) 2025-07-25 matanlurey@users.noreply.github.com Check file contents, remove tests that are now invalid (`: 'none'`) (flutter/flutter#172788) 2025-07-25 loic.peron@inetum.com windows: allow pwsh.bat wrapper (flutter/flutter#171778) 2025-07-25 bdero@google.com [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. (flutter/flutter#172592) 2025-07-25 matanlurey@users.noreply.github.com Remove deprecated `AssetManifest.json` file (flutter/flutter#172594) 2025-07-25 matanlurey@users.noreply.github.com Refactor `verifyVersion` into typed `Version` object, use it (flutter/flutter#172780) 2025-07-25 jmccandless@google.com Bump the customer tests to pick up an update to Zulip's tests, for th… (flutter/flutter#172733) 2025-07-25 matanlurey@users.noreply.github.com Rename `AppRunLogger`, stop writing status messages that break JSON (flutter/flutter#172591) 2025-07-25 matanlurey@users.noreply.github.com Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`. (flutter/flutter#172510) 2025-07-25 rmolivares@renzo-olivares.dev Fix previous text input connection interrupts enter/space (flutter/flutter#171973) 2025-07-25 1063596+reidbaker@users.noreply.github.com Update CHANGELOG.md for 3.32.8 (flutter/flutter#172779) 2025-07-25 matanlurey@users.noreply.github.com Fix an `omit-type` lint that is breaking the tree (flutter/flutter#172776) 2025-07-25 reynaldots@gmail.com feat(tool): Respect user-data-dir flag from web-browser-flag (flutter/flutter#169445) 2025-07-25 mdebbar@google.com [web] Fix empty first frame in multiview mode (flutter/flutter#172493) 2025-07-25 jssaadeh@outlook.com Migrate to null aware elements - Part 3 (flutter/flutter#172307) 2025-07-25 mdebbar@google.com Update few links in docs (flutter/flutter#172166) 2025-07-25 engine-flutter-autoroll@skia.org Roll Skia from 768ace3fd144 to 409e1c7ba09b (1 revision) (flutter/flutter#172745) 2025-07-25 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from a_55b5hqpRnigzuNC... to 4IewCwqcEm7r4QsXd... (flutter/flutter#172742) 2025-07-25 engine-flutter-autoroll@skia.org Roll Skia from 094ac350125f to 768ace3fd144 (18 revisions) (flutter/flutter#172735) 2025-07-25 matanlurey@users.noreply.github.com Remove 2023 deprecated `'platforms'` key from daemon output (flutter/flutter#172593) 2025-07-24 a-siva@users.noreply.github.com Manual roll of Dart from 26dece893751 to 5ede85aff798 (flutter/flutter#172731) 2025-07-24 ievdokdm@gmail.com 169108 ci debug (flutter/flutter#172589) 2025-07-24 31685655+SalehTZ@users.noreply.github.com Improve assertion message in `_MixedBorderRadius.resolve()` (flutter/flutter#172100) 2025-07-24 ahmedsameha1@gmail.com Make sure that a BottomAppBar doesn't crash in 0x0 environment (flutter/flutter#172097) 2025-07-24 ahmedsameha1@gmail.com Handle#6537 bottom navigation bar (flutter/flutter#172404) 2025-07-24 ahmedsameha1@gmail.com Make sure that a MaterialBanner doesn't crash in 0x0 environment (flutter/flutter#172074) 2025-07-24 matanlurey@users.noreply.github.com Remove support for `pluginClass: none` (on `master`; `> 3.35.0`) (flutter/flutter#172579) 2025-07-24 ahmedsameha1@gmail.com Make sure that a Card doesn't crash in 0x0 environment (flutter/flutter#172373) 2025-07-24 ahmedsameha1@gmail.com Make sure that an AboutDialog doesn't crash in 0x0 environment (flutter/flutter#172444) 2025-07-24 ahmedsameha1@gmail.com Make sure that an ActionChip doesn't crash in 0x0 environment (flutter/flutter#172684) 2025-07-24 matanlurey@users.noreply.github.com Delete (unused) `dev/checks_tool` directory (flutter/flutter#172715) 2025-07-24 34871572+gmackall@users.noreply.github.com [Android] Add missing ci configuration for `Linux android_java17_tool_integration_tests` (flutter/flutter#172702) 2025-07-24 srawlins@google.com Flutter-Cherrypick-Process.md - Spell cherry-pick consistently (flutter/flutter#172697) 2025-07-24 matanlurey@users.noreply.github.com 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: ...
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 git@reki.re Remove shortner (flutter/flutter#172844) 2025-07-28 matanlurey@users.noreply.github.com Update `flutter pub get` to use `flutter.version.json` (instead of `version`) (flutter/flutter#172798) 2025-07-27 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from i7RS-4iBtdndwa3Jy... to tK_PAaLeo0pUxi8hv... (flutter/flutter#172827) 2025-07-26 engine-flutter-autoroll@skia.org 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 codefu@google.com fix: build size_exp artifacts in post (flutter/flutter#172802) 2025-07-26 codefu@google.com fix: get content hash for master on local engine branches (flutter/flutter#172792) 2025-07-25 matanlurey@users.noreply.github.com Update `main`/`master` repoExceptions analysis set (flutter/flutter#172796) 2025-07-25 matanlurey@users.noreply.github.com Remove deprecated `--[no-]-disable-dds` (flutter/flutter#172791) 2025-07-25 matanlurey@users.noreply.github.com `last_engine_commit.ps1`: Use `$flutterRoot` instead of `$gitTopLevel` (flutter/flutter#172786) 2025-07-25 matanlurey@users.noreply.github.com Check file contents, remove tests that are now invalid (`: 'none'`) (flutter/flutter#172788) 2025-07-25 loic.peron@inetum.com windows: allow pwsh.bat wrapper (flutter/flutter#171778) 2025-07-25 bdero@google.com [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. (flutter/flutter#172592) 2025-07-25 matanlurey@users.noreply.github.com Remove deprecated `AssetManifest.json` file (flutter/flutter#172594) 2025-07-25 matanlurey@users.noreply.github.com Refactor `verifyVersion` into typed `Version` object, use it (flutter/flutter#172780) 2025-07-25 jmccandless@google.com Bump the customer tests to pick up an update to Zulip's tests, for th… (flutter/flutter#172733) 2025-07-25 matanlurey@users.noreply.github.com Rename `AppRunLogger`, stop writing status messages that break JSON (flutter/flutter#172591) 2025-07-25 matanlurey@users.noreply.github.com Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`. (flutter/flutter#172510) 2025-07-25 rmolivares@renzo-olivares.dev Fix previous text input connection interrupts enter/space (flutter/flutter#171973) 2025-07-25 1063596+reidbaker@users.noreply.github.com Update CHANGELOG.md for 3.32.8 (flutter/flutter#172779) 2025-07-25 matanlurey@users.noreply.github.com Fix an `omit-type` lint that is breaking the tree (flutter/flutter#172776) 2025-07-25 reynaldots@gmail.com feat(tool): Respect user-data-dir flag from web-browser-flag (flutter/flutter#169445) 2025-07-25 mdebbar@google.com [web] Fix empty first frame in multiview mode (flutter/flutter#172493) 2025-07-25 jssaadeh@outlook.com Migrate to null aware elements - Part 3 (flutter/flutter#172307) 2025-07-25 mdebbar@google.com Update few links in docs (flutter/flutter#172166) 2025-07-25 engine-flutter-autoroll@skia.org Roll Skia from 768ace3fd144 to 409e1c7ba09b (1 revision) (flutter/flutter#172745) 2025-07-25 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from a_55b5hqpRnigzuNC... to 4IewCwqcEm7r4QsXd... (flutter/flutter#172742) 2025-07-25 engine-flutter-autoroll@skia.org Roll Skia from 094ac350125f to 768ace3fd144 (18 revisions) (flutter/flutter#172735) 2025-07-25 matanlurey@users.noreply.github.com Remove 2023 deprecated `'platforms'` key from daemon output (flutter/flutter#172593) 2025-07-24 a-siva@users.noreply.github.com Manual roll of Dart from 26dece893751 to 5ede85aff798 (flutter/flutter#172731) 2025-07-24 ievdokdm@gmail.com 169108 ci debug (flutter/flutter#172589) 2025-07-24 31685655+SalehTZ@users.noreply.github.com Improve assertion message in `_MixedBorderRadius.resolve()` (flutter/flutter#172100) 2025-07-24 ahmedsameha1@gmail.com Make sure that a BottomAppBar doesn't crash in 0x0 environment (flutter/flutter#172097) 2025-07-24 ahmedsameha1@gmail.com Handle#6537 bottom navigation bar (flutter/flutter#172404) 2025-07-24 ahmedsameha1@gmail.com Make sure that a MaterialBanner doesn't crash in 0x0 environment (flutter/flutter#172074) 2025-07-24 matanlurey@users.noreply.github.com Remove support for `pluginClass: none` (on `master`; `> 3.35.0`) (flutter/flutter#172579) 2025-07-24 ahmedsameha1@gmail.com Make sure that a Card doesn't crash in 0x0 environment (flutter/flutter#172373) 2025-07-24 ahmedsameha1@gmail.com Make sure that an AboutDialog doesn't crash in 0x0 environment (flutter/flutter#172444) 2025-07-24 ahmedsameha1@gmail.com Make sure that an ActionChip doesn't crash in 0x0 environment (flutter/flutter#172684) 2025-07-24 matanlurey@users.noreply.github.com Delete (unused) `dev/checks_tool` directory (flutter/flutter#172715) 2025-07-24 34871572+gmackall@users.noreply.github.com [Android] Add missing ci configuration for `Linux android_java17_tool_integration_tests` (flutter/flutter#172702) 2025-07-24 srawlins@google.com Flutter-Cherrypick-Process.md - Spell cherry-pick consistently (flutter/flutter#172697) 2025-07-24 matanlurey@users.noreply.github.com 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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

The issue was caused by a stale
EngineFlutterView.physicalSizethat happened to beSize(0, 0)making rendering a no-op in the first frame.Fixes #172397