Skip to content

✨ Keep app interaction local and harden browser contexts - #29

Merged
Robdel12 merged 2 commits into
mainfrom
rd/native-mobile-inputs
Nov 11, 2026
Merged

Robdel12 merged 2 commits into
mainfrom
rd/native-mobile-inputs

Conversation

@Robdel12

@Robdel12 Robdel12 commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

Why

Keep app interaction in the browser through Interactor. The product ports had picked up driver-backed typing, clicks, taps and scrolling that duplicated local actions. This keeps the managed input surface limited to real keys for browser defaults and pointer movement for CSS hover.

Approach

Remove the overlapping actions from Interactor, app.native, the wire protocol, provider, types and capability flags. Scrolling composes through custom Interactor actions and real DOM scrolling. URL-only tests exercise those actions with native capabilities unavailable.

The ports exposed cross-document events/focus and contenteditable typing bugs in Interactor. Fix those upstream in Interactor #905, including paragraphs, caret placement and empty-line placeholders. Dyno pins the tested upstream commit; land and release that fix before moving back to a registry version. Git consumers need its standard prepare build enabled.

Managed contexts retain fractional pixel ratios, touch/viewport settings and user agents. Color scheme and external request blocking reset between tests. App requests preserve browser credentials, fill survives replaced controls, and startup cancellation preserves the run deadline.

Chromium keeps Playwright's default headless shell. Full Chromium on this Mac repeats content after 16,384 physical rows; affected macOS headed/branded/custom builds fail clearly above that limit. Real pixel checks cover long pages and fractional dimensions.

Project setup, fixtures and preparation now have a separate CI suite after the macOS Firefox execution job exhausted its five-minute budget. All 46 test files and every engine/OS combination remain covered; each job retains the same hard cap.

Evidence

The framework has 239 passing checks and two existing browser-specific skips, including installed-consumer types and URL-only interaction. All 17 WebKit capture checks and 20 supported native checks pass on Linux and macOS. Fractional bounds retain raw renderer pixels, including Linux's transparent partial row and anti-aliased corner. All seven documentation checks pass. The real Vizzly integration passes both workflows. Interactor has 136 passing browser tests and passing package/type builds.

Cyclonic retains 97 passing cases, three existing layout skips and 116 captures. BackChannel retains 31 workflows and 49 captures after replacing the overlapping actions. Visual baseline review remains open; no baselines were approved or replaced.

@Robdel12
Robdel12 force-pushed the rd/native-mobile-inputs branch 6 times, most recently from ec9ce18 to a473f67 Compare November 11, 2026 03:34
Preserve trusted touch, wheel, pointer and keyboard behavior through the existing managed browser boundary. Forward mobile context settings and honor Fetch credential omission so API fixtures do not change the browser session.
@Robdel12
Robdel12 force-pushed the rd/native-mobile-inputs branch 2 times, most recently from 1181067 to 8376b5b Compare November 11, 2026 06:30
@Robdel12 Robdel12 changed the title ✨ Add native input for real app workflows ✨ Keep app interaction local and harden browser contexts Nov 11, 2026
@Robdel12
Robdel12 force-pushed the rd/native-mobile-inputs branch 2 times, most recently from 8f3d1c6 to 479cba3 Compare November 11, 2026 07:47
Remove duplicate driver-backed typing, clicks, taps and scrolling from the public API and provider. Keep browser-default input composable through Interactor and pin the verified upstream editable/document fixes.
@Robdel12
Robdel12 force-pushed the rd/native-mobile-inputs branch from 479cba3 to 83eda78 Compare November 11, 2026 08:06
@Robdel12
Robdel12 merged commit b07d82a into main Nov 11, 2026
42 checks passed
@Robdel12
Robdel12 deleted the rd/native-mobile-inputs branch November 11, 2026 08:17
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