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.

Comment thread engine/src/flutter/ci/builders/linux_web_engine_test.json Outdated
Comment thread engine/src/flutter/lib/web_ui/dev/generate_builder_json.dart Outdated
@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
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 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

4 participants