gecko-dev/ipc/glue/moz.build
Nika Layzell 0308ac11a4 Bug 1754004 - Part 2: Remove the PFileDescriptorSet interface, r=asuth,necko-reviewers,kershaw
This interface should no longer be required due to the changes in part 1
limiting the complexity of IPCStream instances and limiting the number of file
descriptors which a single stream can attach to a message.

Removing this interface is necessary to serialize nsIInputStream instances over
arbitrary toplevel protocols and non-protocol IPC in the future.

Differential Revision: https://phabricator.services.mozilla.com/D141039
2022-05-05 23:34:21 +00:00

289 lines
7.0 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/.
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",
"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",
"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",
"ProtocolUtilsFwd.h",
"ScopedPort.h",
"ScopedXREEmbed.h",
"SerializedStructuredCloneBuffer.h",
"SharedMemory.h",
"SharedMemoryBasic.h",
"Shmem.h",
"ShmemMessageUtils.h",
"TaintingIPCUtils.h",
"TaskFactory.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",
"BrowserProcessSubThread.cpp",
"CrashReporterClient.cpp",
"CrashReporterHost.cpp",
"DataPipe.cpp",
"Endpoint.cpp",
"FileDescriptor.cpp",
"FileDescriptorUtils.cpp",
"IdleSchedulerChild.cpp",
"IdleSchedulerParent.cpp",
"InputStreamUtils.cpp",
"IPCMessageUtils.cpp",
"IPCMessageUtilsSpecializations.cpp",
"IPCStreamUtils.cpp",
"LibrarySandboxPreload.cpp",
"MessageChannel.cpp",
"MessageLink.cpp",
"MessagePump.cpp",
"NodeChannel.cpp",
"NodeController.cpp",
"ProcessChild.cpp",
"ProcessUtils_common.cpp",
"ProtocolUtils.cpp",
"ScopedPort.cpp",
"ScopedXREEmbed.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 = [
"PUtilityProcess.ipdl",
]
IPDL_SOURCES = [
"InputStreamParams.ipdlh",
"IPCStream.ipdlh",
"PBackground.ipdl",
"PBackgroundSharedTypes.ipdlh",
"PBackgroundStarter.ipdl",
"PBackgroundTest.ipdl",
"PIdleScheduler.ipdl",
"ProtocolTypes.ipdlh",
"PUtilityAudioDecoder.ipdl",
"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")