gecko-dev/ipc/mscom/moz.build
Aaron Klotz b460ef68c0 Bug 1646453: Add MSCOM channel hook to enable profiler markers for COM IPC; r=Jamie,gerald
To intercept COM IPC, we provide an `IChannelHook` interface to
`CoRegisterChannelHook`, which gives us notifications about COM IPC that we can
use to insert profiler markers. Note that `IChannelHook` is not documented on
MSDN, however it is defined in the SDK header files.

When the profiler is available, once XPCOM is up:

* If the profiler is active, we immediately register the channel hook;
* Otherwise we register an observer and hold off on registering the hook until
  the profiler is started, at which point we register the hook and remove the
  observer.

Differential Revision: https://phabricator.services.mozilla.com/D80053
2020-06-19 00:40:18 +00:00

93 lines
1.9 KiB
Python

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
EXPORTS.mozilla.mscom += [
'Aggregation.h',
'AgileReference.h',
'ApartmentRegion.h',
'AsyncInvoker.h',
'COMPtrHolder.h',
'EnsureMTA.h',
'Objref.h',
'PassthruProxy.h',
'ProcessRuntime.h',
'ProfilerMarkers.h',
'ProxyStream.h',
'Ptr.h',
'Utils.h',
]
DIRS += [
'mozglue',
]
SOURCES += [
'VTableBuilder.c',
]
UNIFIED_SOURCES += [
'AgileReference.cpp',
'EnsureMTA.cpp',
'Objref.cpp',
'PassthruProxy.cpp',
'ProcessRuntime.cpp',
'ProfilerMarkers.cpp',
'ProxyStream.cpp',
'RegistrationAnnotator.cpp',
'Utils.cpp',
]
if CONFIG['ACCESSIBILITY']:
DIRS += [
'oop',
]
EXPORTS.mozilla.mscom += [
'ActivationContext.h',
'DispatchForwarder.h',
'FastMarshaler.h',
'IHandlerProvider.h',
'Interceptor.h',
'InterceptorLog.h',
'MainThreadHandoff.h',
'MainThreadInvoker.h',
'Registration.h',
'SpinEvent.h',
'StructStream.h',
'WeakRef.h',
]
SOURCES += [
'Interceptor.cpp',
'MainThreadHandoff.cpp',
'Registration.cpp',
'SpinEvent.cpp',
'WeakRef.cpp',
]
UNIFIED_SOURCES += [
'ActivationContext.cpp',
'DispatchForwarder.cpp',
'FastMarshaler.cpp',
'InterceptorLog.cpp',
'MainThreadInvoker.cpp',
'StructStream.cpp',
]
LOCAL_INCLUDES += [
'/xpcom/base',
'/xpcom/build',
]
DEFINES['MOZ_MSCOM_REMARSHAL_NO_HANDLER'] = True
include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul'
with Files("**"):
BUG_COMPONENT = ("Core", "IPC: MSCOM")