Source code
Revision control
Copy as Markdown
Other Tools
# -*- 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
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",
"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",
"IOThread.h",
"IPCCore.h",
"IPCForwards.h",
"IPCStreamUtils.h",
"IPCTypes.h",
"IPDLParamTraits.h",
"IPDLStructMember.h",
"LaunchError.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",
"RustMessageUtils.h",
"ScopedPort.h",
"SerializedStructuredCloneBuffer.h",
"SharedMemory.h",
"Shmem.h",
"ShmemMessageUtils.h",
"SideVariant.h",
"TaintingIPCUtils.h",
"TaskFactory.h",
"ToplevelActorHolder.h",
"TransportSecurityInfoUtils.h",
"URIUtils.h",
"UtilityAudioDecoder.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 += ["WindowsMessageLoop.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":
SOURCES += [
"CrossProcessSemaphore_mach.cpp",
]
else:
UNIFIED_SOURCES += [
"CrossProcessSemaphore_posix.cpp",
]
if CONFIG["OS_ARCH"] == "Darwin":
SOURCES += ["SharedMemory_mach.cpp"]
elif CONFIG["OS_ARCH"] == "WINNT":
SOURCES += ["SharedMemory_windows.cpp"]
elif CONFIG["OS_TARGET"] == "Android":
SOURCES += ["SharedMemory_android.cpp"]
else:
SOURCES += ["SharedMemory_posix.cpp"]
if CONFIG["OS_ARCH"] == "Linux":
UNIFIED_SOURCES += [
"ProcessUtils_linux.cpp",
"SetProcessTitle.cpp",
]
EXPORTS.mozilla.ipc += [
"SetProcessTitle.h",
]
elif CONFIG["OS_ARCH"] in ("DragonFly", "FreeBSD", "NetBSD", "OpenBSD"):
UNIFIED_SOURCES += [
"ProcessUtils_bsd.cpp",
"SetProcessTitle.cpp",
]
EXPORTS.mozilla.ipc += [
"SetProcessTitle.h",
]
elif CONFIG["TARGET_OS"] == "OSX":
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",
]
if CONFIG["TARGET_OS"] == "iOS":
EXPORTS.mozilla.ipc += [
"ExtensionKitUtils.h",
]
UNIFIED_SOURCES += [
"ExtensionKitUtils.mm",
]
EXPORTS.ipc += [
"EnumSerializer.h",
"IPCMessageUtils.h",
"IPCMessageUtilsSpecializations.h",
]
UNIFIED_SOURCES += [
"BackgroundImpl.cpp",
"BackgroundUtils.cpp",
"BigBuffer.cpp",
"CrashReporterClient.cpp",
"CrashReporterHost.cpp",
"DataPipe.cpp",
"Endpoint.cpp",
"FileDescriptor.cpp",
"FileDescriptorUtils.cpp",
"IdleSchedulerChild.cpp",
"IdleSchedulerParent.cpp",
"InputStreamUtils.cpp",
"IOThread.cpp",
"IPCMessageUtilsSpecializations.cpp",
"IPCStreamUtils.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",
"UtilityAudioDecoder.cpp",
"UtilityAudioDecoderChild.cpp",
"UtilityAudioDecoderParent.cpp",
"UtilityProcessChild.cpp",
"UtilityProcessHost.cpp",
"UtilityProcessImpl.cpp",
"UtilityProcessManager.cpp",
"UtilityProcessParent.cpp",
"UtilityProcessSandboxing.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",
]
if CONFIG["OS_ARCH"] == "WINNT":
UNIFIED_SOURCES += ["MessagePump_windows.cpp"]
elif CONFIG["OS_ARCH"] == "Darwin":
UNIFIED_SOURCES += ["MessagePump_mac.mm"]
elif CONFIG["OS_TARGET"] == "Android":
UNIFIED_SOURCES += ["MessagePump_android.cpp"]
LOCAL_INCLUDES += [
"/caps",
"/dom/broadcastchannel",
"/dom/indexedDB",
"/dom/storage",
"/netwerk/base",
"/third_party/abseil-cpp",
"/third_party/libwebrtc",
"/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["TARGET_OS"] == "OSX":
OS_LIBS += ["bsm"] # for audit_token_to_pid
elif CONFIG["TARGET_OS"] == "iOS":
OS_LIBS += ["-framework BrowserEngineKit"]
for var in (
"MOZ_CHILD_PROCESS_NAME",
"MOZ_CHILD_PROCESS_BUNDLENAME",
"MOZ_EME_PROCESS_NAME_BRANDED",
"MOZ_EME_PROCESS_BUNDLENAME",
):
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")