fix: normalize physical iOS landscape taps - #1520
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks: no changes in the largest emitted chunks. |
|
Reviewed exact head Changes requested — [P1] preserve the established XCTest fallback for synthesized selector taps. The new selector branch calls The orientation normalization and the physical-device landscape-left/right evidence otherwise address #1511’s motivating failure. Exact-head static, coverage, integration, build, and release checks are green; three smoke jobs are still running. |
|
Re-reviewed exact head Not labeling yet because iOS Smoke remains red. Its failure is the unrelated delayed-alert Residual risk: no separately authorized cross-vendor review was performed. |
|
Summary
Fixes physical iOS taps in landscape (Closes #1511).
On physical iOS devices,
XCUIScreen.main.screenshot()can retain portrait dimensions after the interface rotates while accessibility frames use logical landscape dimensions. Synthesized touch mapping therefore delivered taps in the wrong coordinate space. Selector taps also bypassed the synthesized touch path.This change normalizes the synthesized reference frame from the active app orientation in both portrait and landscape, passes the active app through all synthesized gesture context builders, and routes every touch iOS selector tap through the same synthesized coordinate path as explicit taps. If private synthesis is unavailable, selector taps preserve the established XCTest activation/coordinate fallback. Landscape geometry tests, selector fallback coverage, and selector command-contract coverage were added.
Validation
testOrientedSynthesizedScreenshotReferenceFrameUsesLandscapeLogicalDimensionsandtestSelectorTapFallsBackToXCTestCoordinateWhenPrivateSynthesisFails.