gecko-dev/ipc/mscom
James Teh d0f0f73d64 Bug 1581441: mscom::GetObjRefSize: Correctly handle proxies marshaled by the aggregated standard marshaler. r=aklotz
For Fission, the parent process needs to take an Accessible sent up from one content process and send it down to another content process, where it will eventually be returned to the client.
If sandboxing is enabled, we must use a PassthruProxy, and if the handler is enabled, the handler will marshal the interface.
Even though we strip out the handler, the handler still marshals using the aggregated standard marshaler, which uses a different clsid (CLSID_AggStdMarshal).
When unmarshaling to return to the client, we call GetObjRefSize.
This previously didn't know about the aggregated standard marshaler, so it failed, causing E_INVALIDARG to be returned to the client.
Now, we just handle these clsids in the same way.

Differential Revision: https://phabricator.services.mozilla.com/D51246

--HG--
extra : moz-landing-system : lando
2019-10-31 21:45:17 +00:00
..
mozglue
oop
ActivationContext.cpp
ActivationContext.h
Aggregation.h
AgileReference.cpp
AgileReference.h
ApartmentRegion.h
AsyncInvoker.h
COMPtrHolder.h
DispatchForwarder.cpp
DispatchForwarder.h
EnsureMTA.cpp
EnsureMTA.h
FastMarshaler.cpp
FastMarshaler.h
IHandlerProvider.h
Interceptor.cpp
Interceptor.h
InterceptorLog.cpp
InterceptorLog.h
MainThreadHandoff.cpp
MainThreadHandoff.h
MainThreadInvoker.cpp
MainThreadInvoker.h
Objref.cpp Bug 1581441: mscom::GetObjRefSize: Correctly handle proxies marshaled by the aggregated standard marshaler. r=aklotz 2019-10-31 21:45:17 +00:00
Objref.h
PassthruProxy.cpp
PassthruProxy.h
ProcessRuntime.cpp
ProcessRuntime.h
ProxyStream.cpp
ProxyStream.h
Ptr.h
Registration.cpp
Registration.h
RegistrationAnnotator.cpp
RegistrationAnnotator.h
SpinEvent.cpp
SpinEvent.h
StructStream.cpp
StructStream.h
Utils.cpp
Utils.h
VTableBuilder.c
VTableBuilder.h
WeakRef.cpp
WeakRef.h
moz.build