-
Notifications
You must be signed in to change notification settings - Fork 27.2k
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
Layer ... was previously used as oldLayer
assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug
#113998
Conversation
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
Layer ... was previously used as oldLayer
error, caused by LeaderLayer addToScene bug
Layer ... was previously used as oldLayer
error, caused by LeaderLayer addToScene bugLayer ... was previously used as oldLayer
assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug
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.
LGTM
Thanks for the catch!
required double paddingLeft, | ||
Color siblingColor = const Color(0xff000000), | ||
}) => | ||
Directionality( |
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.
either move this to the previous line or use proper block syntax.
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.
You are welcome! Format done
auto label is removed for flutter/flutter, pr: 113998, due to - Please get at least one approved review if you are already a member or two member reviews if you are not a member before re-applying this label. Reviewers: If you left a comment approving, please use the "approve" review action instead. |
auto label is removed for flutter/flutter, pr: 113998, due to Validations Fail. |
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.
LGTM 👍
|
||
await tester.pumpWidget(buildWidget(paddingLeft: 10)); | ||
await tester.pumpWidget(buildWidget(paddingLeft: 0)); | ||
await tester.pumpWidget(buildWidget(paddingLeft: 0, siblingColor: const Color(0x0000ff00))); |
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.
Sometimes I've seen our tests use expect(tester.takeException(), isNull);
for tests like this, but I guess this test will fail if there is an error even without that line.
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.
The test does fail without the fix IIRC. If I understand correctly, flutter will verify there is no exception at the end of test. So even if I do not take exception, seems it will be verified at end of test so no worries?
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
…n debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998)
* 210a2aa Revert "Add Material 3 support for BottomAppBar" (flutter/flutter#114421) * 2bf666c Roll Flutter Engine from f721db653dd1 to 78ca5609d1cb (2 revisions) (flutter/flutter#114396) * d2ad439 Roll Flutter Engine from 78ca5609d1cb to 31a21c75d016 (1 revision) (flutter/flutter#114426) * b03a7b5 Roll Plugins from 91d7fe5 to 5c11747 (7 revisions) (flutter/flutter#114427) * 70a95d5 Mark `Linux_android new_gallery__transition_perf` flaky (flutter/flutter#114429) * 0d65b63 Roll Flutter Engine from 31a21c75d016 to e013908440cd (1 revision) (flutter/flutter#114430) * 8a8b361 Use hintText's TextStyle overflow (flutter/flutter#114378) * e6b4296 Roll Flutter Engine from e013908440cd to a98c82a5e583 (1 revision) (flutter/flutter#114438) * d0afbd7 Revert "Overlay always applies clip (#113770)" (flutter/flutter#114442) * 93b0042 Handle dragging improvements (flutter/flutter#114042) * dc1cedd Roll Flutter Engine from a98c82a5e583 to c1e1a089fa16 (4 revisions) (flutter/flutter#114444) * 8fe8728 Roll Flutter Engine from c1e1a089fa16 to f4da34f1f6a8 (4 revisions) (flutter/flutter#114449) * eadda3c Add Material 3 Popup Menu example and update existing example (flutter/flutter#114228) * fb9065f `Layer ... was previously used as oldLayer` assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998) * e37ab48 Introduce debugWithActiveLayoutCleared to avoid duplicated code (flutter/flutter#114003) * c23b5ca Fix `addToScene` documentation (flutter/flutter#113987) * 61deaef Fix bug that`timeDilation` is not reset, causing subsequent test errors, and add verifications to ensure such problem does not exist in the future (flutter/flutter#113830) * 17ec3b1 [flutter_tools] Introducing arg option for specifying the output directory for web (flutter/flutter#113076) * 17df76b Roll Flutter Engine from f4da34f1f6a8 to e95a7ae83097 (1 revision) (flutter/flutter#114453) * f10021b Roll Flutter Engine from e95a7ae83097 to 81f5c30b23f3 (6 revisions) (flutter/flutter#114464) * 97d0247 Add Material 3 support for `Slider` - Part 1 (flutter/flutter#114079) * 0b0e348 Roll Flutter Engine from 81f5c30b23f3 to 85c23bc12c56 (3 revisions) (flutter/flutter#114471) * 6c87d73 Roll Flutter Engine from 85c23bc12c56 to c05c8a8834ca (1 revision) (flutter/flutter#114476) * dbc6123 Roll Flutter Engine from c05c8a8834ca to 32faadb330fc (2 revisions) (flutter/flutter#114479) * 4b31473 Roll Flutter Engine from 32faadb330fc to f9abfc5964c9 (1 revision) (flutter/flutter#114480) * b2d9f9e Roll Flutter Engine from f9abfc5964c9 to 9a741295e793 (2 revisions) (flutter/flutter#114487) * 9d9b0e5 Roll Flutter Engine from 9a741295e793 to 03d5b933164c (1 revision) (flutter/flutter#114489) * 1a150ff Roll Flutter Engine from 03d5b933164c to 9ef5c9b0107b (2 revisions) (flutter/flutter#114492) * 6a66aa2 Add Material 3 support for BottomAppBar (reland #106525) (flutter/flutter#114439) * dca6f10 Roll Flutter Engine from 9ef5c9b0107b to f5eb26e3f763 (1 revision) (flutter/flutter#114494) * 45c3b02 Roll Flutter Engine from f5eb26e3f763 to fed311918037 (2 revisions) (flutter/flutter#114501) * 9f23391 [web] Changes to web keyboard selection shortcuts for more consistent behavior (flutter/flutter#114264) * db381d7 Roll Flutter Engine from fed311918037 to cdfd9d0ad69b (2 revisions) (flutter/flutter#114513) * 1cfdac4 Always invoke impeller ios shader target (flutter/flutter#114451) * 0e70a97 Refactor Animated[List, Grid, SliverList, SliverGrid] to share common code (flutter/flutter#113793) * 1f7bacf Marks Linux build_tests_2_3 to be unflaky (flutter/flutter#114527) * 3079873 [flutter_tools/dap] Map org-dartlang-sdk URIs to the location of the source files found by the analyzer (flutter/flutter#114369) * 78dbe66 Roll Flutter Engine from cdfd9d0ad69b to 4d1d7a41ebd2 (1 revision) (flutter/flutter#114532) * 3b0f833 [flutter_tools/dap] Add a base Flutter adapter class to avoid duplication between adapters (flutter/flutter#114533) * 0211df9 [flutter_tools] provide --timeout option to flutter drive (flutter/flutter#114458) * 475ccd4 Roll Flutter Engine from 4d1d7a41ebd2 to edb049257b52 (2 revisions) (flutter/flutter#114534) * 89418ef Added tokens for Snackbar widget. (flutter/flutter#114466) * b23c780 Roll Flutter Engine from edb049257b52 to e43555ad3b94 (1 revision) (flutter/flutter#114540) * 15867a6 Roll gallery to b6728704a6441ac37a21e433a1e43c990780d47b (flutter/flutter#114537) * 92a6668 Roll Flutter Engine from e43555ad3b94 to 840a7b346216 (4 revisions) (flutter/flutter#114546) * e6300da [tools]validation basic Xcode settings for build ipa (flutter/flutter#113412)
* 4f19a9f [flutter_tools] Add support for compiling shaders to JSON bundle for web (flutter/flutter#114295) * f186e1b Roll pub packages (flutter/flutter#114363) * 0c7ee58 Make `Linux_android android_semantics_integration_test` flaky (flutter/flutter#114361) * 7ab2bf8 Delete flutter_migrate code (flutter/flutter#114253) * 0d26c51 Roll Flutter Engine from e432d6fc3a9b to ef4acbfe67ac (2 revisions) (flutter/flutter#114367) * af44c05 Roll Flutter Engine from ef4acbfe67ac to 9ba3de8f078d (1 revision) (flutter/flutter#114368) * 7979c87 Roll Flutter Engine from 9ba3de8f078d to ef45b5ac5b4b (1 revision) (flutter/flutter#114370) * c1a0846 Roll Flutter Engine from ef45b5ac5b4b to 96c0353790a2 (2 revisions) (flutter/flutter#114372) * a75c1ff Roll Flutter Engine from 96c0353790a2 to 1a8ba7c5521a (1 revision) (flutter/flutter#114375) * b20b7d9 Roll Flutter Engine from 1a8ba7c5521a to c16e2c08724c (1 revision) (flutter/flutter#114379) * 37b7234 Add `maybeOf` for all the cases where `of` returns nullable. (flutter/flutter#114120) * 6edbaa7 Roll Flutter Engine from c16e2c08724c to 034a2da497d9 (2 revisions) (flutter/flutter#114387) * 4851401 Roll Flutter Engine from 034a2da497d9 to f721db653dd1 (1 revision) (flutter/flutter#114389) * c2edb20 Added token files for badges and lists. (flutter/flutter#114382) * 0f1d0e3 🎨 Improve exceptions thrown by asset bundle (flutter/flutter#114313) * 3894a06 Minor code cleanup: remove redundant return (flutter/flutter#114290) * 0e98194 Add Material 3 support for BottomAppBar (flutter/flutter#106525) * 210a2aa Revert "Add Material 3 support for BottomAppBar" (flutter/flutter#114421) * 2bf666c Roll Flutter Engine from f721db653dd1 to 78ca5609d1cb (2 revisions) (flutter/flutter#114396) * d2ad439 Roll Flutter Engine from 78ca5609d1cb to 31a21c75d016 (1 revision) (flutter/flutter#114426) * b03a7b5 Roll Plugins from 91d7fe5 to 5c11747 (7 revisions) (flutter/flutter#114427) * 70a95d5 Mark `Linux_android new_gallery__transition_perf` flaky (flutter/flutter#114429) * 0d65b63 Roll Flutter Engine from 31a21c75d016 to e013908440cd (1 revision) (flutter/flutter#114430) * 8a8b361 Use hintText's TextStyle overflow (flutter/flutter#114378) * e6b4296 Roll Flutter Engine from e013908440cd to a98c82a5e583 (1 revision) (flutter/flutter#114438) * d0afbd7 Revert "Overlay always applies clip (#113770)" (flutter/flutter#114442) * 93b0042 Handle dragging improvements (flutter/flutter#114042) * dc1cedd Roll Flutter Engine from a98c82a5e583 to c1e1a089fa16 (4 revisions) (flutter/flutter#114444) * 8fe8728 Roll Flutter Engine from c1e1a089fa16 to f4da34f1f6a8 (4 revisions) (flutter/flutter#114449) * eadda3c Add Material 3 Popup Menu example and update existing example (flutter/flutter#114228) * fb9065f `Layer ... was previously used as oldLayer` assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998) * e37ab48 Introduce debugWithActiveLayoutCleared to avoid duplicated code (flutter/flutter#114003) * c23b5ca Fix `addToScene` documentation (flutter/flutter#113987) * 61deaef Fix bug that`timeDilation` is not reset, causing subsequent test errors, and add verifications to ensure such problem does not exist in the future (flutter/flutter#113830) * 17ec3b1 [flutter_tools] Introducing arg option for specifying the output directory for web (flutter/flutter#113076) * 17df76b Roll Flutter Engine from f4da34f1f6a8 to e95a7ae83097 (1 revision) (flutter/flutter#114453) * f10021b Roll Flutter Engine from e95a7ae83097 to 81f5c30b23f3 (6 revisions) (flutter/flutter#114464) * 97d0247 Add Material 3 support for `Slider` - Part 1 (flutter/flutter#114079) * 0b0e348 Roll Flutter Engine from 81f5c30b23f3 to 85c23bc12c56 (3 revisions) (flutter/flutter#114471) * 6c87d73 Roll Flutter Engine from 85c23bc12c56 to c05c8a8834ca (1 revision) (flutter/flutter#114476) * dbc6123 Roll Flutter Engine from c05c8a8834ca to 32faadb330fc (2 revisions) (flutter/flutter#114479) * 4b31473 Roll Flutter Engine from 32faadb330fc to f9abfc5964c9 (1 revision) (flutter/flutter#114480) * b2d9f9e Roll Flutter Engine from f9abfc5964c9 to 9a741295e793 (2 revisions) (flutter/flutter#114487) * 9d9b0e5 Roll Flutter Engine from 9a741295e793 to 03d5b933164c (1 revision) (flutter/flutter#114489) * 1a150ff Roll Flutter Engine from 03d5b933164c to 9ef5c9b0107b (2 revisions) (flutter/flutter#114492) * 6a66aa2 Add Material 3 support for BottomAppBar (reland #106525) (flutter/flutter#114439) * dca6f10 Roll Flutter Engine from 9ef5c9b0107b to f5eb26e3f763 (1 revision) (flutter/flutter#114494) * 45c3b02 Roll Flutter Engine from f5eb26e3f763 to fed311918037 (2 revisions) (flutter/flutter#114501) * 9f23391 [web] Changes to web keyboard selection shortcuts for more consistent behavior (flutter/flutter#114264) * db381d7 Roll Flutter Engine from fed311918037 to cdfd9d0ad69b (2 revisions) (flutter/flutter#114513) * 1cfdac4 Always invoke impeller ios shader target (flutter/flutter#114451) * 0e70a97 Refactor Animated[List, Grid, SliverList, SliverGrid] to share common code (flutter/flutter#113793) * 1f7bacf Marks Linux build_tests_2_3 to be unflaky (flutter/flutter#114527) * 3079873 [flutter_tools/dap] Map org-dartlang-sdk URIs to the location of the source files found by the analyzer (flutter/flutter#114369) * 78dbe66 Roll Flutter Engine from cdfd9d0ad69b to 4d1d7a41ebd2 (1 revision) (flutter/flutter#114532) * 3b0f833 [flutter_tools/dap] Add a base Flutter adapter class to avoid duplication between adapters (flutter/flutter#114533) * 0211df9 [flutter_tools] provide --timeout option to flutter drive (flutter/flutter#114458) * 475ccd4 Roll Flutter Engine from 4d1d7a41ebd2 to edb049257b52 (2 revisions) (flutter/flutter#114534) * 89418ef Added tokens for Snackbar widget. (flutter/flutter#114466) * b23c780 Roll Flutter Engine from edb049257b52 to e43555ad3b94 (1 revision) (flutter/flutter#114540) * 15867a6 Roll gallery to b6728704a6441ac37a21e433a1e43c990780d47b (flutter/flutter#114537) * 92a6668 Roll Flutter Engine from e43555ad3b94 to 840a7b346216 (4 revisions) (flutter/flutter#114546) * e6300da [tools]validation basic Xcode settings for build ipa (flutter/flutter#113412)
* 210a2aa Revert "Add Material 3 support for BottomAppBar" (flutter/flutter#114421) * 2bf666c Roll Flutter Engine from f721db653dd1 to 78ca5609d1cb (2 revisions) (flutter/flutter#114396) * d2ad439 Roll Flutter Engine from 78ca5609d1cb to 31a21c75d016 (1 revision) (flutter/flutter#114426) * b03a7b5 Roll Plugins from 91d7fe5 to 5c11747 (7 revisions) (flutter/flutter#114427) * 70a95d5 Mark `Linux_android new_gallery__transition_perf` flaky (flutter/flutter#114429) * 0d65b63 Roll Flutter Engine from 31a21c75d016 to e013908440cd (1 revision) (flutter/flutter#114430) * 8a8b361 Use hintText's TextStyle overflow (flutter/flutter#114378) * e6b4296 Roll Flutter Engine from e013908440cd to a98c82a5e583 (1 revision) (flutter/flutter#114438) * d0afbd7 Revert "Overlay always applies clip (#113770)" (flutter/flutter#114442) * 93b0042 Handle dragging improvements (flutter/flutter#114042) * dc1cedd Roll Flutter Engine from a98c82a5e583 to c1e1a089fa16 (4 revisions) (flutter/flutter#114444) * 8fe8728 Roll Flutter Engine from c1e1a089fa16 to f4da34f1f6a8 (4 revisions) (flutter/flutter#114449) * eadda3c Add Material 3 Popup Menu example and update existing example (flutter/flutter#114228) * fb9065f `Layer ... was previously used as oldLayer` assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998) * e37ab48 Introduce debugWithActiveLayoutCleared to avoid duplicated code (flutter/flutter#114003) * c23b5ca Fix `addToScene` documentation (flutter/flutter#113987) * 61deaef Fix bug that`timeDilation` is not reset, causing subsequent test errors, and add verifications to ensure such problem does not exist in the future (flutter/flutter#113830) * 17ec3b1 [flutter_tools] Introducing arg option for specifying the output directory for web (flutter/flutter#113076) * 17df76b Roll Flutter Engine from f4da34f1f6a8 to e95a7ae83097 (1 revision) (flutter/flutter#114453) * f10021b Roll Flutter Engine from e95a7ae83097 to 81f5c30b23f3 (6 revisions) (flutter/flutter#114464) * 97d0247 Add Material 3 support for `Slider` - Part 1 (flutter/flutter#114079) * 0b0e348 Roll Flutter Engine from 81f5c30b23f3 to 85c23bc12c56 (3 revisions) (flutter/flutter#114471) * 6c87d73 Roll Flutter Engine from 85c23bc12c56 to c05c8a8834ca (1 revision) (flutter/flutter#114476) * dbc6123 Roll Flutter Engine from c05c8a8834ca to 32faadb330fc (2 revisions) (flutter/flutter#114479) * 4b31473 Roll Flutter Engine from 32faadb330fc to f9abfc5964c9 (1 revision) (flutter/flutter#114480) * b2d9f9e Roll Flutter Engine from f9abfc5964c9 to 9a741295e793 (2 revisions) (flutter/flutter#114487) * 9d9b0e5 Roll Flutter Engine from 9a741295e793 to 03d5b933164c (1 revision) (flutter/flutter#114489) * 1a150ff Roll Flutter Engine from 03d5b933164c to 9ef5c9b0107b (2 revisions) (flutter/flutter#114492) * 6a66aa2 Add Material 3 support for BottomAppBar (reland #106525) (flutter/flutter#114439) * dca6f10 Roll Flutter Engine from 9ef5c9b0107b to f5eb26e3f763 (1 revision) (flutter/flutter#114494) * 45c3b02 Roll Flutter Engine from f5eb26e3f763 to fed311918037 (2 revisions) (flutter/flutter#114501) * 9f23391 [web] Changes to web keyboard selection shortcuts for more consistent behavior (flutter/flutter#114264) * db381d7 Roll Flutter Engine from fed311918037 to cdfd9d0ad69b (2 revisions) (flutter/flutter#114513) * 1cfdac4 Always invoke impeller ios shader target (flutter/flutter#114451) * 0e70a97 Refactor Animated[List, Grid, SliverList, SliverGrid] to share common code (flutter/flutter#113793) * 1f7bacf Marks Linux build_tests_2_3 to be unflaky (flutter/flutter#114527) * 3079873 [flutter_tools/dap] Map org-dartlang-sdk URIs to the location of the source files found by the analyzer (flutter/flutter#114369) * 78dbe66 Roll Flutter Engine from cdfd9d0ad69b to 4d1d7a41ebd2 (1 revision) (flutter/flutter#114532) * 3b0f833 [flutter_tools/dap] Add a base Flutter adapter class to avoid duplication between adapters (flutter/flutter#114533) * 0211df9 [flutter_tools] provide --timeout option to flutter drive (flutter/flutter#114458) * 475ccd4 Roll Flutter Engine from 4d1d7a41ebd2 to edb049257b52 (2 revisions) (flutter/flutter#114534) * 89418ef Added tokens for Snackbar widget. (flutter/flutter#114466) * b23c780 Roll Flutter Engine from edb049257b52 to e43555ad3b94 (1 revision) (flutter/flutter#114540) * 15867a6 Roll gallery to b6728704a6441ac37a21e433a1e43c990780d47b (flutter/flutter#114537) * 92a6668 Roll Flutter Engine from e43555ad3b94 to 840a7b346216 (4 revisions) (flutter/flutter#114546) * e6300da [tools]validation basic Xcode settings for build ipa (flutter/flutter#113412)
* 4f19a9f [flutter_tools] Add support for compiling shaders to JSON bundle for web (flutter/flutter#114295) * f186e1b Roll pub packages (flutter/flutter#114363) * 0c7ee58 Make `Linux_android android_semantics_integration_test` flaky (flutter/flutter#114361) * 7ab2bf8 Delete flutter_migrate code (flutter/flutter#114253) * 0d26c51 Roll Flutter Engine from e432d6fc3a9b to ef4acbfe67ac (2 revisions) (flutter/flutter#114367) * af44c05 Roll Flutter Engine from ef4acbfe67ac to 9ba3de8f078d (1 revision) (flutter/flutter#114368) * 7979c87 Roll Flutter Engine from 9ba3de8f078d to ef45b5ac5b4b (1 revision) (flutter/flutter#114370) * c1a0846 Roll Flutter Engine from ef45b5ac5b4b to 96c0353790a2 (2 revisions) (flutter/flutter#114372) * a75c1ff Roll Flutter Engine from 96c0353790a2 to 1a8ba7c5521a (1 revision) (flutter/flutter#114375) * b20b7d9 Roll Flutter Engine from 1a8ba7c5521a to c16e2c08724c (1 revision) (flutter/flutter#114379) * 37b7234 Add `maybeOf` for all the cases where `of` returns nullable. (flutter/flutter#114120) * 6edbaa7 Roll Flutter Engine from c16e2c08724c to 034a2da497d9 (2 revisions) (flutter/flutter#114387) * 4851401 Roll Flutter Engine from 034a2da497d9 to f721db653dd1 (1 revision) (flutter/flutter#114389) * c2edb20 Added token files for badges and lists. (flutter/flutter#114382) * 0f1d0e3 🎨 Improve exceptions thrown by asset bundle (flutter/flutter#114313) * 3894a06 Minor code cleanup: remove redundant return (flutter/flutter#114290) * 0e98194 Add Material 3 support for BottomAppBar (flutter/flutter#106525) * 210a2aa Revert "Add Material 3 support for BottomAppBar" (flutter/flutter#114421) * 2bf666c Roll Flutter Engine from f721db653dd1 to 78ca5609d1cb (2 revisions) (flutter/flutter#114396) * d2ad439 Roll Flutter Engine from 78ca5609d1cb to 31a21c75d016 (1 revision) (flutter/flutter#114426) * b03a7b5 Roll Plugins from 91d7fe5 to 5c11747 (7 revisions) (flutter/flutter#114427) * 70a95d5 Mark `Linux_android new_gallery__transition_perf` flaky (flutter/flutter#114429) * 0d65b63 Roll Flutter Engine from 31a21c75d016 to e013908440cd (1 revision) (flutter/flutter#114430) * 8a8b361 Use hintText's TextStyle overflow (flutter/flutter#114378) * e6b4296 Roll Flutter Engine from e013908440cd to a98c82a5e583 (1 revision) (flutter/flutter#114438) * d0afbd7 Revert "Overlay always applies clip (#113770)" (flutter/flutter#114442) * 93b0042 Handle dragging improvements (flutter/flutter#114042) * dc1cedd Roll Flutter Engine from a98c82a5e583 to c1e1a089fa16 (4 revisions) (flutter/flutter#114444) * 8fe8728 Roll Flutter Engine from c1e1a089fa16 to f4da34f1f6a8 (4 revisions) (flutter/flutter#114449) * eadda3c Add Material 3 Popup Menu example and update existing example (flutter/flutter#114228) * fb9065f `Layer ... was previously used as oldLayer` assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998) * e37ab48 Introduce debugWithActiveLayoutCleared to avoid duplicated code (flutter/flutter#114003) * c23b5ca Fix `addToScene` documentation (flutter/flutter#113987) * 61deaef Fix bug that`timeDilation` is not reset, causing subsequent test errors, and add verifications to ensure such problem does not exist in the future (flutter/flutter#113830) * 17ec3b1 [flutter_tools] Introducing arg option for specifying the output directory for web (flutter/flutter#113076) * 17df76b Roll Flutter Engine from f4da34f1f6a8 to e95a7ae83097 (1 revision) (flutter/flutter#114453) * f10021b Roll Flutter Engine from e95a7ae83097 to 81f5c30b23f3 (6 revisions) (flutter/flutter#114464) * 97d0247 Add Material 3 support for `Slider` - Part 1 (flutter/flutter#114079) * 0b0e348 Roll Flutter Engine from 81f5c30b23f3 to 85c23bc12c56 (3 revisions) (flutter/flutter#114471) * 6c87d73 Roll Flutter Engine from 85c23bc12c56 to c05c8a8834ca (1 revision) (flutter/flutter#114476) * dbc6123 Roll Flutter Engine from c05c8a8834ca to 32faadb330fc (2 revisions) (flutter/flutter#114479) * 4b31473 Roll Flutter Engine from 32faadb330fc to f9abfc5964c9 (1 revision) (flutter/flutter#114480) * b2d9f9e Roll Flutter Engine from f9abfc5964c9 to 9a741295e793 (2 revisions) (flutter/flutter#114487) * 9d9b0e5 Roll Flutter Engine from 9a741295e793 to 03d5b933164c (1 revision) (flutter/flutter#114489) * 1a150ff Roll Flutter Engine from 03d5b933164c to 9ef5c9b0107b (2 revisions) (flutter/flutter#114492) * 6a66aa2 Add Material 3 support for BottomAppBar (reland #106525) (flutter/flutter#114439) * dca6f10 Roll Flutter Engine from 9ef5c9b0107b to f5eb26e3f763 (1 revision) (flutter/flutter#114494) * 45c3b02 Roll Flutter Engine from f5eb26e3f763 to fed311918037 (2 revisions) (flutter/flutter#114501) * 9f23391 [web] Changes to web keyboard selection shortcuts for more consistent behavior (flutter/flutter#114264) * db381d7 Roll Flutter Engine from fed311918037 to cdfd9d0ad69b (2 revisions) (flutter/flutter#114513) * 1cfdac4 Always invoke impeller ios shader target (flutter/flutter#114451) * 0e70a97 Refactor Animated[List, Grid, SliverList, SliverGrid] to share common code (flutter/flutter#113793) * 1f7bacf Marks Linux build_tests_2_3 to be unflaky (flutter/flutter#114527) * 3079873 [flutter_tools/dap] Map org-dartlang-sdk URIs to the location of the source files found by the analyzer (flutter/flutter#114369) * 78dbe66 Roll Flutter Engine from cdfd9d0ad69b to 4d1d7a41ebd2 (1 revision) (flutter/flutter#114532) * 3b0f833 [flutter_tools/dap] Add a base Flutter adapter class to avoid duplication between adapters (flutter/flutter#114533) * 0211df9 [flutter_tools] provide --timeout option to flutter drive (flutter/flutter#114458) * 475ccd4 Roll Flutter Engine from 4d1d7a41ebd2 to edb049257b52 (2 revisions) (flutter/flutter#114534) * 89418ef Added tokens for Snackbar widget. (flutter/flutter#114466) * b23c780 Roll Flutter Engine from edb049257b52 to e43555ad3b94 (1 revision) (flutter/flutter#114540) * 15867a6 Roll gallery to b6728704a6441ac37a21e433a1e43c990780d47b (flutter/flutter#114537) * 92a6668 Roll Flutter Engine from e43555ad3b94 to 840a7b346216 (4 revisions) (flutter/flutter#114546) * e6300da [tools]validation basic Xcode settings for build ipa (flutter/flutter#113412)
* 210a2aa Revert "Add Material 3 support for BottomAppBar" (flutter/flutter#114421) * 2bf666c Roll Flutter Engine from f721db653dd1 to 78ca5609d1cb (2 revisions) (flutter/flutter#114396) * d2ad439 Roll Flutter Engine from 78ca5609d1cb to 31a21c75d016 (1 revision) (flutter/flutter#114426) * b03a7b5 Roll Plugins from 91d7fe5 to 5c11747 (7 revisions) (flutter/flutter#114427) * 70a95d5 Mark `Linux_android new_gallery__transition_perf` flaky (flutter/flutter#114429) * 0d65b63 Roll Flutter Engine from 31a21c75d016 to e013908440cd (1 revision) (flutter/flutter#114430) * 8a8b361 Use hintText's TextStyle overflow (flutter/flutter#114378) * e6b4296 Roll Flutter Engine from e013908440cd to a98c82a5e583 (1 revision) (flutter/flutter#114438) * d0afbd7 Revert "Overlay always applies clip (#113770)" (flutter/flutter#114442) * 93b0042 Handle dragging improvements (flutter/flutter#114042) * dc1cedd Roll Flutter Engine from a98c82a5e583 to c1e1a089fa16 (4 revisions) (flutter/flutter#114444) * 8fe8728 Roll Flutter Engine from c1e1a089fa16 to f4da34f1f6a8 (4 revisions) (flutter/flutter#114449) * eadda3c Add Material 3 Popup Menu example and update existing example (flutter/flutter#114228) * fb9065f `Layer ... was previously used as oldLayer` assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998) * e37ab48 Introduce debugWithActiveLayoutCleared to avoid duplicated code (flutter/flutter#114003) * c23b5ca Fix `addToScene` documentation (flutter/flutter#113987) * 61deaef Fix bug that`timeDilation` is not reset, causing subsequent test errors, and add verifications to ensure such problem does not exist in the future (flutter/flutter#113830) * 17ec3b1 [flutter_tools] Introducing arg option for specifying the output directory for web (flutter/flutter#113076) * 17df76b Roll Flutter Engine from f4da34f1f6a8 to e95a7ae83097 (1 revision) (flutter/flutter#114453) * f10021b Roll Flutter Engine from e95a7ae83097 to 81f5c30b23f3 (6 revisions) (flutter/flutter#114464) * 97d0247 Add Material 3 support for `Slider` - Part 1 (flutter/flutter#114079) * 0b0e348 Roll Flutter Engine from 81f5c30b23f3 to 85c23bc12c56 (3 revisions) (flutter/flutter#114471) * 6c87d73 Roll Flutter Engine from 85c23bc12c56 to c05c8a8834ca (1 revision) (flutter/flutter#114476) * dbc6123 Roll Flutter Engine from c05c8a8834ca to 32faadb330fc (2 revisions) (flutter/flutter#114479) * 4b31473 Roll Flutter Engine from 32faadb330fc to f9abfc5964c9 (1 revision) (flutter/flutter#114480) * b2d9f9e Roll Flutter Engine from f9abfc5964c9 to 9a741295e793 (2 revisions) (flutter/flutter#114487) * 9d9b0e5 Roll Flutter Engine from 9a741295e793 to 03d5b933164c (1 revision) (flutter/flutter#114489) * 1a150ff Roll Flutter Engine from 03d5b933164c to 9ef5c9b0107b (2 revisions) (flutter/flutter#114492) * 6a66aa2 Add Material 3 support for BottomAppBar (reland #106525) (flutter/flutter#114439) * dca6f10 Roll Flutter Engine from 9ef5c9b0107b to f5eb26e3f763 (1 revision) (flutter/flutter#114494) * 45c3b02 Roll Flutter Engine from f5eb26e3f763 to fed311918037 (2 revisions) (flutter/flutter#114501) * 9f23391 [web] Changes to web keyboard selection shortcuts for more consistent behavior (flutter/flutter#114264) * db381d7 Roll Flutter Engine from fed311918037 to cdfd9d0ad69b (2 revisions) (flutter/flutter#114513) * 1cfdac4 Always invoke impeller ios shader target (flutter/flutter#114451) * 0e70a97 Refactor Animated[List, Grid, SliverList, SliverGrid] to share common code (flutter/flutter#113793) * 1f7bacf Marks Linux build_tests_2_3 to be unflaky (flutter/flutter#114527) * 3079873 [flutter_tools/dap] Map org-dartlang-sdk URIs to the location of the source files found by the analyzer (flutter/flutter#114369) * 78dbe66 Roll Flutter Engine from cdfd9d0ad69b to 4d1d7a41ebd2 (1 revision) (flutter/flutter#114532) * 3b0f833 [flutter_tools/dap] Add a base Flutter adapter class to avoid duplication between adapters (flutter/flutter#114533) * 0211df9 [flutter_tools] provide --timeout option to flutter drive (flutter/flutter#114458) * 475ccd4 Roll Flutter Engine from 4d1d7a41ebd2 to edb049257b52 (2 revisions) (flutter/flutter#114534) * 89418ef Added tokens for Snackbar widget. (flutter/flutter#114466) * b23c780 Roll Flutter Engine from edb049257b52 to e43555ad3b94 (1 revision) (flutter/flutter#114540) * 15867a6 Roll gallery to b6728704a6441ac37a21e433a1e43c990780d47b (flutter/flutter#114537) * 92a6668 Roll Flutter Engine from e43555ad3b94 to 840a7b346216 (4 revisions) (flutter/flutter#114546) * e6300da [tools]validation basic Xcode settings for build ipa (flutter/flutter#113412)
* 210a2aa Revert "Add Material 3 support for BottomAppBar" (flutter/flutter#114421) * 2bf666c Roll Flutter Engine from f721db653dd1 to 78ca5609d1cb (2 revisions) (flutter/flutter#114396) * d2ad439 Roll Flutter Engine from 78ca5609d1cb to 31a21c75d016 (1 revision) (flutter/flutter#114426) * b03a7b5 Roll Plugins from 91d7fe5 to 5c11747 (7 revisions) (flutter/flutter#114427) * 70a95d5 Mark `Linux_android new_gallery__transition_perf` flaky (flutter/flutter#114429) * 0d65b63 Roll Flutter Engine from 31a21c75d016 to e013908440cd (1 revision) (flutter/flutter#114430) * 8a8b361 Use hintText's TextStyle overflow (flutter/flutter#114378) * e6b4296 Roll Flutter Engine from e013908440cd to a98c82a5e583 (1 revision) (flutter/flutter#114438) * d0afbd7 Revert "Overlay always applies clip (#113770)" (flutter/flutter#114442) * 93b0042 Handle dragging improvements (flutter/flutter#114042) * dc1cedd Roll Flutter Engine from a98c82a5e583 to c1e1a089fa16 (4 revisions) (flutter/flutter#114444) * 8fe8728 Roll Flutter Engine from c1e1a089fa16 to f4da34f1f6a8 (4 revisions) (flutter/flutter#114449) * eadda3c Add Material 3 Popup Menu example and update existing example (flutter/flutter#114228) * fb9065f `Layer ... was previously used as oldLayer` assertion error in debug mode, and page being blank in release mode, caused by LeaderLayer addToScene bug (flutter/flutter#113998) * e37ab48 Introduce debugWithActiveLayoutCleared to avoid duplicated code (flutter/flutter#114003) * c23b5ca Fix `addToScene` documentation (flutter/flutter#113987) * 61deaef Fix bug that`timeDilation` is not reset, causing subsequent test errors, and add verifications to ensure such problem does not exist in the future (flutter/flutter#113830) * 17ec3b1 [flutter_tools] Introducing arg option for specifying the output directory for web (flutter/flutter#113076) * 17df76b Roll Flutter Engine from f4da34f1f6a8 to e95a7ae83097 (1 revision) (flutter/flutter#114453) * f10021b Roll Flutter Engine from e95a7ae83097 to 81f5c30b23f3 (6 revisions) (flutter/flutter#114464) * 97d0247 Add Material 3 support for `Slider` - Part 1 (flutter/flutter#114079) * 0b0e348 Roll Flutter Engine from 81f5c30b23f3 to 85c23bc12c56 (3 revisions) (flutter/flutter#114471) * 6c87d73 Roll Flutter Engine from 85c23bc12c56 to c05c8a8834ca (1 revision) (flutter/flutter#114476) * dbc6123 Roll Flutter Engine from c05c8a8834ca to 32faadb330fc (2 revisions) (flutter/flutter#114479) * 4b31473 Roll Flutter Engine from 32faadb330fc to f9abfc5964c9 (1 revision) (flutter/flutter#114480) * b2d9f9e Roll Flutter Engine from f9abfc5964c9 to 9a741295e793 (2 revisions) (flutter/flutter#114487) * 9d9b0e5 Roll Flutter Engine from 9a741295e793 to 03d5b933164c (1 revision) (flutter/flutter#114489) * 1a150ff Roll Flutter Engine from 03d5b933164c to 9ef5c9b0107b (2 revisions) (flutter/flutter#114492) * 6a66aa2 Add Material 3 support for BottomAppBar (reland #106525) (flutter/flutter#114439) * dca6f10 Roll Flutter Engine from 9ef5c9b0107b to f5eb26e3f763 (1 revision) (flutter/flutter#114494) * 45c3b02 Roll Flutter Engine from f5eb26e3f763 to fed311918037 (2 revisions) (flutter/flutter#114501) * 9f23391 [web] Changes to web keyboard selection shortcuts for more consistent behavior (flutter/flutter#114264) * db381d7 Roll Flutter Engine from fed311918037 to cdfd9d0ad69b (2 revisions) (flutter/flutter#114513) * 1cfdac4 Always invoke impeller ios shader target (flutter/flutter#114451) * 0e70a97 Refactor Animated[List, Grid, SliverList, SliverGrid] to share common code (flutter/flutter#113793) * 1f7bacf Marks Linux build_tests_2_3 to be unflaky (flutter/flutter#114527) * 3079873 [flutter_tools/dap] Map org-dartlang-sdk URIs to the location of the source files found by the analyzer (flutter/flutter#114369) * 78dbe66 Roll Flutter Engine from cdfd9d0ad69b to 4d1d7a41ebd2 (1 revision) (flutter/flutter#114532) * 3b0f833 [flutter_tools/dap] Add a base Flutter adapter class to avoid duplication between adapters (flutter/flutter#114533) * 0211df9 [flutter_tools] provide --timeout option to flutter drive (flutter/flutter#114458) * 475ccd4 Roll Flutter Engine from 4d1d7a41ebd2 to edb049257b52 (2 revisions) (flutter/flutter#114534) * 89418ef Added tokens for Snackbar widget. (flutter/flutter#114466) * b23c780 Roll Flutter Engine from edb049257b52 to e43555ad3b94 (1 revision) (flutter/flutter#114540) * 15867a6 Roll gallery to b6728704a6441ac37a21e433a1e43c990780d47b (flutter/flutter#114537) * 92a6668 Roll Flutter Engine from e43555ad3b94 to 840a7b346216 (4 revisions) (flutter/flutter#114546) * e6300da [tools]validation basic Xcode settings for build ipa (flutter/flutter#113412)
Close #113995
Please see the issue for a bug reproduction. Here I will discuss how it is solved and what caused it.
The real world bug
My app has a part of it not rendered (i.e. page blank) sometimes, which is very weird. After I manage to reproduce it in debug environment, the error is:
The minimal reproduction
(I will omit how I find out the root cause. If you are interested I can write down.)
Please see #113995 with minimal reproduction code
Why that causes bug
The first pumpWidget creates initial tree, and I deliberately set padding to non-zero, such that LeaderLayer.paint will see non-zero Offset, and thus will pushTransform.
In the second pumpWidget, I deliberately set padding to zero. Then, LeaderLayer.paint will not call pushTransform. Correct implementation should set engineLayer to null, but the old code just leave that variable unchanged.
Then comes the third pumpWidget. I change the color inside a RepaintBoundary which is the sibling of LeaderLayer (CompositedTransformTarget). This is carefully constructed (notice the sibling and the RepaintBoundary) to reproduce the following behavior in real-world complicated app: We should (1) ensure
LeaderLayer. _addToSceneWithRetainedRendering
is called, and (2) ensureLeaderLayer. _needsAddToScene = false
. For example, if we do not add that RepaintBoundary, it will not construct the case, because CompositedTransformTarget's RO will repaint and thus _needsAddToScene becomes true.Then, interesting thing happens. Look at the code:
We have constructed a case, such that the
if
is true. Notice that, if we fix the bug (just as what we do in the PR), theengineLayer
will be null so if condition will not be true. Thus, buggy code will callLeaderLayer.addRetained
, while correct code will not.Then the error happens. Notice that, this
LeaderLayer._engineLayer
indeed is the layer constructed in the second pumpWidget instead of the third (i.e. it is stale from last frame). Therefore, this EngineLayer's children are all from the stale previous frame. For example, the ClipRectLayer from previous frame (second pumpWidget). Since it has already been used as oldLayer in RenderClipRect, that old stale ClipRectLayer should never be used. However we are now using it in addRetained. Therefore, no wonder whenaddRetained
is checking all subtree ensuring_debugCheckNotUsedAsOldLayer
, it fails the assertions.Why is the solution valid
With analysis above, we can clearly see this solves the bug. In addition, looking at ClipRectLayer etc, they also have such "engineLayer = null" logic, so even if only mimicking those we should do this.
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.