Repository navigation
✨ Keep app interaction local and harden browser contexts - #29
Merged
Merged
Conversation
Robdel12
force-pushed
the
rd/native-mobile-inputs
branch
6 times, most recently
from
November 11, 2026 03:34
ec9ce18 to
a473f67
Compare
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
force-pushed
the
rd/native-mobile-inputs
branch
2 times, most recently
from
November 11, 2026 06:30
1181067 to
8376b5b
Compare
Robdel12
force-pushed
the
rd/native-mobile-inputs
branch
2 times, most recently
from
November 11, 2026 07:47
8f3d1c6 to
479cba3
Compare
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
force-pushed
the
rd/native-mobile-inputs
branch
from
November 11, 2026 08:06
479cba3 to
83eda78
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.