Skip to content

Support browse mode and other in-process scenarios for AMD64 apps when running on ARM64 Windows #14449

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Dec 20, 2022

Conversation

michaelDCurran
Copy link
Member

Link to issue number:

Fixes #14397

Summary of the issue:

Although NVDA fully functions on Windows 10 ARM64, including interacting with both ARM64 and x86-emulated apps, on Windows 11 particular in-process NVDA features such as browse mode is not available when interacting with AMD64-emulated apps.
For instance, Running AMD64 builds of Firefox, or 1Password, or Chrome on Windows 11 ARM64, browse mode is not available.
The reason for this is that on ARM64 Windows, NVDA only launches an ARM64 nvdaHelperRemoteLoader process for injecting NVDAHelper, not an AMD64 one. This is because in Windows 10 running AMD64 apps was not supported by the OS.
NVDA should fully support AMD64-emulated apps on windows 11.

Description of user facing changes

On Windows 11 ARM64, NVDA's browse mode is now supported in AMD64 apps such as Firefox, Google Chrome, and 1Password.

Description of development approach

  • NVDAHelper.py's versionedLib64Path variable has been replaced by versionLibAMD64Path and versionedLibARM64Path variables.
  • NVDAHelper.py's RemoteLoader64 class has been renamed to RemoteLoader, and it now takes a loader directory path on construction, so that it is possible to launch NVDAHelperRemoteLoader.exe in either lib64 (AMD64) or libARM64.
  • When initializing NVDAHelper, on ARM64, both ARM64 and AMD64 versions of NVDAhelperRemoteLoader are now started, and both are cleaned up on termination.

Testing strategy:

Ran a try build on Windows 11 ARM64.

  • Opened 1Password (AMD64) and ensured that browse mode was activated for its document.
  • Opened Firefox (AMD64) and browsed some web pages, ensuring that browse mode was functioning.
  • Opened Microsoft Edge (ARM64) and ensured that browse mode was still functional.
    Ran try build on Windows 11 (AMD64):
  • Opened Firefox, browsed some web pages and ensured browse mode was astill functional.

Known issues with pull request:

None known.

Change log entries:

New features

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • Security precautions taken.

@rperez030
Copy link

Thanks @michaelDCurran. It works as expected for me. I wonder if there is any chance this can be included in 2022.4. Too son perhaps? This makes using Windows 11 in arm totally viable for me

@michaelDCurran
Copy link
Member Author

michaelDCurran commented Dec 18, 2022 via email

@michaelDCurran michaelDCurran added this to the 2023.1 milestone Dec 18, 2022
@michaelDCurran michaelDCurran changed the title Support browse mode and other in-proces scenarios for AMD64 apps when running on ARM64 Windows Support browse mode and other in-process scenarios for AMD64 apps when running on ARM64 Windows Dec 19, 2022
Co-authored-by: Sean Budd <sean@nvaccess.org>
@michaelDCurran michaelDCurran merged commit 28d8aa5 into master Dec 20, 2022
@michaelDCurran michaelDCurran deleted the i14397 branch December 20, 2022 00:11
@seanbudd
Copy link
Member

This API breaking change has been announced here: https://groups.google.com/a/nvaccess.org/g/nvda-api/c/a0v8K2ePY_s/m/JkGsV8G2BQAJ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Browse mode is not available in some electron apps running on Windows 11 ARM
3 participants