Closed
Bug 1258844
Opened 9 years ago
Closed 9 years ago
Exploratory work: COM RPC to sandboxed process
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
firefox48 | --- | affected |
People
(Reporter: bugzilla, Assigned: bugzilla)
References
(Blocks 1 open bug)
Details
I'm creating this bug as a container to hold the information that I am researching to determine the feasibility of the design that I have in mind.
In order for a11y clients to communicate directly with content, COM over RPC must be able to successfully connect to a sandboxed process.
I have resurrected a test sandbox that I had written three years ago for GMP sandboxing research as a testbed for trying out these ideas.
https://github.com/dblohm7/sandbox-win32
The comtest program that is built in that project implements a simple COM interface. That interface is proxied and serialized in the sandbox and then passed via shared memory into the parent process, which deserializes the proxy and then uses the proxy to successfully call a function on that test interface.
The main caveat is that the DLL that contains the CLSID who is responsible for proxy and stub functionality must be available to the sandbox, either via ACLs on the DLL or by punching a hole in the sandbox to allow it.
Comment 1•9 years ago
|
||
You may already be aware, but just in case here's a section explaining why clients such as NVDA like to do things in-process in Firefox, to give users an acceptable user experience:
https://github.com/nvaccess/nvda/wiki/DesignOverview#in-process-code
Assignee | ||
Comment 2•9 years ago
|
||
Ooh, thanks for the reference, Marco!
My goal is to make this implementation so good that no more alternatives will be necessary. :-)
Assignee | ||
Comment 3•9 years ago
|
||
I just updated comtest to use a stubbed-out IAccessible instead of ITest. That worked as well.
I also learned that the proxy/stub marshaling for IAccessible resides in oleaut32.dll.
Assignee | ||
Comment 4•9 years ago
|
||
I'm marking this as resolved; I think that I've learned everything that I need to know for the time being.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•