Skip to content
This repository has been archived by the owner on Feb 25, 2025. It is now read-only.

Add Windows AutomationId #53476

Closed
wants to merge 16 commits into from

Conversation

nicerloop
Copy link

Expose Semantics.identifier as Windows AutomationId to ease application automation.

see flutter/flutter#148763

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] and the [C++, Objective-C, Java style guides].
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the [CLA].
  • All existing and new tests are passing.

itsjustkevin and others added 13 commits April 2, 2024 23:11
…utter#51851)

# Flutter beta 3.22.0-0.0.pre Engine

## Scheduled Cherrypicks

- Roll dart revision: dart-lang/sdk@9bf485fe0
… the … (flutter#51911)

b/332811967

�underlying NDK API is unavailable (flutter#51839)
…ng Impeller. (flutter#51849) (flutter#51914)

Part of flutter/flutter#144439

This does two things:

* Logs a warning when the embedder requests a non-Impeller preference when creating a shell.
* Makes the iOS embedder request a warning be logged when Impeller is not used.

I decided to put the warning logs in the shell so that as we get more opinionated about Impeller on other platforms, those platforms can just flip a flag with common log origin.
)

This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/wiki/Flutter-Cherrypick-Process#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

flutter/flutter#146362

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/wiki/Hotfix-Documentation-Best-Practices) for examples

Fixes Impeller crash when rendering zero area filled shapes.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Native crash in Impeller renderer.

### Workaround:
Is there a workaround for this issue?

No

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Run the included test
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/wiki/Flutter-Cherrypick-Process#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

Test failures in Impeller migration PR: flutter/packages#6461

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/wiki/Hotfix-Documentation-Best-Practices) for examples

Ensure that Android platform view updates are posted on correct thread when platform view is created on background handler.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Migration to Impeller plugin APIs is blocked.

### Workaround:
Is there a workaround for this issue?

Disable impeller

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  However the tests are in flutter/packages and not flutter/engine.

### Validation Steps:
What are the steps to validate that this fix works?

Run the unit tests on the linked PR in flutter/packages
…utter#52225)

# Flutter beta 3.22.0-0.2.pre Engine

## Scheduled Cherrypicks

- Roll dart revision: dart-lang/sdk@58b6ebc2c
…utter#52328)

# Flutter beta 3.22.0-0.3.pre Engine

## Scheduled Cherrypicks

- Roll dart revision: dart-lang/sdk@c11d54ec3
- **Replace LinkedLists that are used as a queue in android FlutterRenderer with ArrayDeques (flutter#51494)**
- **Workaround HardwareRenderer breakage in Android 14 (flutter#52370)**
Fixes flutter/flutter#147644

Includes flutter#51494 to avoid merge conflicts and have a cleaner merge.
…52625)

# Flutter stable 3.22.0 Engine

## Scheduled Cherrypicks

- Roll dart revision: dart-lang/sdk@a210745c4
…#52904)

Fixes flutter/flutter#142659

can be turned on via --enable-vulkan-validation cmd line flag.

Cherry pick request to unbreak android emulators.
…52969)

# Flutter stable 3.22.1 Engine

## Scheduled Cherrypicks

- Roll dart revision: dart-lang/sdk@b0e7f171c
Copy link

google-cla bot commented Jun 19, 2024

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@cbracken
Copy link
Member

Hi @nicerloop; a few points.

  1. It looks like you're missing a CLA. Once you've completed that step, please let us know.
  2. Could you rebase this to tip-of tree please, so that it just has your changes? It looks like there are a lot of cherry-pick/etc. commits in your patch.
  3. This appears to be causing some tests to segfault. Please fix the test failures.

Once these items are addressed, please let us know.

@@ -806,12 +806,9 @@ LRESULT FlutterWindow::OnGetObject(UINT const message,
}

gfx::NativeViewAccessible root_view = GetNativeViewAccessible();
// TODO(schectman): UIA is currently disabled by default.
// https://github.com/flutter/flutter/issues/114547
Copy link
Member

Choose a reason for hiding this comment

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

Unfortunately, Flutter's UIA support isn't ready to be enabled. We won't be able to land an approach that enables UIA by default.

Copy link
Author

Choose a reason for hiding this comment

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

With UIA disabled, automationId is not exposed. What can be done for UIA enablement ? Could it be optionally enabled when building an application ?

Copy link
Author

Choose a reason for hiding this comment

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

Found #37754, which indicates missing parts relate to text edit carat navigation narration. Could UIA be enabled during application build, opposed to current engine build ?

@yaakovschectman
Copy link
Contributor

From Android triage: When the tests pass and there are no merge conflicts, we will review this.

@yaakovschectman yaakovschectman requested a review from a team June 27, 2024 18:28
@nicerloop
Copy link
Author

Hi @nicerloop; a few points.

  1. It looks like you're missing a CLA. Once you've completed that step, please let us know.
  2. Could you rebase this to tip-of tree please, so that it just has your changes? It looks like there are a lot of cherry-pick/etc. commits in your patch.
  3. This appears to be causing some tests to segfault. Please fix the test failures.

Once these items are addressed, please let us know.

see #53729.

@cbracken
Copy link
Member

cbracken commented Jul 9, 2024

I'll close this since, as you note, it was replaced by #53729.

@cbracken cbracken closed this Jul 9, 2024
@nicerloop nicerloop deleted the windows-automationid-3.22.1 branch September 12, 2024 05:59
@nicerloop nicerloop restored the windows-automationid-3.22.1 branch September 12, 2024 05:59
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.