Thanks to visit codestin.com
Credit goes to github.com

Skip to content

feat(xctest): disable quiescence waits by default - #10

Merged
Timo972 merged 1 commit into
masterfrom
timo/quiescence-off-by-default
Jun 11, 2026
Merged

Timo972 merged 1 commit into
masterfrom
timo/quiescence-off-by-default

Conversation

@Timo972

@Timo972 Timo972 commented Jun 11, 2026

Copy link
Copy Markdown

Summary

  • Makes the fork fast by default: fb_shouldWaitForQuiescence now defaults to NO in both places that previously defaulted to YES — the process-level fallback in XCUIApplicationProcess+FBQuiescence.m (covers session-less usage / fb_activeApplication) and the missing-capability branch in FBSessionCommands.launchApplication:. This removes the pre/post-gesture idle waits that benchmarked as the dominant latency (identical 0.8 s drag: ~1.2 s vs 2.8–2.9 s).
  • waitForIdleTimeout stays 10 s and animationCoolOffTimeout stays 2 s: they govern the waits whenever quiescence is enabled (via the shouldWaitForQuiescence capability) and remain adjustable through /appium/settings. The forced post-W3C-actions stability wait (fb_waitUntilStableWithTimeout) is unaffected by the new default.
  • Adds testQuiescenceWaitsAreDisabledByDefault (TDD'd: red on upstream default, green after).

Test Plan

  • New default-assertion test passes; full XCUIApplicationHelperTests, FBW3CTouchActionsIntegrationTests, and FBMobilerunActionsIntegrationTests classes pass (iPhone 17 Pro / iOS 26.4 sim).
  • Live benchmark on a running WDA: default session (no caps/settings) 1.2–1.5 s per gesture; session with shouldWaitForQuiescence: true restores the waits (2.6–3.2 s).
  • Watch for stability regressions in flows that implicitly relied on launch-time quiescence on real devices.

🤖 Generated with Claude Code

Benchmarks on the pressAndDragWithVelocity endpoint showed the idle
waits are the dominant gesture latency: an identical 0.8s drag takes
1.2s with quiescence off versus 2.8-2.9s with upstream defaults.

Flip the two places that default the flag to YES: the process-level
fallback for unconfigured apps (covers session-less usage and
fb_activeApplication) and the missing-capability branch when a session
launches an app. Sessions opt back in per app via the existing
shouldWaitForQuiescence capability, in which case waitForIdleTimeout
(10s) and animationCoolOffTimeout (2s) keep governing the waits, both
still adjustable through /appium/settings. The forced stability wait in
fb_waitUntilStableWithTimeout (post-W3C-actions cool-off) is unaffected.

Measured: default session 1.2-1.5s per gesture with zero configuration;
with shouldWaitForQuiescence=true the waits return (2.6-3.2s).

Co-Authored-By: Claude Fable 5 <[email protected]>
@Timo972
Timo972 merged commit 8102597 into master Jun 11, 2026
@Timo972
Timo972 deleted the timo/quiescence-off-by-default branch June 11, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant