зеркало из https://github.com/mozilla/gecko-dev.git
132a49a8a1
When marshaling a11y calls from the content process, there are quite a lot of cross-thread QueryInterface calls (ipc::mscom::Interceptor::QueryInterfaceTarget). Some of these are for special COM interfaces like IAgileObject and IFastRundown, which we could just special case in Interceptor::QueryInterface like we do for INoMarshal. However, it seems there are a lot of other interfaces being queried and it's not clear why. This patch adds a new HandlerProvider method: IsInterfaceMaybeSupported. This allows implementations to indicate when there are interfaces which they definitely don't support, allowing the call to be answered without a cross-thread call. Differential Revision: https://phabricator.services.mozilla.com/D69285 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
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 | ||
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 |