Plugin token navigation callbacks can't override action availability
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- cpp
- Domain
- reverse-engineering
Research direction
Start by tracing the token activation path for Enter or the Activate Selection action, then compare it with the OnTokenDoubleClicked path and the fixed validity callback described in the report. Done means plugin-provided token navigation handling is reachable consistently through both double-click and activation, including tokens without built-in navigation.
Written by the indexing model from the issue text.
Description
Version and Platform (required):
- Binary Ninja Version: 6.1.10679
- Edition: Ultimate
- OS: macOS
- OS Version: 27.0
- CPU Architecture: M5
Bug Description:
Plugins can currently override OnTokenDoubleClicked to perform custom handling of double-clicking tokens. The debugger uses this to provide custom handling of token navigation that is debugger aware. With the unified navigation between double-clicking and pressing Enter on a token, Enter also goes through this path. However, a press of Enter (or any other way of using the Activate Selection action) goes through the validity callback, which is fixed and cannot be overridden by plugins. If the original implementation says a token has associated navigation, it will pass through to a plugin, but one that was not marked as having navigation will never call into the plugin along the action path (double-clicking sidesteps this entire path and works in all cases). As it stands, double-click and Enter are not the same thing when a plugin adds functionality, as some kinds of additional token handling plugins provide may not be reachable using the Enter/Activate Selection path.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 20
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Vector35/binaryninja-api
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
Vector35/binaryninja-api#8540 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8446 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8444 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Vector35/binaryninja-api#8441 · 3 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Vector35/binaryninja-api#8404 ·
All issues in Vector35/binaryninja-api
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
objectionary/eo-graphs#74 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 88/100
QuantStack/git2cpp#187 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100