mirror of https://github.com/garrytan/gstack.git
feat(browse): allowlist Input.dispatchMouseEvent for trusted mouse gestures
Some widgets only open on a genuine OS-level mouse event and ignore all JS/synthetic clicks (verified on Personio's Gefahrtarifstelle "Monat auswählen" dropdown, 2026-07-03). Add Input.dispatchMouseEvent to CDP_ALLOWLIST (scope: tab, output: trusted) so `$B cdp` can force a real click. Delivers input to the focused tab only; returns just an ack (no page content), so no exfil/injection vector. cdp-allowlist.test.ts: 6 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
dc6252d1df
commit
930fc54fb7
|
|
@ -199,6 +199,14 @@ export const CDP_ALLOWLIST: ReadonlyArray<CdpAllowEntry> = Object.freeze([
|
||||||
output: 'untrusted',
|
output: 'untrusted',
|
||||||
justification: 'Inspect properties of an existing remote object. Read-only; output may contain page data.',
|
justification: 'Inspect properties of an existing remote object. Read-only; output may contain page data.',
|
||||||
},
|
},
|
||||||
|
// ─── Input (synthetic trusted user gestures) ───────────────
|
||||||
|
{
|
||||||
|
domain: 'Input',
|
||||||
|
method: 'dispatchMouseEvent',
|
||||||
|
scope: 'tab',
|
||||||
|
output: 'trusted',
|
||||||
|
justification: 'Trusted mouse gesture for widgets that ignore JS clicks (e.g. Personio Gefahrtarifstelle "Monat auswählen" dropdown). Focused tab only; returns an ack, no page content.',
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const CDP_ALLOWLIST_INDEX: Map<string, CdpAllowEntry> = new Map(
|
const CDP_ALLOWLIST_INDEX: Map<string, CdpAllowEntry> = new Map(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue