Repository navigation
fix(linux): stop announcing an AT-SPI listener on permission probes - #635
Open
princejain756 wants to merge 1 commit into
Open
princejain756 wants to merge 1 commit into
princejain756 wants to merge 1 commit into
Conversation
Every command that requires a permission report, including a plain XTEST press that never touches the accessibility tree, opened the shared AT-SPI connection and registered 'window:activate' before the process exited a moment later. Chromium-family applications deliver accessibility events only to registered listeners, and their accessibility bridge can segfault while writing to a client that disconnects mid-event, so a permission probe was enough to crash Chrome 156 on Ubuntu 24.04 while keys identical through xdotool left it running. SharedBus gains probe(): it reuses a live announced connection when one exists, and otherwise opens a transient connection that skips RegisterEvent and is not cached, so commands that only check permissions never appear to an application as an assistive client. permissions::report and accessibility_answers switch to it. Closes vercel-labs#529
Contributor
|
@princejain756 is attempting to deploy a commit to the Vercel Labs Team on Vercel. A member of the Team first needs to authorize it. |
This branch has not been deployed
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.
Every command that requires a permission report, including a plain XTEST
pressthat never reads the accessibility tree, opened the shared AT-SPI connection and registeredwindow:activateas an event listener before the process exited a moment later. Chromium-family bridges deliver events only to registered listeners, and Chrome's bridge segfaults writing to a client that disconnects mid-event, soagent-desktop --headed press ctrl+vcrashed Chrome 3/3 while the identicalxdotool keysequence crashed it 0/3.The fix adds
SharedBus::probe: it reuses a live announced connection when one exists, and otherwise opens a transient connection that skipsRegisterEventand is not cached.permissions::reportandaccessibility_answersswitch to it, so a permission check never appears to an application as an assistive client.Verified on Linux/Xvfb + dbus-run-session + Chrome for Testing 156: the issue's own repro script crashed Chrome on every agent-desktop press trial before the patch and survived 5/5 full key sequences after it.
cargo test --bin agent-desktoppasses 229 tests,cargo clippy ... -- -D warningsis clean on the four host packages, andcargo fmt --checkpasses on the pinned 1.89.0 toolchain.Fixes #529