trycua / trycua/cua

cua-driver/Windows: background Chrome click can miss or blur the foreground sentinel

Open
#2,201 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug rust
Dominant language
HTML
Stars
24.2k
Forks
1.7k
Avg merge
22h 29m
Merged PRs (30d)
190

Description

Problem

On a hosted Windows Server 2025 interactive desktop, a real Chrome target does not produce a deterministic safe result for background coordinate clicks on current main (3cadb5f82e7d2ed071a2082764276ec872a52135).

Observed outcomes across repeated runs include:

  • a background scene click reaching the target once;
  • point and scene clicks missing the target;
  • the foreground sentinel recording a blur during the action.

The last outcome is the most serious: a background request must either deliver without disturbing the foreground desktop or return a structured refusal before acting.

Our canonical Windows matrix proves the stricter target-state, focus, z-order, cursor, and leaked-input oracles on repo-built Electron, Tauri, WPF, WinUI 3, and WebView2 fixtures. It does not currently prove the same route against standalone Chrome, so the surface-specific regression can escape that matrix.

Reproduction shape

  1. Launch Chrome with a deterministic page that journals button state.
  2. Fully occlude Chrome with a foreground sentinel that records focus, keyboard, pointer, and wheel events.
  3. Call click with Chrome's pid, window_id, window-local x/y, and delivery_mode:"background".
  4. Assert target state and all foreground side-effect oracles.
  5. Repeat with fresh processes and both point- and scene-addressed routes.

Acceptance criteria

  • The same action deterministically delivers under full occlusion or returns one exact structured refusal.
  • A background result never blurs or lowers the foreground sentinel.
  • Run at least three fresh-process seeds on windows-latest and an interactive Windows VM.
  • Add an optional real-Chrome compatibility row that uses the same typed report and independent oracles as the canonical Rust catalog.
  • Keep the repo-built shared harness as the canonical contract; use the Chrome row to detect materially different renderer/window-class behavior.
  • Retain per-cell video, target journal, focus journal, and driver trajectory for failures.

Related

  • #2176 tracks page/JS escalation when native background delivery is unavailable on web surfaces.
  • #2193 introduced the current strict background E2E oracles and canonical Windows matrix.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the canonical Rust Windows matrix and shared harness introduced by #2193, then trace the background click route for a Chrome process using pid, window_id, and window-local coordinates. Add the optional real-Chrome compatibility row with the existing typed report and independent target, focus, z-order, cursor, and leaked-input oracles. Done means three fresh-process seeds run on windows-latest and an interactive Windows VM, with failure artifacts retained.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, rust
Domain
desktop, operating-systems, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.