Skip to content

Bump cocoapods from 1.10.1 to 1.11.3 in /dev/ci/mac - #6

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/bundler/dev/ci/mac/cocoapods-1.11.3
Closed

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/bundler/dev/ci/mac/cocoapods-1.11.3

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 21, 2022

Copy link
Copy Markdown

Bumps cocoapods from 1.10.1 to 1.11.3.

Release notes

Sourced from cocoapods's releases.

1.11.3

Enhancements
  • None.
Bug Fixes

1.11.2

Enhancements
  • None.
Bug Fixes

1.11.1

Enhancements
  • None.
Bug Fixes

... (truncated)

Changelog

Sourced from cocoapods's changelog.

1.11.3 (2022-03-16)

Enhancements
  • None.
Bug Fixes

1.11.2 (2021-09-13)

Enhancements
  • None.
Bug Fixes

1.11.1 (2021-09-12)

Enhancements

... (truncated)

Commits
  • b544eb3 Release 1.11.3
  • 0d47396 Run bundle update inch
  • dfc69bc Merge pull request #11253 from igor-makarov/add-macos-arm-slice
  • e1be9a2 add macos arm slice for 'Vendored XCFramework Example' (static framework)
  • 421b8a3 Merge pull request #11252 from igor-makarov/fix-bad-warning
  • 7331efc add changelog entry
  • d91d666 update integration specs
  • c090f46 add fallback to PLATFORM_NAME when EFFECTIVE_PLATFORM_NAME is empty
  • 8deccdc Merge pull request #11244 from CocoaPods/1113_bump_integration_specs
  • 68d170c Bump integration specs for Xcode 13, build examples with Xcode 13, bump Xcode...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [cocoapods](https://github.com/CocoaPods/CocoaPods) from 1.10.1 to 1.11.3.
- [Release notes](https://github.com/CocoaPods/CocoaPods/releases)
- [Changelog](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md)
- [Commits](CocoaPods/CocoaPods@1.10.1...1.11.3)

---
updated-dependencies:
- dependency-name: cocoapods
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot @github

dependabot Bot commented on behalf of github Mar 21, 2022

Copy link
Copy Markdown
Author

Dependabot tried to add @jmagman, @keyonghan and @yusufm as reviewers to this PR, but received the following error from GitHub:

POST https://api.github.com/repos/dkwingsmt/flutter/pulls/6/requested_reviewers: 422 - Reviews may only be requested from collaborators. One or more of the users or teams you specified is not a collaborator of the dkwingsmt/flutter repository. // See: https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request

@dependabot @github

dependabot Bot commented on behalf of github Mar 21, 2022

Copy link
Copy Markdown
Author

The following labels could not be found: team, team: infra, waiting for tree to go green.

@dependabot @github

dependabot Bot commented on behalf of github Mar 6, 2023

Copy link
Copy Markdown
Author

Superseded by #7.

@dependabot dependabot Bot closed this Mar 6, 2023
@dependabot
dependabot Bot deleted the dependabot/bundler/dev/ci/mac/cocoapods-1.11.3 branch March 6, 2023 16:57
dkwingsmt pushed a commit that referenced this pull request Jun 7, 2023
…extMenuBuilder (flutter#128114)

Close flutter#128113 

Fun fact: This is caught by monkey testing I have written (will soon be open sourced as well) that runs on my app!

Without the fix, the test fails as expected:

<details>

```
(base) �  flutter git:(feat/text-field-npe) /Volumes/MyExternal/ExternalRefCode/flutter/bin/flutter test test/material/text_field_test.dart --name 'changes from default'
00:06 +0: context menu contextMenuBuilder changes from default to null                                                                
��� EXCEPTION CAUGHT BY WIDGETS LIBRARY ������������������������������������������������������������
The following _TypeError was thrown building
_OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#e3717](state:
_OverlayEntryWidgetState#7666a):
Null check operator used on a null value

When the exception was thrown, this was the stack:
#0      EditableTextState._createSelectionOverlay.<anonymous closure> (package:flutter/src/widgets/editable_text.dart:3331:43)
#1      SelectionOverlay.showToolbar.<anonymous closure> (package:flutter/src/widgets/text_selection.dart:1357:36)
#2      ContextMenuController.show.<anonymous closure> (package:flutter/src/widgets/context_menu_controller.dart:65:54)
#3      _OverlayEntryWidgetState.build (package:flutter/src/widgets/overlay.dart:351:36)
#4      StatefulElement.build (package:flutter/src/widgets/framework.dart:5198:27)
#5      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5086:15)
#6      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#7      Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#8      StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#10     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6093:32)
flutter#11     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6595:17)
flutter#12     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#14     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#15     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#16     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#17     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#18     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#19     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#20     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#21     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#23     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#24     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#25     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#26     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#27     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#28     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#29     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#30     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#31     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#32     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#33     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#34     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#35     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#36     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#37     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#38     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#39     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#40     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#41     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#42     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#43     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#44     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#45     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#46     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#47     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#48     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#49     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#50     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#52     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#53     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#54     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#55     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#56     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#57     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#58     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#59     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#60     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#61     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#62     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#63     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#64     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#65     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#66     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#68     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#69     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#70     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#71     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#73     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#74     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#75     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#76     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#77     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#78     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#79     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#80     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#81     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#82     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#83     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#84     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#85     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#86     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#87     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#88     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#89     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#90     StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#91     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#92     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#93     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#94     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#95     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#96     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#97     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#98     StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#99     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#100    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#101    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#102    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#103    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#104    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#105    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#106    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#107    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#108    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#109    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#110    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#111    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#112    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#113    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#114    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#115    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#116    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#117    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#118    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#119    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#120    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#121    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#122    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#123    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#124    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#125    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#126    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#127    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#128    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#129    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#130    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#131    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#132    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#133    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#134    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#135    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#136    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#137    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#138    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#139    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#140    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#141    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#142    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#143    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#144    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#145    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#146    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#147    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#148    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#149    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#150    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#151    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#152    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#153    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#154    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#155    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#156    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#157    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#158    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#159    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#160    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#161    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#162    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#163    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#164    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#165    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#166    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#167    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#168    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#169    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#170    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#171    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#172    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#173    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#174    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#175    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#176    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#177    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#178    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#179    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#180    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#181    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#182    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#183    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#184    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#185    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#186    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#187    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#188    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#189    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#190    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#191    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#192    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#193    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#194    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#195    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#196    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#197    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#198    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#199    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#200    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#201    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#202    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#203    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#204    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#205    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#206    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#207    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#208    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#209    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#210    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#211    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#212    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#213    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#214    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#215    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#216    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#217    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#218    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#219    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#220    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#221    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#222    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#223    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#224    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#225    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#226    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#227    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#228    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#229    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#230    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#231    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#232    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#233    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#234    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#235    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#236    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#237    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#238    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#239    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#240    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#241    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#242    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#243    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#244    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#245    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#246    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#247    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#248    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#249    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#250    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#251    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#252    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#253    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#254    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#255    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#256    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#257    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#258    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#259    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#260    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#261    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#262    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#263    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#264    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#265    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#266    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#267    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#268    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#269    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#270    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#271    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#272    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#273    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#274    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#275    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#276    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#277    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
flutter#278    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#279    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#280    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#281    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#282    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
flutter#283    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#284    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#285    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#286    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#287    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#288    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#289    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#290    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#291    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#292    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#293    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#294    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#295    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#296    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#297    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#298    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#299    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#300    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#301    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#302    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#303    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#304    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#305    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#306    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#307    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
flutter#308    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#309    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
flutter#310    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#311    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#312    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#313    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
flutter#314    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#315    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
flutter#316    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#317    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
flutter#318    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
flutter#319    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1253:16)
flutter#320    RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1230:5)
flutter#321    RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1244:7)
flutter#322    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
flutter#323    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2780:19)
flutter#324    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1396:19)
flutter#325    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)
flutter#326    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297:15)
flutter#327    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227:9)
flutter#328    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:1246:9)
flutter#331    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:68:41)
flutter#332    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1232:27)
flutter#333    WidgetTester._pumpWidget (package:flutter_test/src/widget_tester.dart:587:20)
flutter#334    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:572:14)
flutter#337    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:68:41)
flutter#338    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:571:27)
flutter#339    main.<anonymous closure>.<anonymous closure> (file:///Volumes/MyExternal/ExternalRefCode/flutter/packages/flutter/test/material/text_field_test.dart:15687:20)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

����������������������������������������������������������������������������������������������������
00:06 +0 -1: context menu contextMenuBuilder changes from default to null [E]                                                         
  Test failed. See exception logs above.
  The test description was: contextMenuBuilder changes from default to null
  
To run this test again: /Volumes/MyExternal/ExternalRefCode/flutter/bin/cache/dart-sdk/bin/dart test /Volumes/MyExternal/ExternalRefCode/flutter/packages/flutter/test/material/text_field_test.dart -p vm --plain-name 'context menu contextMenuBuilder changes from default to null'
00:06 +0 -1: Some tests failed.                                                                                                       
(base) �  flutter git:(feat/text-field-npe) 

```

</details>
dkwingsmt pushed a commit that referenced this pull request Aug 3, 2023
…icker and showAboutDialog." (flutter#131278)

Reverts flutter#130484. /cc @ronnnnn

Example failure: https://ci.chromium.org/ui/p/flutter/builders/prod/Mac%20framework_tests_libraries/12185/overview

<details>
<summary>Failure logs...</summary>

```
04:51 +5379 ~18: /Volumes/Work/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart: Barrier dismissible Barrier is dismissible with default parameter                                    
��� EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK �����������������������������������������������������
The following TestFailure was thrown running a test:
Expected: <1>
  Actual: <2>

When the exception was thrown, this was the stack:
#4      main.<anonymous closure>.<anonymous closure> (file:///Volumes/Work/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart:776:7)
<asynchronous suspension>
#5      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:165:15)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1008:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///Volumes/Work/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart line 776
The test description was:
  Barrier is dismissible with default parameter
����������������������������������������������������������������������������������������������������

04:51 +5379 ~18 -1: /Volumes/Work/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart: Barrier dismissible Barrier is dismissible with default parameter [E]                             
  Test failed. See exception logs above.
  The test description was: Barrier is dismissible with default parameter
  
To run this test again: /Volumes/Work/s/w/ir/x/w/flutter/bin/cache/dart-sdk/bin/dart test /Volumes/Work/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart -p vm --plain-name 'Barrier dismissible Barrier is dismissible with default parameter'
```

</details>
dkwingsmt pushed a commit that referenced this pull request Aug 11, 2023
This is a follow up to the following pull requests:
- flutter#124514

I was finally able to reproduce this bug and found out why it was happening. Consider this code:

```dart
GestureDetector(
  behavior: HitTestBehavior.translucent,
  // Note: Make sure onTap is not null to ensure events
  // are captured by `GestureDetector`
  onTap: () {},
  child: _shouldShowSlider
    ? Slider(value: _value, onChanged: _handleSlide)
    : const SizedBox.shrink().
)
```

Runtime exception happens when:

1. User taps and holds the Slider (drag callback captured by `GestureDetector`)
2. `_shouldShowSlider` changes to false, Slider disappears and unmounts, and unregisters `_handleSlide`. But the callback is still registered by `GestureDetector`
3. Users moves finger as if Slider were still there
4. Drag callback is invoked, `_SliderState.showValueIndicator` is called
5. Exception - Slider is already disposed

This pull request fixes it by adding a mounted check inside `_SliderState.showValueIndicator` to ensure the Slider is actually mounted at the time of invoking drag event callback. I've added a unit test that will fail without this change.

The error stack trace is:

```
The following assertion was thrown while handling a gesture:
This widget has been unmounted, so the State no longer has a context (and should be considered
defunct).
Consider canceling any active work during "dispose" or using the "mounted" getter to determine if
the State is still active.

When the exception was thrown, this was the stack:
#0      State.context.<anonymous closure> (package:flutter/src/widgets/framework.dart:950:9)
#1      State.context (package:flutter/src/widgets/framework.dart:956:6)
#2      _SliderState.showValueIndicator (package:flutter/src/material/slider.dart:968:18)
#3      _RenderSlider._startInteraction (package:flutter/src/material/slider.dart:1487:12)
#4      _RenderSlider._handleDragStart (package:flutter/src/material/slider.dart:1541:5)
#5      DragGestureRecognizer._checkStart.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:531:53)
#6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:275:24)
#7      DragGestureRecognizer._checkStart (package:flutter/src/gestures/monodrag.dart:531:7)
#8      DragGestureRecognizer._checkDrag (package:flutter/src/gestures/monodrag.dart:498:5)
#9      DragGestureRecognizer.acceptGesture (package:flutter/src/gestures/monodrag.dart:431:7)
flutter#10     _CombiningGestureArenaMember.acceptGesture (package:flutter/src/gestures/team.dart:45:14)
flutter#11     GestureArenaManager._resolveInFavorOf (package:flutter/src/gestures/arena.dart:281:12)
flutter#12     GestureArenaManager._resolve (package:flutter/src/gestures/arena.dart:239:9)
flutter#13     GestureArenaEntry.resolve (package:flutter/src/gestures/arena.dart:53:12)
flutter#14     _CombiningGestureArenaMember._resolve (package:flutter/src/gestures/team.dart:85:15)
flutter#15     _CombiningGestureArenaEntry.resolve (package:flutter/src/gestures/team.dart:19:15)
flutter#16     OneSequenceGestureRecognizer.resolve (package:flutter/src/gestures/recognizer.dart:375:13)
flutter#17     DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:414:13)
flutter#18     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98:12)
flutter#19     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
flutter#20     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:625:13)
flutter#21     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141:18)
flutter#22     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127:7)
flutter#23     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:488:19)
flutter#24     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:468:22)
flutter#25     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:439:11)
flutter#26     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:413:7)
flutter#27     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:376:5)
flutter#28     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:323:7)
flutter#29     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:292:9)
flutter#30     _invoke1 (dart:ui/hooks.dart:186:13)
flutter#31     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:433:7)
flutter#32     _dispatchPointerDataPacket (dart:ui/hooks.dart:119:31)

Handler: "onStart"
Recognizer:
  HorizontalDragGestureRecognizer#a5df2
```

*List which issues are fixed by this PR. You must list at least one issue.*

Internal bug: b/273666179, b/192329942

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
dkwingsmt pushed a commit that referenced this pull request Feb 12, 2025
The crash indicates that FlutterJNI is returning a nullptr
SurfaceControl.Transaction. That likely indicates that we're trying to
rasterize a frame before the platform view controller is setup.
Potentially a startup race?

At any rate, if the PVC is null that means there is no platform views -
so it should be safe to create a tx on the fly. Interestingly I cannot
repro this locally even on the same device.

```
[2025-02-11 21:50:37.462356] [STDOUT] stdout: [ +173 ms] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
[2025-02-11 21:50:37.462539] [STDOUT] stdout: [        ] Build fingerprint: 'google/cheetah/cheetah:13/TQ3A.230901.001/10750268:user/release-keys'
[2025-02-11 21:50:37.462564] [STDOUT] stdout: [        ] Revision: 'MP1.0'
[2025-02-11 21:50:37.463914] [STDOUT] stdout: [   +1 ms] ABI: 'arm64'
[2025-02-11 21:50:37.463946] [STDOUT] stdout: [        ] Timestamp: 2025-02-11 21:57:42.183302140-0800
[2025-02-11 21:50:37.463959] [STDOUT] stdout: [        ] Process uptime: 3s
[2025-02-11 21:50:37.464054] [STDOUT] stdout: [        ] Cmdline: dev.benchmarks.platform_views_layout
[2025-02-11 21:50:37.464174] [STDOUT] stdout: [        ] pid: 15185, tid: 15246, name: 1.raster  >>> dev.benchmarks.platform_views_layout <<<
[2025-02-11 21:50:37.464354] [STDOUT] stdout: [        ] uid: 10250
[2025-02-11 21:50:37.464398] [STDOUT] stdout: [        ] tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
[2025-02-11 21:50:37.464440] [STDOUT] stdout: [        ] signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000
[2025-02-11 21:50:37.464602] [STDOUT] stdout: [        ] Cause: null pointer dereference
[2025-02-11 21:50:37.464651] [STDOUT] stdout: [        ]     x0  b400007b82ff2e70  x1  000000000000002d  x2  b400007c3309f370  x3  0000007abbcc6a23
[2025-02-11 21:50:37.464745] [STDOUT] stdout: [        ]     x4  0000007a30d286b0  x5  0000007a4f6dd47b  x6  0000000000000000  x7  61686b4b11ff3a78
[2025-02-11 21:50:37.464831] [STDOUT] stdout: [        ]     x8  0000000000000000  x9  1417c2bd490e1f78  x10 0000000000000010  x11 000000000000009c
[2025-02-11 21:50:37.464933] [STDOUT] stdout: [        ]     x12 0000000000000adb  x13 b400007ba2fe9510  x14 0000000000000e6b  x15 b400007ba2fe9510
[2025-02-11 21:50:37.465012] [STDOUT] stdout: [        ]     x16 0000000000000001  x17 0000000000000067  x18 0000007a2f996000  x19 b400007b82ff2e70
[2025-02-11 21:50:37.465082] [STDOUT] stdout: [        ]     x20 000000000000002d  x21 b400007ae3064b60  x22 b400007af30d0fa8  x23 0000000000000001
[2025-02-11 21:50:37.465155] [STDOUT] stdout: [        ]     x24 0000007a30d2a000  x25 b400007b73028fb0  x26 0000007a3a22da20  x27 000000003b9bf6c8
[2025-02-11 21:50:37.465235] [STDOUT] stdout: [        ]     x28 b400007af30d0fa8  x29 b400007ad3022cd0
[2025-02-11 21:50:37.465318] [STDOUT] stdout: [        ]     lr  0000007a3a8c7918  sp  0000007a30d28940  pc  0000000000000000  pst 0000000040001000
[2025-02-11 21:50:37.465401] [STDOUT] stdout: [        ] backtrace:
[2025-02-11 21:50:37.465491] [STDOUT] stdout: [        ]       #00 pc 0000000000000000  <unknown>
[2025-02-11 21:50:37.465596] [STDOUT] stdout: [        ]       #1 pc 000000000088b914  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (flutter::PlatformViewAndroidJNIImpl::createTransaction()+104) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.465688] [STDOUT] stdout: [        ]       #2 pc 000000000087f738  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (std::_fl::__function::__func<flutter::AndroidSurfaceVKImpeller::SetNativeWindow(fml::RefPtr<flutter::AndroidNativeWindow>, std::_fl::shared_ptr<flutter::PlatformViewAndroidJNI> const&)::$_0, std::_fl::allocator<flutter::AndroidSurfaceVKImpeller::SetNativeWindow(fml::RefPtr<flutter::AndroidNativeWindow>, std::_fl::shared_ptr<flutter::PlatformViewAndroidJNI> const&)::$_0>, impeller::android::SurfaceTransaction ()>::operator()()+16) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.465785] [STDOUT] stdout: [        ]       #3 pc 0000000000bdbf1c  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (std::_fl::__function::__func<impeller::AHBSwapchainImplVK::AcquireNextDrawable()::$_0, std::_fl::allocator<impeller::AHBSwapchainImplVK::AcquireNextDrawable()::$_0>, bool ()>::operator()()+1716) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.465874] [STDOUT] stdout: [        ]       #4 pc 0000000000b1d180  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (flutter::SurfaceFrame::Submit()+148) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.465989] [STDOUT] stdout: [        ]       #5 pc 0000000000beb2b4  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (flutter::Rasterizer::DrawToSurfacesUnsafe(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)+1284) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466400] [STDOUT] stdout: [        ]       #6 pc 0000000000beac58  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)+112) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466444] [STDOUT] stdout: [        ]       #7 pc 0000000000bec144  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (std::_fl::__function::__func<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0, std::_fl::allocator<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0>, void (std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >)>::operator()(std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >&&)+192) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466468] [STDOUT] stdout: [        ]       #8 pc 0000000000bebc48  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)+360) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466521] [STDOUT] stdout: [        ]       #9 pc 0000000000bf9f7c  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0> >, void ()>::operator()()+84) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466543] [STDOUT] stdout: [        ]       flutter#10 pc 00000000008a09ec  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (fml::MessageLoopImpl::RunExpiredTasksNow()+728) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466667] [STDOUT] stdout: [        ]       flutter#11 pc 00000000008a4600  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (fml::MessageLoopAndroid::MessageLoopAndroid()::$_0::__invoke(int, int, void*)+84) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466746] [STDOUT] stdout: [        ]       flutter#12 pc 0000000000011178  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+808) (BuildId: 0b4a793fa8045c04066d988c68bac8bb)
[2025-02-11 21:50:37.466784] [STDOUT] stdout: [        ]       flutter#13 pc 00000000000185e4  /system/lib64/libandroid.so (ALooper_pollOnce+100) (BuildId: 682dab490c18361d5d6527bcdd86cdfa)
[2025-02-11 21:50:37.466865] [STDOUT] stdout: [        ]       flutter#14 pc 00000000008a470c  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (fml::MessageLoopAndroid::Run()+28) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466903] [STDOUT] stdout: [        ]       flutter#15 pc 00000000008a283c  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (std::_fl::__function::__func<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0, std::_fl::allocator<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0>, void ()>::operator()()+116) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.466943] [STDOUT] stdout: [        ]       flutter#16 pc 00000000008a2670  /data/app/~~u9nRjz4bI1GoKFecw6gtbg==/dev.benchmarks.platform_views_layout-RoPBoOldhc38L7sINb2Vgg==/lib/arm64/libflutter.so (fml::ThreadHandle::ThreadHandle(std::_fl::function<void ()>&&)::$_0::__invoke(void*)+8) (BuildId: 8fab16f9507483301ef418db2c91ed06689696b1)
[2025-02-11 21:50:37.467002] [STDOUT] stdout: [        ]       flutter#17 pc 00000000000c226c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+204) (BuildId: dc4001c2ef2dfc23467040797a96840c)
[2025-02-11 21:50:37.467058] [STDOUT] stdout: [        ]       flutter#18 pc 0000000000054a30  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: dc4001c2ef2dfc23467040797a96840c)
[2025-02-11 21:50:37.525275] [STDOUT] stdout: [  +57 ms] 00:00 �[32m+0�[0m�[31m -1�[0m: scrolling performance test (setUpAll) �[1m�[31m[E]�[0m�[0m
```
dkwingsmt pushed a commit that referenced this pull request Apr 22, 2025
Fixes error found in rolling to google.

```
[☠] Android toolchain - develop for Android devices (the doctor check crashed)
    ✗ Due to an error, the doctor check did not complete. If the error message
      below is not helpful, please let us know about this issue at
      https://github.com/flutter/flutter/issues.
    ✗ type 'Null' is not a subtype of type 'String' of 'executable'
    • #0      LocalProcessManager.canRun
      (package:process/src/interface/local_process_manager.dart:124)
      #1      getEmulatorVersion
      (package:flutter_tools/src/android/android_workflow.dart:64)
      #2      AndroidValidator.validateImpl
      (package:flutter_tools/src/android/android_workflow.dart:200)
      #3      DoctorValidator.validate
      (package:flutter_tools/src/doctor_validator.dart:58)
      #4      Doctor.startValidatorTasks.<anonymous closure>
      (package:flutter_tools/src/doctor.dart:244)
      #5      asyncGuard.<anonymous closure>
      (package:flutter_tools/src/base/async_guard.dart:109)
      #6      _rootRun (dart:async/zone.dart:1525)
      #7      _CustomZone.run (dart:async/zone.dart:1422)
      #8      _runZoned (dart:async/zone.dart:2033)
      #9      runZonedGuarded (dart:async/zone.dart:2019)
      flutter#10     runZoned (dart:async/zone.dart:1952)
      flutter#11     asyncGuard (package:flutter_tools/src/base/async_guard.dart:106)
      flutter#12     Doctor.startValidatorTasks
      (package:flutter_tools/src/doctor.dart:234)
      flutter#13     Doctor.diagnose (package:flutter_tools/src/doctor.dart:372)
      flutter#14     DoctorCommand.runCommand
      (package:flutter_tools/src/commands/doctor.dart:59)
      flutter#15     FlutterCommand.verifyThenRunCommand
      (package:flutter_tools/src/runner/flutter_command.dart:1897)
      <asynchronous suspension>
      flutter#16     FlutterCommand.run.<anonymous closure>
      (package:flutter_tools/src/runner/flutter_command.dart:1551)
      <asynchronous suspension>
      flutter#17     AppContext.run.<anonymous closure>
      (package:flutter_tools/src/base/context.dart:154)
      <asynchronous suspension>
      flutter#18     CommandRunner.runCommand (package:args/command_runner.dart:212)
      <asynchronous suspension>
      flutter#19     FlutterCommandRunner.runCommand.<anonymous closure>
      (package:flutter_tools/src/runner/flutter_command_runner.dart:501)
      <asynchronous suspension>
      flutter#20     AppContext.run.<anonymous closure>
      (package:flutter_tools/src/base/context.dart:154)
      <asynchronous suspension>
      flutter#21     FlutterCommandRunner.runCommand
      (package:flutter_tools/src/runner/flutter_command_runner.dart:438)
      <asynchronous suspension>
      flutter#22     run.<anonymous closure>.<anonymous closure>
      (package:flutter_tools/runner.dart:98)
      <asynchronous suspension>
      flutter#23     AppContext.run.<anonymous closure>
      (package:flutter_tools/src/base/context.dart:154)
      <asynchronous suspension>
      flutter#24     AppContext.run.<anonymous closure>
      (package:flutter_tools/src/base/context.dart:154)
      <asynchronous suspension>
      flutter#25     run (package:mobile.flutter.cli/flutter_tools.dart:106)
      <asynchronous suspension>
      flutter#26     main (google3:///mobile/flutter/cli/bin/cli_usage_aot.dart:4)
```

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
dkwingsmt pushed a commit that referenced this pull request Jul 14, 2025
dkwingsmt pushed a commit that referenced this pull request Nov 4, 2025
This test passes when run locally as instructed in the README for the
devicelab
```
../../bin/cache/dart-sdk/bin/dart bin/test_runner.dart test -t android_verified_input_test
```

but fails on CI:

https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_pixel_7pro%20android_verified_input_test/106/overview
```
[2025-11-03 11:08:04.090018] [STDOUT] stdout: [        ]   Original error: ext.flutter.driver: (-32000) Service connection disposed
[2025-11-03 11:08:04.090156] [STDOUT] stdout: [        ]   Original stack trace:
[2025-11-03 11:08:04.090199] [STDOUT] stdout: [        ]   #0      new _OutstandingRequest (package:vm_service/src/vm_service.dart:268:34)
[2025-11-03 11:08:04.091572] [STDOUT] stdout: [        ]   #1      VmService._call.<anonymous closure> (package:vm_service/src/vm_service.dart:1950:25)
[2025-11-03 11:08:04.091647] [STDOUT] stdout: [        ]   #2      VmService._call (package:vm_service/src/vm_service.dart:1962:8)
[2025-11-03 11:08:04.091674] [STDOUT] stdout: [        ]   #3      VmService.callServiceExtension (package:vm_service/src/vm_service.dart:1901:14)
[2025-11-03 11:08:04.091693] [STDOUT] stdout: [        ]   #4      VMServiceFlutterDriver.sendCommand (package:flutter_driver/src/driver/vmservice_driver.dart:327:12)
[2025-11-03 11:08:04.091713] [STDOUT] stdout: [        ]   #5      FlutterDriver.requestData (package:flutter_driver/src/driver/driver.dart:573:13)
[2025-11-03 11:08:04.091733] [STDOUT] stdout: [        ]   #6      main.<anonymous closure> (file:///opt/s/w/ir/x/w/rc/tmpv6pcbna2/flutter%20sdk/dev/integration_tests/android_verified_input/test_driver/main_test.dart:28:57)
[2025-11-03 11:08:04.091750] [STDOUT] stdout: [        ]   <asynchronous suspension>
[2025-11-03 11:08:04.091767] [STDOUT] stdout: [        ]   #7      Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:242:9)
[2025-11-03 11:08:04.091784] [STDOUT] stdout: [        ]   <asynchronous suspension>
[2025-11-03 11:08:04.092408] [STDOUT] stdout: [        ]   #8      Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:240:7)
[2025-11-03 11:08:04.092472] [STDOUT] stdout: [        ]   <asynchronous suspension>
[2025-11-03 11:08:04.092502] [STDOUT] stdout: [        ]   #9      Invoker._waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:282:9)
```

Try copying this configuration used by other tests as a speculative fix.
I can't get this test to kick off in presubmit, so I suppose we will
just try this. The test is marked bringup anyways so it won't block the
tree if this doesn't help.

## Pre-launch Checklist

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

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

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

---------

Co-authored-by: Gray Mackall <[email protected]>
dkwingsmt pushed a commit that referenced this pull request Jan 22, 2026
Fixes flutter#181196

This PR fixes the description for the bySemanticsLabel/Identifier
matchers, which was missing.

Note: The framework uses `byElementPredicate()` in a bunch of places in
tests, but not all use the `description` field.
Should we add descriptions to those?

Example:

```dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  testWidgets('bySemanticsLabel', (tester) async {
    await tester.pumpWidget(const MaterialApp(home: Text('hello')));
    await tester.pumpAndSettle();
    expect(find.bySemanticsLabel('goodbye'), findsOneWidget);
  });

  testWidgets('bySemanticsLabel regex', (tester) async {
    await tester.pumpWidget(const MaterialApp(home: Text('hello')));
    await tester.pumpAndSettle();
    expect(find.bySemanticsLabel(RegExp('^foo')), findsOneWidget);
  });

  testWidgets('bySemanticsIdentifier', (tester) async {
    await tester.pumpWidget(const MaterialApp(home: Text('hello')));
    await tester.pumpAndSettle();
    expect(find.bySemanticsIdentifier('goodbye'), findsOneWidget);
  });

  testWidgets('bySemanticsIdentifier regex', (tester) async {
    await tester.pumpWidget(const MaterialApp(home: Text('hello')));
    await tester.pumpAndSettle();
    expect(find.bySemanticsIdentifier(RegExp('^foo')), findsOneWidget);
  });
}
```

now gives:

```dart
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching candidate
  Actual: _ElementPredicateWidgetFinder:<Found 0 widgets with a semantics label named "goodbye": []>
   Which: means none were found but one was expected

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart:8:5)
<asynchronous suspension>
#5      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:192:15)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1692:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart line 8
The test description was:
  bySemanticsLabel
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching candidate
  Actual: _ElementPredicateWidgetFinder:<Found 0 widgets with a semantics label matching the pattern
"^foo": []>
   Which: means none were found but one was expected

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart:14:5)
<asynchronous suspension>
#5      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:192:15)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1692:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart line 14
The test description was:
  bySemanticsLabel regex
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching candidate
  Actual: _ElementPredicateWidgetFinder:<Found 0 widgets with a semantics identifier named
"goodbye": []>
   Which: means none were found but one was expected

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart:20:5)
<asynchronous suspension>
#5      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:192:15)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1692:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart line 20
The test description was:
  bySemanticsIdentifier
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching candidate
  Actual: _ElementPredicateWidgetFinder:<Found 0 widgets with a semantics identifier matching the
pattern "^foo": []>
   Which: means none were found but one was expected

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart:26:5)
<asynchronous suspension>
#5      testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:192:15)
<asynchronous suspension>
#6      TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1692:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///Users/navaronbracke/Desktop/matchers_test/test/widget_test.dart line 26
The test description was:
  bySemanticsIdentifier regex
════════════════════════════════════════════════════════════════════════════════════════════════════

```

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## 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.
- [ ] All existing and new tests are passing.

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

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
dkwingsmt pushed a commit that referenced this pull request Feb 4, 2026
Instead of using fake touch events. 

Before this patch `FlutterViewController` sends two fake touch events
(down and up), at `(0, 0)` to the framework to signal that the status
bar is tapped on iOS. The scaffold widget and the cupertino page
scaffold widget set up gesture detectors to listen for these fake taps,
and scroll the "primary" scrollable container to the top in response.

This messaging mechanism is sometimes ambiguous, as the framework may
interpret that as a pair of regular pointer tap events (for instance in
flutter#177992 the modal barrier claims the tap gesture and as a result the
modal barrier is dismissed by the fake touch events). This PR changes
that to communicate the status bar tap event via a new system channel,
and dispatch the events via `WidgetsBindingObserver`s in the framework.

See also
flutter#177992 (comment)

Fixes flutter#177992, fixes flutter#175606

It appears that UIKit also has access to the coordinates of the touch
events to determine which scrollable view(s?) to dispatch the scroll to
top event to.
```objc
  * frame #0: 0x00000001032f6520 UIPlayground.debug.dylib`MyScrollViewController.scrollViewShouldScrollToTop(scrollView=0x0000000106014800) at UIScrollView.swift:13:3
    frame #2: 0x00000001867c9300 UIKitCore`-[UIScrollView _scrollToTopIfPossible:] + 316
    frame #3: 0x00000001867c9604 UIKitCore`-[UIScrollView _scrollToTopFromTouchAtScreenLocation:resultHandler:] + 40
    frame #4: 0x0000000186299bbc UIKitCore`__71-[UIWindow _scrollToTopViewsUnderScreenPointIfNecessary:resultHandler:]_block_invoke.358 + 168
    frame #5: 0x000000018629981c UIKitCore`-[UIWindow _scrollToTopViewsUnderScreenPointIfNecessary:resultHandler:] + 1212
    frame #6: 0x000000018581ed8c UIKitCore`-[UIStatusBarManager _handleScrollToTopAtXPosition:] + 192
    frame #7: 0x000000018581eb60 UIKitCore`-[UIStatusBarManager handleTapAction:] + 60
```
Unfortunately that information is not available to user application. The
iOS accessibility bridge currently does create dummy UIScrollViews for
each scrollable in the accessibility tree so may be we can take
advantage of that in the future.

## Pre-launch Checklist

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

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

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
dkwingsmt pushed a commit that referenced this pull request Oct 2, 2026
… source directory on the app path (flutter#192488)

## Description

This is PR 6 of 11 in the AGP 9.1.0 / public `gradle-api` migration
stack ([flutter#180137](flutter#180137),
[flutter#166550](flutter#166550)).

Before turning an agent to this stack of prs this migration was the one
I was the most worried about getting right. I added a test we were
missing to help prevent regressions. Add to app is a future pr (I think
the next one).

- @reidbaker

<details> 
<summary>Agent authored details</summary> 
### Changes

1. **App asset delivery via the modern variant API**
- Registers `copyFlutterAssets<Variant>` inside the consolidated
`onVariants` block as a lazy `TaskProvider<CopyFlutterAssetsTask>`.
- Wires it to AGP with
`variant.sources.assets.addGeneratedSourceDirectory(copyFlutterAssetsTaskProvider,
CopyFlutterAssetsTask::destinationDir)`, so AGP merges Flutter's assets
as a generated asset source directory instead of us mutating the task
graph.
2. **`CopyFlutterAssetsTask`**
- Uses injected `FileSystemOperations.sync` so stale assets are pruned
on rebuild.
- Forces owner read+write on staged assets, avoiding read-only files
inherited from the pub cache.
- `@InputDirectory` + `@PathSensitive(RELATIVE)`, `@OutputDirectory`,
and `@DisableCachingByDefault`.
3. **Compile option extraction** — adds a `FlutterCompileOptions` data
class to remove duplicated property reads between the app path and
`addFlutterDepsForModule`.
4. **Task graph cleanup** — deletes the legacy app-path copy into
`mergeAssets.outputDir`, the `processResources` / `cleanMergeAssets`
surgery, and the manual `compress<Variant>Assets` `dependsOn` wiring.
Add-to-app module paths are intentionally untouched until PR 8.
5. **Tests** — new unit tests for `onVariants` wiring and
`CopyFlutterAssetsTask` execution, plus a new Android integration test
that inspects the built APK.

---

### Asset type coverage

Two different levels of verification are relevant here, and it is worth
separating them:

- **Bundle-level** — does the asset end up in the `flutter_assets`
bundle that `flutter assemble` produces? Covered by unit tests in
`general.shard`.
- **APK-level** — does it end up inside the built `.apk` / `.aab`?
Covered by integration tests that unzip the artifact.

This distinction matters because `CopyFlutterAssetsTask` performs a
single opaque `sync` of the whole `flutter_assets/**` tree with one
top-level `include` and no per-type filtering, renaming, or
special-casing. Nothing inside that directory is treated differently by
the Android build. So for Flutter-side asset types, the APK-level risk
is not "does this asset type survive" but "does the directory arrive at
all" — which the new tests in this PR cover directly.

Tests added in this PR are in
`packages/flutter_tools/test/integration.shard/android_gradle_asset_merging_test.dart`,
abbreviated below as **`asset_merging`**.

| Asset type | How it's specified | Bundle-level coverage | APK-level
coverage | Assessment |
| :--- | :--- | :--- | :--- | :--- |
| Standard `assets:` entry | [Flutter: assets and
images](https://docs.flutter.dev/ui/assets/assets-and-images) |
[`asset_bundle_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_test.dart)
→ `'nonempty'` | **`asset_merging`** → `'Flutter assets, directory
assets, resolution variants, and native Android assets coexist in APK'`
| Covered at both levels. |
| Directory / wildcard assets | [Flutter: asset
variants](https://docs.flutter.dev/ui/assets/assets-and-images#asset-variants)
|
[`asset_bundle_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_test.dart)
→ `'wildcard directories do not include subdirectories'` |
**`asset_merging`** → same test as above | Covered at both levels. |
| Resolution-aware variants (`2.0x/`, `3.0x/`) | [Flutter:
resolution-aware
images](https://docs.flutter.dev/ui/assets/assets-and-images#resolution-aware)
|
[`asset_bundle_variant_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_variant_test.dart)
→ group `'AssetBundle asset variants (with Unix-style paths)'` |
**`asset_merging`** → same test as above | Covered at both levels. |
| Fonts (`fonts:`) | [Flutter: custom
fonts](https://docs.flutter.dev/cookbook/design/fonts) |
[`asset_bundle_package_fonts_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart)
→ `'App includes neither font manifest nor fonts when no defines fonts'`
| None | No new test recommended. Fonts are ordinary files inside
`flutter_assets` and receive no special handling from
`CopyFlutterAssetsTask` or AGP. Bundle-level coverage plus this PR's
directory-arrival coverage is sufficient. |
| Package assets (`packages/<pkg>/...`) | [Flutter: assets from
packages](https://docs.flutter.dev/ui/assets/assets-and-images#from-packages)
|
[`asset_bundle_package_test.dart:530`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_package_test.dart#L530)
→ `'One asset is bundled when the app depends on a package, ...'` | None
| No new test recommended. Same rationale — these are plain files under
`flutter_assets`. |
| `NOTICES` / license aggregation | [Flutter:
licenses](https://docs.flutter.dev/ui/assets/assets-and-images) |
[`asset_bundle_test.dart#L131`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_test.dart#L131)
— `NOTICES.Z` is asserted in the expected bundle output of most tests in
the file | None | No new test recommended. Same rationale. |
| Shaders (`shaders:`) | [Flutter: fragment
shaders](https://docs.flutter.dev/ui/design/graphics/fragment-shaders) |
[`asset_bundle_test.dart#L918`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_test.dart#L918)
→ `'Including a shader triggers the shader compiler'` | None | No new
test recommended. Compiled shaders land in `flutter_assets` as opaque
files. |
| Deferred-component assets | [Flutter: deferred
components](https://docs.flutter.dev/perf/deferred-components) |
[`asset_bundle_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/general.shard/asset_bundle_test.dart)
→ `'deferred assets are parsed'` |
[`deferred_components_assets_reproduce_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/integration.shard/deferred_components_assets_reproduce_test.dart)
→ `'deferred components assets are not missing on clean build'`;
[`deferred_components_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/integration.shard/deferred_components_test.dart)
→ `'simple build appbundle android-arm64 target succeeds'` | Covered at
both levels. These are the only pre-existing tests that unzip an
artifact and assert on asset entries. |
| Obfuscation / split debug info | [Flutter:
obfuscation](https://docs.flutter.dev/deployment/obfuscate) | n/a |
[`android_obfuscate_test.dart`](https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/integration.shard/android_obfuscate_test.dart)
→ `'Dart identifiers are obfuscated with build apk --obfuscate'` | Not
an asset path. That test asserts on `libapp.so`, and the symbol file is
emitted out-of-band to the host disk rather than packaged. Listed only
to preempt the question. |
| `src/main/assets/` | [Android: app
resources](https://developer.android.com/guide/topics/resources/providing-resources)
| n/a | **`asset_merging`** → `'Flutter assets, directory assets,
resolution variants, and native Android assets coexist in APK'` |
Covered. Also covered on collision: **`asset_merging`** → `'generated
Flutter assets take precedence over static src/main/assets on path
collision without build failure'`. |
| Per-flavor `src/<flavor>/assets/` | [Android: build
variants](https://developer.android.com/build/build-variants) | n/a |
**`asset_merging`** → `'flavor-specific and buildType-specific native
assets are packaged into the matching variant APK'` | Covered, including
the negative case that the non-selected flavor does not contribute. |
| Per-buildType `src/<buildType>/assets/` | [Android: build
variants](https://developer.android.com/build/build-variants) | n/a |
**`asset_merging`** → same test as above | Covered. Added in response to
review; folded into the existing flavor test so it reuses that build and
costs no additional CI time. |
| Library / AAR assets from dependencies | [Android: create a
library](https://developer.android.com/studio/projects/android-library)
| n/a | None | No new test recommended. Likely common in the wild, but
merging AAR assets is core AGP behavior that this PR does not touch — we
add a generated source directory and otherwise leave the merger alone.
Testing it would be testing AGP, not Flutter. |
| `androidResources.noCompress` | [Android:
AaptOptions](https://developer.android.com/reference/tools/gradle-api/current/com/android/build/api/dsl/AndroidResources)
| n/a | None | No new test recommended. Rare, and handled entirely by
AGP's packaging step downstream of anything this PR changes. |

**Gap summary.** The only Android-side gap this PR chose not to close is
library/AAR asset merging, on the grounds that it is AGP behavior we do
not modify. If we later want it, the natural home is
`android_gradle_asset_merging_test.dart` — add a `flutter create
--template=plugin` dependency carrying an asset and assert the entry
appears in the app's APK.

</details>

### Behavioral and compatibility notes

1. **`copyFlutterAssets<Variant>` is no longer a Gradle `Copy`.** Build
scripts that reached in and cast it to `org.gradle.api.tasks.Copy` will
now get a `ClassCastException` and must use `CopyFlutterAssetsTask` or
plain `Task`.
2. **`processResources` no longer depends on `flutter assemble`.**
Java/Kotlin resource processing is now independent of Flutter
compilation.
3. **Stale asset pruning moved.** It is handled by
`FileSystemOperations.sync` in the task's own output directory rather
than by mutating `cleanMergeAssets`.
4. **Collision precedence is contractual, not incidental.** Per the AGP
`SourceDirectories` API docs, `addGeneratedSourceDirectory` places the
directory in the "Variant" overlay and it "will have the highest
priority" during merge. Generated Flutter assets therefore win over
`src/main/assets`. This is asserted by test, and the contract is quoted
in a comment above that test.

---

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [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 in-code documentation (doc comments with
`///`).
- [x] If this PR introduces a new feature or capability, I created and
linked a website documentation issue or PR in [flutter/website] (or
verified none is needed).
- [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.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[flutter/website]: https://github.com/flutter/website
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

---------

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants