# -*- 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/. include("/dom/media/webrtc/third_party_build/webrtc.mozbuild") EXPORTS += [ "nsIIPCSerializableInputStream.h", ] EXPORTS.mozilla.ipc += [ "AsyncBlockers.h", "BackgroundChild.h", "BackgroundParent.h", "BackgroundStarterChild.h", "BackgroundStarterParent.h", "BackgroundUtils.h", "BigBuffer.h", "BrowserProcessSubThread.h", "ByteBuf.h", "ByteBufUtils.h", "CrashReporterClient.h", "CrashReporterHelper.h", "CrashReporterHost.h", "CrossProcessMutex.h", "CrossProcessSemaphore.h", "DataPipe.h", "Endpoint.h", "EnvironmentMap.h", "FileDescriptor.h", "FileDescriptorUtils.h", "GeckoChildProcessHost.h", "IdleSchedulerChild.h", "IdleSchedulerParent.h", "InputStreamUtils.h", "IOThreadChild.h", "IPCCore.h", "IPCForwards.h", "IPCStreamUtils.h", "IPCTypes.h", "IPDLParamTraits.h", "LibrarySandboxPreload.h", "MessageChannel.h", "MessageLink.h", "MessagePump.h", "Neutering.h", "NodeChannel.h", "NodeController.h", "ProcessChild.h", "ProcessUtils.h", "ProtocolMessageUtils.h", "ProtocolUtils.h", "RandomAccessStreamUtils.h", "RawShmem.h", "ScopedPort.h", "SerializedStructuredCloneBuffer.h", "SharedMemory.h", "SharedMemoryBasic.h", "Shmem.h", "ShmemMessageUtils.h", "TaintingIPCUtils.h", "TaskFactory.h", "ToplevelActorHolder.h", "TransportSecurityInfoUtils.h", "URIUtils.h", "UtilityAudioDecoderChild.h", "UtilityAudioDecoderParent.h", "UtilityProcessChild.h", "UtilityProcessHost.h", "UtilityProcessImpl.h", "UtilityProcessManager.h", "UtilityProcessParent.h", "UtilityProcessSandboxing.h", "WindowsMessageLoop.h", ] if CONFIG["OS_ARCH"] == "WINNT": SOURCES += [ "SharedMemory_windows.cpp", "WindowsMessageLoop.cpp", ] else: UNIFIED_SOURCES += [ "SharedMemory_posix.cpp", ] if CONFIG["OS_ARCH"] == "WINNT": SOURCES += [ "CrossProcessMutex_windows.cpp", ] elif not CONFIG["OS_ARCH"] in ("NetBSD", "OpenBSD"): UNIFIED_SOURCES += [ "CrossProcessMutex_posix.cpp", ] else: UNIFIED_SOURCES += [ "CrossProcessMutex_unimplemented.cpp", ] if CONFIG["OS_ARCH"] == "WINNT": SOURCES += [ "CrossProcessSemaphore_windows.cpp", ] elif CONFIG["OS_ARCH"] != "Darwin": UNIFIED_SOURCES += [ "CrossProcessSemaphore_posix.cpp", ] else: UNIFIED_SOURCES += [ "CrossProcessSemaphore_unimplemented.cpp", ] # Android has its own, # almost-but-not-quite-compatible-with-POSIX-or-/dev/shm shared memory # impl. if CONFIG["OS_TARGET"] == "Android": EXPORTS.mozilla.ipc += ["SharedMemoryBasic_android.h"] UNIFIED_SOURCES += [ "SharedMemoryBasic_android.cpp", ] elif CONFIG["OS_ARCH"] == "Darwin": EXPORTS.mozilla.ipc += ["SharedMemoryBasic_mach.h"] SOURCES += [ "SharedMemoryBasic_mach.mm", ] else: EXPORTS.mozilla.ipc += ["SharedMemoryBasic_chromium.h"] if CONFIG["OS_ARCH"] == "Linux": UNIFIED_SOURCES += [ "ProcessUtils_linux.cpp", ] elif CONFIG["OS_ARCH"] in ("DragonFly", "FreeBSD", "NetBSD", "OpenBSD"): UNIFIED_SOURCES += ["ProcessUtils_bsd.cpp"] elif CONFIG["OS_ARCH"] == "Darwin": UNIFIED_SOURCES += ["ProcessUtils_mac.mm"] else: UNIFIED_SOURCES += [ "ProcessUtils_none.cpp", ] if CONFIG["OS_ARCH"] != "WINNT": EXPORTS.mozilla.ipc += [ "FileDescriptorShuffle.h", ] UNIFIED_SOURCES += [ "FileDescriptorShuffle.cpp", ] EXPORTS.ipc += [ "EnumSerializer.h", "IPCMessageUtils.h", "IPCMessageUtilsSpecializations.h", ] UNIFIED_SOURCES += [ "BackgroundImpl.cpp", "BackgroundUtils.cpp", "BigBuffer.cpp", "BrowserProcessSubThread.cpp", "CrashReporterClient.cpp", "CrashReporterHost.cpp", "DataPipe.cpp", "Endpoint.cpp", "FileDescriptor.cpp", "FileDescriptorUtils.cpp", "IdleSchedulerChild.cpp", "IdleSchedulerParent.cpp", "InputStreamUtils.cpp", "IPCMessageUtilsSpecializations.cpp", "IPCStreamUtils.cpp", "LibrarySandboxPreload.cpp", "MessageChannel.cpp", "MessageLink.cpp", "MessagePump.cpp", "NodeChannel.cpp", "NodeController.cpp", "ProcessChild.cpp", "ProcessUtils_common.cpp", "ProtocolUtils.cpp", "RandomAccessStreamUtils.cpp", "RawShmem.cpp", "ScopedPort.cpp", "SerializedStructuredCloneBuffer.cpp", "SharedMemory.cpp", "Shmem.cpp", "StringUtil.cpp", "TransportSecurityInfoUtils.cpp", "URIUtils.cpp", "UtilityAudioDecoderChild.cpp", "UtilityAudioDecoderParent.cpp", "UtilityProcessChild.cpp", "UtilityProcessHost.cpp", "UtilityProcessImpl.cpp", "UtilityProcessManager.cpp", "UtilityProcessParent.cpp", ] SOURCES += [ "BackgroundChildImpl.cpp", "BackgroundParentImpl.cpp", ] if CONFIG["OS_ARCH"] == "Darwin": # GeckoChildProcessHost.cpp cannot be built unified due to OSX header # clashes with TextRange. SOURCES += [ "GeckoChildProcessHost.cpp", ] else: UNIFIED_SOURCES += [ "GeckoChildProcessHost.cpp", ] LOCAL_INCLUDES += [ "/caps", "/dom/broadcastchannel", "/dom/indexedDB", "/dom/storage", "/netwerk/base", "/third_party/libwebrtc", "/third_party/libwebrtc/third_party/abseil-cpp", "/tools/fuzzing/ipc", "/xpcom/build", ] PREPROCESSED_IPDL_SOURCES = [ "PUtilityAudioDecoder.ipdl", "PUtilityProcess.ipdl", ] IPDL_SOURCES = [ "InputStreamParams.ipdlh", "IPCStream.ipdlh", "PBackground.ipdl", "PBackgroundSharedTypes.ipdlh", "PBackgroundStarter.ipdl", "PBackgroundTest.ipdl", "PIdleScheduler.ipdl", "ProtocolTypes.ipdlh", "RandomAccessStreamParams.ipdlh", "URIParams.ipdlh", ] if CONFIG["MOZ_ENABLE_FORKSERVER"]: EXPORTS.mozilla.ipc += [ "ForkServer.h", "ForkServiceChild.h", "MiniTransceiver.h", ] UNIFIED_SOURCES += [ "ForkServer.cpp", "ForkServiceChild.cpp", "MiniTransceiver.cpp", ] XPCOM_MANIFESTS += [ "components.conf", ] LOCAL_INCLUDES += [ "/dom/ipc", "/toolkit/crashreporter", "/toolkit/xre", "/xpcom/base", "/xpcom/threads", ] include("/ipc/chromium/chromium-config.mozbuild") FINAL_LIBRARY = "xul" if CONFIG["OS_ARCH"] == "Darwin": OS_LIBS += ["bsm"] # for audit_token_to_pid for var in ("MOZ_CHILD_PROCESS_NAME", "MOZ_CHILD_PROCESS_BUNDLE"): DEFINES[var] = '"%s"' % CONFIG[var] if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "WINNT": LOCAL_INCLUDES += [ "/security/sandbox/chromium", "/security/sandbox/chromium-shim", "/security/sandbox/win/src/sandboxbroker", ] if CONFIG["ENABLE_TESTS"]: DIRS += [ "test/gtest", "test/utility_process_xpcom", "test/browser", ] # Add libFuzzer configuration directives include("/tools/fuzzing/libfuzzer-config.mozbuild")