Skip to content

Conversation

@flutteractionsbot
Copy link

@flutteractionsbot flutteractionsbot commented Feb 26, 2025

This pull request is created by automatic cherry pick workflow
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?

#150023

Changelog Description:

Explain this cherry pick in one line that is accessible to most Flutter developers. See best practices for examples

Improve safaridriver launch process in Flutter's CI testing.

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)

Improve stability of Flutter's macOS web tests in CI. No impact to customers, only release team.

Workaround:

Is there a workaround for this issue?

Rerun.

Risk:

What is the risk level of this cherry-pick?

  • Low
  • Medium
  • High

Test Coverage:

Are you confident that your fix is well-tested by automated tests?

  • Yes
  • No

Validation Steps:

What are the steps to validate that this fix works?

N/A

Improve safaridriver launch sequence as follows:

- Fix retry: the previous version would call `_startDriverProcess`
recursively from within a listener to the stderr output. But by then the
outer `_startDriverProcess` call would have completed its future, so the
retry mechanism would kick in while tests are already running.
- Wait for `safaridriver` server process to start listening and
responding to WebDriver commands (using `/status` as the smoke test).
- Smoke-test the driver session by attempting to list all windows
(`WebDriver.windows`).
- When `safaridriver` fails to pass all of the above checks, both close
the session and kill the `safaridriver` process. Killing the process
alone leaves Safari windows open. Closing the session alone leaves
`safaridriver` processes open.
- When tests are finished use `quit()` instead of `window.close()`,
because the latter does not close the session.
@flutteractionsbot flutteractionsbot added the cp: review Cherry-picks in the review queue label Feb 26, 2025
@flutteractionsbot
Copy link
Author

@vashworth please fill out the PR description above, afterwards the release team will review this request.

@github-actions github-actions bot added engine flutter/engine related. See also e: labels. platform-web Web applications specifically labels Feb 26, 2025
Copy link
Contributor

@eyebrowsoffire eyebrowsoffire left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

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

LGTM 👍 Thanks @eyebrowsoffire for the review.

@justinmc justinmc added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 27, 2025
@auto-submit auto-submit bot merged commit ea7fb0a into flutter:flutter-3.29-candidate.0 Feb 27, 2025
156 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 6, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 7, 2025
@reidbaker reidbaker mentioned this pull request Apr 4, 2025
9 tasks
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 cp: review Cherry-picks in the review queue engine flutter/engine related. See also e: labels. platform-web Web applications specifically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants