mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-12 00:50:40 +00:00
0308ac11a4
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
289 lines
7.0 KiB
Python
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")
|