Closed Bug 1275731 Opened 8 years ago Closed 8 years ago

Add ia2marshal.dll to installer

Categories

(Core :: Disability Access APIs, defect)

Unspecified
Windows
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla50
Tracking Status
firefox49 --- affected
firefox50 --- fixed

People

(Reporter: bugzilla, Assigned: bugzilla)

References

(Blocks 1 open bug)

Details

(Whiteboard: aes+)

Attachments

(1 file)

We need to be packaging ia2marshal.dll with the installer. It also needs to be registered similarly to AccessibleMarshal.dll. I don't know why this hasn't been done until now. Perhaps we are running midl to generate ia2 headers but aren't using the Proxy/Stub DLL? Regardless, we now need to do so in order to successfully remote IA2 COM objects.
The history behind this is long and complicated, but to cut a long story short, there was a decision in the IA2 community years ago that apps would never register an IA2 proxy. The reason is that things get messy when an app gets uninstalled, since many apps may depend on the proxy and uninstalling another app shouldn't mysteriously break them. Most AT run in-process, so this doesn't affect them. AT like NVDA which can run portably and run primarily out-proc register the proxy themselves when they inject; i.e. they don't use the registry. See this article: http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2comproxydll Do you need to remote IA2 between your own processes or just between your process and the AT? If the latter, there's nothing you need to do. If you do need to remote it between your own processes, you'll need to register the proxy just in your own processes. You can use a proxy without registering it in the registry by getting the class object from the proxy dll using DllGetClassObject, registering the class object with CoRegisterClassObject and registering each interface you need proxied with CoRegisterPsClsid. You must do this in every process that needs the proxying. Here's some NVDA code which registers proxies without using the registry: https://github.com/nvaccess/nvda/blob/master/nvdaHelper/remote/IA2Support.cpp#L67 For reference, here's an OpenOffice bug for a similar issue: https://bz.apache.org/ooo/show_bug.cgi?id=121762
Thanks for the context, James! If that is the decision of the community, then I will use CoRegisterPsClsid and go from there.
Whiteboard: aes-win
Whiteboard: aes-win → aes+
Comment on attachment 8772950 [details] Bug 1275731: Add IA2Marshal.dll to package and installer; https://reviewboard.mozilla.org/r/65620/#review62626
Attachment #8772950 - Flags: review?(robert.strong.bugs) → review+
Comment on attachment 8772950 [details] Bug 1275731: Add IA2Marshal.dll to package and installer; Review request updated; see interdiff: https://reviewboard.mozilla.org/r/65620/diff/1-2/
Attachment #8772950 - Attachment description: Bug 1275731: Add IA2Marshal.dll to package and installer; → Bug 1275731: Add building of typelib to be embedded in ia2marshal.dll;
Attachment #8772950 - Flags: review+ → review?(tbsaunde+mozbugs)
Comment on attachment 8772950 [details] Bug 1275731: Add IA2Marshal.dll to package and installer; Wrong bug for this patch, sorry.
Attachment #8772950 - Flags: review?(tbsaunde+mozbugs)
Comment on attachment 8772950 [details] Bug 1275731: Add IA2Marshal.dll to package and installer; Review request updated; see interdiff: https://reviewboard.mozilla.org/r/65620/diff/2-3/
Attachment #8772950 - Attachment description: Bug 1275731: Add building of typelib to be embedded in ia2marshal.dll; → Bug 1275731: Add IA2Marshal.dll to package and installer;
Pushed by aklotz@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b89f326ea064 Add IA2Marshal.dll to package and installer; r=rstrong
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Assignee: nobody → aklotz
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: