Closed Bug 1383260 Opened 3 years ago Closed 3 years ago

Handler unmarshaling is failing during ObjectFromLResult

Categories

(Core :: Disability Access APIs, enhancement)

Unspecified
Windows
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: aklotz, Assigned: aklotz)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

More trouble with JAWS being able to resolve accessibles from emulated windows:

When we first unmarshal the handler into the parent process, everything works fine.

When the handler is unmarshaled a second time (during ObjectFromLResult as requested from AccessibleObjectFrom*), we fail to unmarshal the payload.

Note that the proxy itself unmarshals just fine.
This patch does a few things:

1) Modifies StripHandlerFromOBJREF to zero out the remaining bytes that make up the difference between the longer OBJREF_HANDLER and the shorter OBJREF_STANDARD;

2) Makes Handler::GetMarshalSizeMax ignore payloads when MOZ_MSCOM_REMARSHAL_NO_HANDLER is defined, since we already ignore the payload in Handler::MarshalInterface;

3) Modifies Handler::Unmarshal interface to make payload unmarshaling be non-fatal with respect to the rest of the handler. As long as the inner proxy still successfully marshaled, we should still succeed.
Attachment #8888964 - Flags: review?(jmathies)
Attachment #8888964 - Flags: review?(jmathies) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/add7f83758561c8d534b47af5e98379b4f2f19dd
Bug 1383260: Fix problems with unmarshaling handler-wrapped object when in its original apartment; r=jimm
Blocks: 1383501
https://hg.mozilla.org/mozilla-central/rev/add7f8375856
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.