Skip to content

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

Merged
michaelDCurran merged 5 commits into
masterfrom
i14397
Dec 20, 2022
Merged

Support browse mode and other in-process scenarios for AMD64 apps when running on ARM64 Windows#14449
michaelDCurran merged 5 commits into
masterfrom
i14397

Conversation

@michaelDCurran

Copy link
Copy Markdown
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
Copy Markdown

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

michaelDCurran commented Dec 18, 2022 via email

Copy link
Copy Markdown
Member Author

@michaelDCurran michaelDCurran added this to the 2023.1 milestone Dec 18, 2022
Comment thread source/NVDAHelper.py Outdated
Comment thread source/NVDAHelper.py Outdated
@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
Comment thread user_docs/en/changes.t2t Outdated
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
Copy Markdown
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