Closed Bug 1666955 Opened 4 years ago Closed 4 years ago

Enable HWND emulation for ZoomText 2021

Categories

(Core :: Disability Access APIs, enhancement)

enhancement

Tracking

()

VERIFIED FIXED
83 Branch
Tracking Status
firefox83 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

Details

Attachments

(3 files)

JAWS requires Firefox to enable HWND emulation. Previously, ZoomText didn't. However, Vispero are moving some of the code that interacts with Firefox to a common module shared between both products. Unfortunately, eliminating their reliance on HWND emulation isn't currently feasible for them. So, we need to enable HWND emulation for this new dll so that ZoomText 2021 can work with Firefox.

The dll is called AccEventCache.dll. Because a11y client dll detection currently happens in Compatibility::InitConsumers, we'll need to add a new consumer flag. We still want to be able to differentiate between JAWS and ZoomText, so I think we should call this one VISPEROSHARED or similar and it will be set in combination with one of the other two (JAWS or ZOOMTEXT).

This check is a remnant of the first version of e10s a11y, where there was no sandbox and content processes could expose their own HWNDs.
We return early if IPCAccessibilityActive(), which is now always true when running in a content process, so this check will never be hit.
If it were hit, this would cause serious breakage now, so having this in the code only serves to confuse things at best.

Assignee: nobody → jteh
Status: NEW → ASSIGNED

Do we also want to add a telemetry probe for this?

Flags: needinfo?(jteh)

Verified that with Fusion running, the instanciators are JAWS|UIAUTOMATION|VISPEROSHARED in the try build.

Pushed by mzehe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e073c1a0b710
part 1: Remove pointless check for content process in nsWinUtils::MaybeStartWindowEmulation. r=MarcoZ
https://hg.mozilla.org/integration/autoland/rev/bad0f557afb4
part 2: Detect dll shared by JAWS, ZoomText and ZoomText Fusion 2021 and later. r=MarcoZ
https://hg.mozilla.org/integration/autoland/rev/be117f64b441
part 3: Enable window emulation for ZoomText and ZoomText Fusion 2021 and later. r=MarcoZ

We already gather telemetry for the consumers bitmask:
https://searchfox.org/mozilla-central/rev/3d53187b90605ccef321c9cadbba762ad06a6381/accessible/windows/msaa/Compatibility.cpp#190
Unfortunately, that's an enumerated histogram and it has n_values set to 11:
https://searchfox.org/mozilla-central/rev/3d53187b90605ccef321c9cadbba762ad06a6381/toolkit/components/telemetry/Histograms.json#17
Now we've added a 12th value. This documentation suggests that changing an existing histogram can cause problems, so we'd have to rename it.

IMO, that's probably more churn than it's worth, especially because we can still track JAWS vs ZoomText anyway, so all we gain here is knowing whether it's v2021 or later.

Flags: needinfo?(jteh)
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 83 Branch

Verified fixed in Nightly 83.0a1 20200929213959.

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: