Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cache FocusNode.enclosingScope, clean up descendantsAreFocusable #144207

Merged
merged 1 commit into from
Feb 27, 2024

Conversation

LongCatIsLooong
Copy link
Contributor

FocusNode.canRequestFocus was doing a double traversal if no ancestor disallows focus. The last for loop only has to reach as far as the enclosing scope.

Also this caches the FocusNode.enclosingScope since the getter access happens much more frequently than node reparenting.

Pre-launch Checklist

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

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: focus Focus traversal, gaining or losing focus labels Feb 27, 2024
Copy link
Contributor

@gspencergoog gspencergoog left a comment

Choose a reason for hiding this comment

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

32384589-a60f0e74-c078-11e7-9bc1-e5b5287aea9d

Excellent! Thanks for doing this.

@LongCatIsLooong LongCatIsLooong added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 27, 2024
@auto-submit auto-submit bot merged commit c353cb0 into flutter:master Feb 27, 2024
66 checks passed
@LongCatIsLooong LongCatIsLooong deleted the focus-cleanup branch February 27, 2024 21:48
@CaseyHillers CaseyHillers added the revert Autorevert PR (with "Reason for revert:" comment) label Feb 28, 2024
Copy link
Contributor

auto-submit bot commented Feb 28, 2024

A reason for requesting a revert of flutter/flutter/144207 could
not be found or the reason was not properly formatted. Begin a comment with 'Reason for revert:' to tell the bot why
this issue is being reverted.

@auto-submit auto-submit bot removed the revert Autorevert PR (with "Reason for revert:" comment) label Feb 28, 2024
@CaseyHillers
Copy link
Contributor

Reason for revert: b/327301206 - Breaking a customer test

