Improve Ledger device detection and MV3 compatibility #3821
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.
Prevents pairing failures by replacing the hardcoded productId list with vendorId based querying. This automatically supports new Ledger devices and firmware updates that can change internal productIds.
Added a helper function to verify the Ledger has the Ethereum app open before fully commiting to the connection flow. Within the service, supported device checks where removed as the underlying transport library already handles device compatibility filtering.
This PR also fixes compatibility issues related to event handlers with Manifest V3. Preventing race conditions where USB connect/disconnect events could be missed if handlers weren't registered in time.
These where related to the following warnings:

Notes:
If Chrome forgets the USB device pairing, Users will need to reconnect via the tabbed onboarding flow. This is a browser limitation since USB device pairing can only be requested from certain contexts, not from the extension popup or background processes.
Testing:
Tested with Nano S, Nano X, Nano S Plus. Connectivity issue found with NanoS after software update.
Latest build: extension-builds-3821 (as of Fri, 29 Aug 2025 01:43:02 GMT).