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',
|
||||
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(
|
||||
|
|
|
|||
Loading…
Reference in New Issue