@CaseyHillers CaseyHillers added the revert Autorevert PR (with "Reason for revert:" comment) label Feb 28, 2024
auto-submit bot pushed a commit that referenced this pull request Feb 28, 2024
@auto-submit auto-submit bot removed the revert Autorevert PR (with "Reason for revert:" comment) label Feb 28, 2024
auto-submit bot added a commit that referenced this pull request Feb 28, 2024
…cusable` (#144207)" (#144292)

Reverts #144207

Initiated by: CaseyHillers

Reason for reverting: b/327301206 - Breaking a customer test

Original PR Author: LongCatIsLooong

Reviewed By: {gspencergoog}

This change reverts the following previous change:
Original Description:
`FocusNode.canRequestFocus` was doing a double traversal if no ancestor disallows focus. The last for loop only has to reach as far as the enclosing scope.

Also this caches the `FocusNode.enclosingScope` since the getter access happens much more frequently than node reparenting.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 28, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 28, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 28, 2024
LongCatIsLooong added a commit to LongCatIsLooong/flutter that referenced this pull request Feb 28, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 28, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Feb 28, 2024
Manual roll Flutter from c30f998 to d00bfe8 (32 revisions)

Manual roll requested by [email protected]

flutter/flutter@c30f998...d00bfe8

2024-02-28 [email protected] Roll Flutter Engine from c9381fb8ef4c to 455c814fe5de (1 revision) (flutter/flutter#144340)
2024-02-28 [email protected] Roll Flutter Engine from 91898e397261 to c9381fb8ef4c (11 revisions) (flutter/flutter#144338)
2024-02-28 [email protected] Reland "Add FlutterMacOS.xcframework artifact (#143244)" (flutter/flutter#144275)
2024-02-28 [email protected] [flutter_tools] Catch rpc error in render frame with raster stats (flutter/flutter#144190)
2024-02-28 [email protected] ð��¡ï¸� Guard Flutter Android app by disallow task affinity by default (flutter/flutter#144018)
2024-02-28 [email protected] Manual roll Flutter Engine 8acc96d405d0 to 91898e397261 (flutter/flutter#144316)
2024-02-28 [email protected] Manual roll Flutter Engine 64a375de9c8f to 8acc96d405d0 (flutter/flutter#144296)
2024-02-28 [email protected] Manual roll Flutter Engine c79117b706e9 to 64a375de9c8f (flutter/flutter#144293)
2024-02-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (#144207)" (flutter/flutter#144292)
2024-02-28 [email protected] Manual roll Flutter Engine 2461280c38b7 to c79117b706e9 (flutter/flutter#144290)
2024-02-28 [email protected] Manual roll Flutter Engine 5e0d9ba35dd5 to 2461280c38b7 (flutter/flutter#144288)
2024-02-28 [email protected] Manual roll Flutter Engine fe7ea6d9c34f to 5e0d9ba35dd5 (flutter/flutter#144285)
2024-02-28 [email protected] Manual roll Flutter Engine 0bc21ea7bc92 to fe7ea6d9c34f (flutter/flutter#144283)
2024-02-28 [email protected] Use const route for notAnnounced. (flutter/flutter#144050)
2024-02-28 [email protected] Add `tabs_utils.dart` class (flutter/flutter#143937)
2024-02-28 [email protected] Remove `bottomAppBarColor` from `ThemeData` (flutter/flutter#144080)
2024-02-27 [email protected] fix: unexpected chinese punctuation (flutter/flutter#143678)
2024-02-27 [email protected] Clean up lint ignores (flutter/flutter#144229)
2024-02-27 [email protected] Reland [a11y] Add isEnabled semantics flag to  text field  (flutter/flutter#143601)
2024-02-27 [email protected] Remove deprecated `CupertinoContextMenu.previewBuilder` (flutter/flutter#143990)
2024-02-27 [email protected] [iOS] Fix naming in platform_view example (flutter/flutter#144247)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 (#144001)" (flutter/flutter#144262)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Add FlutterMacOS.xcframework artifact (#143244)" (flutter/flutter#144253)
2024-02-27 [email protected] [web] Make flutter web profile builds always keep wasm symbols (flutter/flutter#144130)
2024-02-27 [email protected] Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 (flutter/flutter#144001)
2024-02-27 [email protected] bind missing add icon in platform_view example (flutter/flutter#132028)
2024-02-27 [email protected] Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (flutter/flutter#144207)
2024-02-27 [email protected] Remove strut migration flag from `TextPainter` (flutter/flutter#144242)
2024-02-27 [email protected] Remove force Xcode debug workflow (flutter/flutter#144185)
2024-02-27 [email protected] Mark two other firebase targets as bringup: true (flutter/flutter#144234)
2024-02-27 [email protected] Add FlutterMacOS.xcframework artifact (flutter/flutter#143244)
2024-02-27 [email protected] Re-enable Impeller goldens blocking.  (flutter/flutter#144210)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

...
auto-submit bot pushed a commit that referenced this pull request Feb 29, 2024
…ble (#144207)" (#144330)

The [internal test failure](#144207 (comment)) was caused by `Focus.withExternalFocusNode` modifying the external node's attributes. The extra changes are in this commit:  e53d98b

CL with (almost) passing TGP: cl/611157582
LouiseHsu pushed a commit to LouiseHsu/packages that referenced this pull request Mar 7, 2024
)

Manual roll Flutter from c30f998 to d00bfe8 (32 revisions)

Manual roll requested by [email protected]

flutter/flutter@c30f998...d00bfe8

2024-02-28 [email protected] Roll Flutter Engine from c9381fb8ef4c to 455c814fe5de (1 revision) (flutter/flutter#144340)
2024-02-28 [email protected] Roll Flutter Engine from 91898e397261 to c9381fb8ef4c (11 revisions) (flutter/flutter#144338)
2024-02-28 [email protected] Reland "Add FlutterMacOS.xcframework artifact (#143244)" (flutter/flutter#144275)
2024-02-28 [email protected] [flutter_tools] Catch rpc error in render frame with raster stats (flutter/flutter#144190)
2024-02-28 [email protected] ð��¡ï¸� Guard Flutter Android app by disallow task affinity by default (flutter/flutter#144018)
2024-02-28 [email protected] Manual roll Flutter Engine 8acc96d405d0 to 91898e397261 (flutter/flutter#144316)
2024-02-28 [email protected] Manual roll Flutter Engine 64a375de9c8f to 8acc96d405d0 (flutter/flutter#144296)
2024-02-28 [email protected] Manual roll Flutter Engine c79117b706e9 to 64a375de9c8f (flutter/flutter#144293)
2024-02-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (#144207)" (flutter/flutter#144292)
2024-02-28 [email protected] Manual roll Flutter Engine 2461280c38b7 to c79117b706e9 (flutter/flutter#144290)
2024-02-28 [email protected] Manual roll Flutter Engine 5e0d9ba35dd5 to 2461280c38b7 (flutter/flutter#144288)
2024-02-28 [email protected] Manual roll Flutter Engine fe7ea6d9c34f to 5e0d9ba35dd5 (flutter/flutter#144285)
2024-02-28 [email protected] Manual roll Flutter Engine 0bc21ea7bc92 to fe7ea6d9c34f (flutter/flutter#144283)
2024-02-28 [email protected] Use const route for notAnnounced. (flutter/flutter#144050)
2024-02-28 [email protected] Add `tabs_utils.dart` class (flutter/flutter#143937)
2024-02-28 [email protected] Remove `bottomAppBarColor` from `ThemeData` (flutter/flutter#144080)
2024-02-27 [email protected] fix: unexpected chinese punctuation (flutter/flutter#143678)
2024-02-27 [email protected] Clean up lint ignores (flutter/flutter#144229)
2024-02-27 [email protected] Reland [a11y] Add isEnabled semantics flag to  text field  (flutter/flutter#143601)
2024-02-27 [email protected] Remove deprecated `CupertinoContextMenu.previewBuilder` (flutter/flutter#143990)
2024-02-27 [email protected] [iOS] Fix naming in platform_view example (flutter/flutter#144247)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 (#144001)" (flutter/flutter#144262)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Add FlutterMacOS.xcframework artifact (#143244)" (flutter/flutter#144253)
2024-02-27 [email protected] [web] Make flutter web profile builds always keep wasm symbols (flutter/flutter#144130)
2024-02-27 [email protected] Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 (flutter/flutter#144001)
2024-02-27 [email protected] bind missing add icon in platform_view example (flutter/flutter#132028)
2024-02-27 [email protected] Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (flutter/flutter#144207)
2024-02-27 [email protected] Remove strut migration flag from `TextPainter` (flutter/flutter#144242)
2024-02-27 [email protected] Remove force Xcode debug workflow (flutter/flutter#144185)
2024-02-27 [email protected] Mark two other firebase targets as bringup: true (flutter/flutter#144234)
2024-02-27 [email protected] Add FlutterMacOS.xcframework artifact (flutter/flutter#143244)
2024-02-27 [email protected] Re-enable Impeller goldens blocking.  (flutter/flutter#144210)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 14, 2024
arc-yong pushed a commit to Arctuition/packages-arc that referenced this pull request Jun 14, 2024
)

Manual roll Flutter from c30f998 to d00bfe8 (32 revisions)

Manual roll requested by [email protected]

flutter/flutter@c30f998...d00bfe8

2024-02-28 [email protected] Roll Flutter Engine from c9381fb8ef4c to 455c814fe5de (1 revision) (flutter/flutter#144340)
2024-02-28 [email protected] Roll Flutter Engine from 91898e397261 to c9381fb8ef4c (11 revisions) (flutter/flutter#144338)
2024-02-28 [email protected] Reland "Add FlutterMacOS.xcframework artifact (#143244)" (flutter/flutter#144275)
2024-02-28 [email protected] [flutter_tools] Catch rpc error in render frame with raster stats (flutter/flutter#144190)
2024-02-28 [email protected] ð��¡ï¸� Guard Flutter Android app by disallow task affinity by default (flutter/flutter#144018)
2024-02-28 [email protected] Manual roll Flutter Engine 8acc96d405d0 to 91898e397261 (flutter/flutter#144316)
2024-02-28 [email protected] Manual roll Flutter Engine 64a375de9c8f to 8acc96d405d0 (flutter/flutter#144296)
2024-02-28 [email protected] Manual roll Flutter Engine c79117b706e9 to 64a375de9c8f (flutter/flutter#144293)
2024-02-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (#144207)" (flutter/flutter#144292)
2024-02-28 [email protected] Manual roll Flutter Engine 2461280c38b7 to c79117b706e9 (flutter/flutter#144290)
2024-02-28 [email protected] Manual roll Flutter Engine 5e0d9ba35dd5 to 2461280c38b7 (flutter/flutter#144288)
2024-02-28 [email protected] Manual roll Flutter Engine fe7ea6d9c34f to 5e0d9ba35dd5 (flutter/flutter#144285)
2024-02-28 [email protected] Manual roll Flutter Engine 0bc21ea7bc92 to fe7ea6d9c34f (flutter/flutter#144283)
2024-02-28 [email protected] Use const route for notAnnounced. (flutter/flutter#144050)
2024-02-28 [email protected] Add `tabs_utils.dart` class (flutter/flutter#143937)
2024-02-28 [email protected] Remove `bottomAppBarColor` from `ThemeData` (flutter/flutter#144080)
2024-02-27 [email protected] fix: unexpected chinese punctuation (flutter/flutter#143678)
2024-02-27 [email protected] Clean up lint ignores (flutter/flutter#144229)
2024-02-27 [email protected] Reland [a11y] Add isEnabled semantics flag to  text field  (flutter/flutter#143601)
2024-02-27 [email protected] Remove deprecated `CupertinoContextMenu.previewBuilder` (flutter/flutter#143990)
2024-02-27 [email protected] [iOS] Fix naming in platform_view example (flutter/flutter#144247)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 (#144001)" (flutter/flutter#144262)
2024-02-27 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Add FlutterMacOS.xcframework artifact (#143244)" (flutter/flutter#144253)
2024-02-27 [email protected] [web] Make flutter web profile builds always keep wasm symbols (flutter/flutter#144130)
2024-02-27 [email protected] Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 (flutter/flutter#144001)
2024-02-27 [email protected] bind missing add icon in platform_view example (flutter/flutter#132028)
2024-02-27 [email protected] Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (flutter/flutter#144207)
2024-02-27 [email protected] Remove strut migration flag from `TextPainter` (flutter/flutter#144242)
2024-02-27 [email protected] Remove force Xcode debug workflow (flutter/flutter#144185)
2024-02-27 [email protected] Mark two other firebase targets as bringup: true (flutter/flutter#144234)
2024-02-27 [email protected] Add FlutterMacOS.xcframework artifact (flutter/flutter#143244)
2024-02-27 [email protected] Re-enable Impeller goldens blocking.  (flutter/flutter#144210)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App f: focus Focus traversal, gaining or losing focus framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants