Repository navigation
fix(unix): Preserve AT-SPI cache signal structure arguments - #819
Merged
DataTriny merged 2 commits intoOct 11, 2026
Merged
Conversation
Member
|
Hello @luccahuguet, Thanks for the fix. As they stand, the tests are unfortunately not very useful. I would remove them until we have a proper test harness for Unix. |
Contributor
Author
thanks! I'll remove them |
Contributor
Author
|
(done) @DataTriny |
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.
The Unix adapter flattens the structure argument in Cache.AddAccessible and Cache.RemoveAccessible. GNOME AT-SPI rejects the resulting signatures, leaving clients with stale cache state that can disrupt Orca focus and selection reporting.
Wrap the body in a one-element tuple in the shared emit_cache_signal helper, and require Type for tuple serialization. Both signals then preserve their required structure:
(so)(so)(so)iiassusau((so)(so)(so)iiassusau)so(so)Only two production lines in
adapters/unix/src/atspi/bus.rsdiffer from upstream466e24e252103f4d82bd6fbab98141b551e46e0c. The standalone private-D-Bus test was removed at the maintainer's request pending a proper Unix test harness. No manifests, dependencies, lockfile, or generated changelogs change.Validation on the revised candidate, x86_64 Linux:
cargo +1.87.0 test --locked -p accesskit_unix: 5 passed.cargo fmt --all -- --check: passed.git diff --check: passed.Before test removal, the private D-Bus regression failed without the fix and passed with it, checking the encoded SIGNATURE headers and round-tripping both payloads. Removing the test does not change the verified production code. GNOME's AddAccessible handler and RemoveAccessible handler require the corrected signatures.
The same correction was separately verified downstream with Orca 49.4 and AT-SPI 2.58.1 on native Wayland using this backport. That run used accesskit_unix 0.22.1 / zbus 5.18.0 / zvariant 5.13.1. Current-upstream native Orca and non-Linux runtime checks were not run.
Closes #818.