Skip to content

feat(kitesurf): test against a local open-source Kitesurf engine - #5805

Open
DavertMik wants to merge 4 commits into
4.xfrom
feat/kitesurf-local-engine
Open

DavertMik wants to merge 4 commits into
4.xfrom
feat/kitesurf-local-engine

Conversation

@DavertMik

Copy link
Copy Markdown
Contributor

Kitesurf is now open source and runs locally with wrangler dev, so it can join regression testing like Obscura, Lightpanda and Moli.

Changes

  • Helper: setting endpoint connects directly to an engine you run (local http://127.0.0.1:8787 or self-deployed, with optional headers for Cloudflare Access). Without endpoint it uses Cloudflare Browser Run as before.
  • Helper spec: runs the full shared webapi suite against a local engine; config tests; cloud smoke test only with CF_ACCOUNT_ID/CF_API_TOKEN. New test:unit:webbapi:kitesurf script.
  • Acceptance: codecept.Kitesurf.js, @Kitesurf added beside every @Moli tag.
  • CI: kitesurf.yml checks out cloudflare/kitesurf@2026.11.9, builds it with Bazel (no release binary exists), caches the staged build output keyed by version, starts wrangler dev, and runs helper + acceptance tests. First run pays the cold build.
  • Docs: Kitesurf section in alternative-browsers.md covers local, self-deployed and cloud use; regenerated docs/helpers/Kitesurf.md.

Engine gaps (skipped in webapi.js, verified locally)

  • attachFile: no DOM.setFileInputFiles in the engine
  • Clipboard: isSecureContext is hardcoded to false
  • ACE: hit testing does not clip ACE's gutter layer, so the submit button is unclickable
  • Quill (I.import is not a function), Trix (custom element never upgraded), TinyMCE on a pre-filled element (init never fires)
  • Base UI radio group keeps the previous radio checked (to be re-verified)

🤖 Generated with Claude Code

DavertMik and others added 4 commits November 14, 2026 23:37
Kitesurf is now open source and runs locally with wrangler dev. The helper
connects to any engine set in `endpoint` (local or self-deployed, with
optional Access headers) and only uses Cloudflare Browser Run without it.

- run the shared webapi suite against a local engine, skip verified engine gaps
- tag acceptance scenarios with @kitesurf and add codecept.Kitesurf.js
- add kitesurf.yml: build the pinned engine with Bazel, cache the build output
- document the local engine and its limitations

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gine

# Conflicts:
#	docs/helpers/Kitesurf.md
run-bench.mjs now covers Playwright, Obscura, Lightpanda, Moli and
Kitesurf (BENCH_ENGINES picks a subset) and reports each against
Playwright. examples/bench/README.md records how to run it, the
2026-11-15 timings, raw CDP navigation costs and CI feature coverage.
Docs note Kitesurf's ~200 ms per-navigation cost.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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