Skip to content

Enable Safari dart2wasm/skwasm CI suites on macOS 26.6 - #193681

Merged
auto-submit[bot] merged 5 commits into
flutter:masterfrom
kevmoo:safari-skwasm-ci-suites
Oct 5, 2026
Merged

auto-submit[bot] merged 5 commits into
flutter:masterfrom
kevmoo:safari-skwasm-ci-suites

Conversation

@kevmoo

@kevmoo kevmoo commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

This switches the Safari Web engine CI suites (Mac run safari suites) to run on Mac-26.6 LUCI bots (matching the Mac-26.6 dimension convention in #193317) and enables the 4 WasmGC / Skwasm Safari suites now that Safari 26 (with Wasm js-string builtins) ships on macOS 26.6.2 bots (#192559 / #192572):

  • safari-dart2wasm-canvaskit-engine
  • safari-dart2wasm-skwasm-ui
  • safari-coi-dart2wasm-skwasm-ui
  • safari-coi-dart2wasm-skwasm-skwasm

Safari 26 & WebDriver Focus Test Updates

Running Mac run safari suites on Mac-26.6 exposed two Safari 26 CSS outline serialization differences and one test that depended on Safari.app holding macOS WindowServer foreground focus under safaridriver:

  1. text_editing_test.dart (text editing styles invisible element): Safari 26 serializes inline outline: none on input.style.outline as 'medium' (matching input.style.border immediately below it).
  2. view_embedder/style_manager_test.dart (attachGlobalStyles hides the outline when focused): Safari 26 serializes getComputedStyle(element).outline in canonical CSSOM order ('0px none rgb(0, 0, 0)' instead of 'rgb(0, 0, 0) none 0px'). Additionally, in WebKit :focus only matches when domDocument.hasFocus() is true; when Safari.app is not the frontmost macOS WindowServer app (!domDocument.hasFocus()), WebKit returns the unfocused initial outline ('3px none rgb(0, 0, 0)').
  3. platform_dispatcher/view_focus_binding.dart & view_focus_binding_test.dart (works even if focus is changed in the middle of a blur call): Use _documentHasFocus (introduced in Reland "[web] Keep the keyboard up during an iOS caret drag" #190942 for debugViewFocusDocumentHasFocusOverride) in ViewFocusBinding._handleFocusout (wasFocusInvoked) and set debugViewFocusDocumentHasFocusOverride = true in the test so it does not flake when the safaridriver window is unfocused in WindowServer.

Fixes #193833
Fixes #193834
Part of #192559
Part of #192572

This switches the Safari Web engine CI suites to run on the Mac-26.6.2 LUCI bots, and enables the WasmGC and skwasm Safari suites now that Safari 26.2+ is available on these bots.

Addresses #5XBX3 and #JN3PH
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Oct 1, 2026
@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request enables Safari Dart2Wasm test suites in CI by updating felt_config.yaml and linux_web_engine_test.json. It also attempts to update the macOS runner version in linux_web_engine_test.json and generate_builder_json.dart. However, the reviewer identified that the specified version Mac-26.6.2 is likely a typo for Mac-15.2, which would cause LUCI to fail to find matching bots.

@Piinks Piinks added platform-web Web applications specifically team-web Owned by Web platform team labels Oct 1, 2026
@github-actions github-actions Bot added the engine flutter/engine related. See also e: labels. label Oct 1, 2026
Use 2-part Major.Minor `Mac-26.6` in `generate_builder_json.dart` and `linux_web_engine_test.json` to match `.ci.yaml` and `engine/src/flutter/ci/builders/*.json` from flutter#193317.
@kevmoo kevmoo changed the title Enable Safari dart2wasm/skwasm CI suites on macOS 26.6.2 Enable Safari dart2wasm/skwasm CI suites on macOS 26.6 Oct 1, 2026
kevmoo added 2 commits October 4, 2026 03:53
Safari 26 (macOS 26.6) serializes CSS `outline: none` on inline styles as
`'medium'` (matching `input.style.border`) in `text_editing_test.dart`, and
serializes `getComputedStyle(element).outline` in canonical CSSOM order
(`'0px none rgb(0, 0, 0)'`) in `style_manager_test.dart`.
@github-actions github-actions Bot added the a: text input Entering text in a text field or keyboard related problems label Oct 4, 2026
…focus_binding tests

When `safaridriver` runs on a Mac Swarming bot where `Safari.app` is not the
frontmost WindowServer application (`!domDocument.hasFocus()`):
- WebKit's `:focus` pseudo-class does not match in `getComputedStyle`, returning
  the initial unfocused outline `'3px none rgb(0, 0, 0)'` in `style_manager_test.dart`.
- `ViewFocusBinding._handleFocusout` checked raw `domDocument.hasFocus()` instead
  of `_documentHasFocus` (`debugViewFocusDocumentHasFocusOverride`).

@vashworth vashworth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

CI changes LGTM

@kevmoo kevmoo added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 5, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Oct 5, 2026
Merged via the queue into flutter:master with commit d7fe609 Oct 5, 2026
24 of 25 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 5, 2026
@kevmoo
kevmoo deleted the safari-skwasm-ci-suites branch October 6, 2026 19:29
@flutteractionsbot

Copy link
Copy Markdown
Contributor

Failed to create CP due to merge conflicts.
You will need to create the PR manually. See the cherrypick wiki for more info.

auto-submit Bot pushed a commit that referenced this pull request Oct 27, 2026
### Issue Link:
What is the link to the issue this cherry-pick is addressing?

#193833, #193834

### 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 of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

CI test-only change to migrate tests to macOS 26. This is a partial cherry-pick of #193681, only including the parts required for macOS 26.

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

N/A - CI test-only change

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

Rerun test

### 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 in CI
suryaKommana2662 pushed a commit to suryaKommana2662/flutter that referenced this pull request Oct 29, 2026
This switches the Safari Web engine CI suites (`Mac run safari suites`)
to run on `Mac-26.6` LUCI bots (matching the `Mac-26.6` dimension
convention in flutter#193317) and enables the 4 WasmGC / Skwasm Safari suites
now that Safari 26 (with Wasm `js-string` builtins) ships on macOS
26.6.2 bots (flutter#192559 / flutter#192572):

- `safari-dart2wasm-canvaskit-engine`
- `safari-dart2wasm-skwasm-ui`
- `safari-coi-dart2wasm-skwasm-ui`
- `safari-coi-dart2wasm-skwasm-skwasm`

### Safari 26 & WebDriver Focus Test Updates

Running `Mac run safari suites` on `Mac-26.6` exposed two Safari 26 CSS
`outline` serialization differences and one test that depended on
`Safari.app` holding macOS WindowServer foreground focus under
`safaridriver`:

1. **`text_editing_test.dart` (`text editing styles invisible
element`)**: Safari 26 serializes inline `outline: none` on
`input.style.outline` as `'medium'` (matching `input.style.border`
immediately below it).
2. **`view_embedder/style_manager_test.dart` (`attachGlobalStyles hides
the outline when focused`)**: Safari 26 serializes
`getComputedStyle(element).outline` in canonical CSSOM order (`'0px none
rgb(0, 0, 0)'` instead of `'rgb(0, 0, 0) none 0px'`). Additionally, in
WebKit `:focus` only matches when `domDocument.hasFocus()` is `true`;
when `Safari.app` is not the frontmost macOS WindowServer app
(`!domDocument.hasFocus()`), WebKit returns the unfocused initial
outline (`'3px none rgb(0, 0, 0)'`).
3. **`platform_dispatcher/view_focus_binding.dart` &
`view_focus_binding_test.dart` (`works even if focus is changed in the
middle of a blur call`)**: Use `_documentHasFocus` (introduced in
flutter#190942 for `debugViewFocusDocumentHasFocusOverride`) in
`ViewFocusBinding._handleFocusout` (`wasFocusInvoked`) and set
`debugViewFocusDocumentHasFocusOverride = true` in the test so it does
not flake when the `safaridriver` window is unfocused in WindowServer.

Fixes flutter#193833
Fixes flutter#193834
Part of flutter#192559
Part of flutter#192572
jose-pr pushed a commit to Boriken-Dev/flutter that referenced this pull request Nov 8, 2026
### Issue Link:
What is the link to the issue this cherry-pick is addressing?

flutter/flutter#193833, flutter/flutter#193834

### 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 of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

CI test-only change to migrate tests to macOS 26. This is a partial cherry-pick of flutter/flutter#193681, only including the parts required for macOS 26.

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

N/A - CI test-only change

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

Rerun test

### 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 in CI
jose-pr pushed a commit to Boriken-Dev/flutter that referenced this pull request Nov 8, 2026
### Issue Link:
What is the link to the issue this cherry-pick is addressing?

flutter/flutter#193833, flutter/flutter#193834

### 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 of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

CI test-only change to migrate tests to macOS 26. This is a partial cherry-pick of flutter/flutter#193681, only including the parts required for macOS 26.

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

N/A - CI test-only change

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

Rerun test

### 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 in CI
jose-pr pushed a commit to Boriken-Dev/flutter that referenced this pull request Nov 9, 2026
### Issue Link:
What is the link to the issue this cherry-pick is addressing?

flutter/flutter#193833, flutter/flutter#193834

### 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 of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

CI test-only change to migrate tests to macOS 26. This is a partial cherry-pick of flutter/flutter#193681, only including the parts required for macOS 26.

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

N/A - CI test-only change

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

Rerun test

### 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 in CI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: text input Entering text in a text field or keyboard related problems CICD Run CI/CD cp: stable cherry pick this pull request to stable release candidate branch engine flutter/engine related. See also e: labels. f: focus Focus traversal, gaining or losing focus platform-web Web applications specifically team-web Owned by Web platform team

Projects

None yet

5 participants