Skip to content

Fix API breakage of SecureDesktopNVDAObject#14098

Closed
seanbudd wants to merge 1 commit into
rcfrom
fix-14094
Closed

Fix API breakage of SecureDesktopNVDAObject#14098
seanbudd wants to merge 1 commit into
rcfrom
fix-14094

Conversation

@seanbudd

@seanbudd seanbudd commented Sep 2, 2022

Copy link
Copy Markdown
Member

Link to issue number:

Fixes #14094

Summary of the issue:

SecureDesktopNVDAObject needs to be whitelisted on the lock screen.
This is an NVDA Object used to notify the user and API consumers that NVDA has entered a secure desktop.
In a separate issue, we should investigate if other approaches should be recommended for API consumers (eg session tracking, secure mode check).

Description of user facing changes

Fixes NVDA remote bug described in #14094.
"Secure Desktop" is now consistently announced again when entering a secure desktop.

Description of development approach

Add SecureDesktopNVDAObject to the whitelist of available objects on the lock screen.
Changes the desktop to SecureDesktopNVDAObject when the desktop switches.
Ensures that when setting the foreground object via doPreGainFocus that the focused object is above the lockscreen.

An alternative (and possibly safer) development approach.
To avoid setting the desktop object, an alternative is to check the returned handle of windll.user32.OpenInputDesktop(0, False, 0) and whitelist Desktop objects as if they were SecureDesktopNVDAObject if the returned handle is a secure desktop.

Testing strategy:

Manual testing

Known issues with pull request:

None

Change log entries:

Refer to PR diff

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.

@seanbudd seanbudd requested a review from a team as a code owner September 2, 2022 01:42
@seanbudd seanbudd requested review from feerrenrut and removed request for a team September 2, 2022 01:42
@seanbudd seanbudd added this to the 2022.2.3 milestone Sep 2, 2022
@seanbudd seanbudd marked this pull request as draft September 2, 2022 03:31
@seanbudd seanbudd force-pushed the fix-14094 branch 3 times, most recently from 4d9e547 to 5551883 Compare September 5, 2022 01:37
@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit d3db45f4f3

@seanbudd seanbudd marked this pull request as ready for review September 5, 2022 03:07
@seanbudd

seanbudd commented Sep 5, 2022

Copy link
Copy Markdown
Member Author

This try build is available for testing

@seanbudd seanbudd marked this pull request as draft September 5, 2022 05:32
@seanbudd

seanbudd commented Sep 5, 2022

Copy link
Copy Markdown
Member Author

Closing in favour of #14105, as changing the desktop object is too risky for a point release.

@seanbudd seanbudd closed this Sep 5, 2022
seanbudd added a commit that referenced this pull request Sep 6, 2022
Supersedes #14098
Fixes #14094

Summary of the issue:
SecureDesktopNVDAObject needs to be whitelisted on the lock screen.
This is an NVDAObject used to notify the user and API consumers that NVDA has entered a secure desktop.

Description of user facing changes
Fixes NVDA remote bug described in #14094.
"Secure Desktop" is now consistently announced again when entering a secure desktop.

Description of development approach
Add SecureDesktopNVDAObject to the whitelist of available objects on the lock screen.
Ensures that when setting the foreground event does not occur via doPreGainFocus for SecureDesktopNVDAObject.
This is because the foreground event cannot be handled in a secure manner, and is not required for the SecureDesktopNVDAObject API.
@seanbudd seanbudd deleted the fix-14094 branch February 13, 2024 05:42
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.

2 participants