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
with Files("**"):
BUG_COMPONENT = ("Core", "DOM: Content Processes")
DIRS += ["jsactor"]
TEST_DIRS += ["gtest"]
XPIDL_SOURCES += [
"nsIDOMProcessChild.idl",
"nsIDOMProcessParent.idl",
"nsIHangReport.idl",
"nsILoginDetectionService.idl",
]
XPIDL_MODULE = "dom"
XPCOM_MANIFESTS += [
"components.conf",
]
EXTRA_JS_MODULES += [
"ManifestMessagesChild.sys.mjs",
]
EXPORTS.mozilla.dom.ipc += [
"IdType.h",
"MemMapSnapshot.h",
"SharedMap.h",
"SharedMapChangeEvent.h",
"SharedStringMap.h",
"StringTable.h",
"StructuredCloneData.h",
]
EXPORTS.mozilla.dom += [
"BrowserBridgeChild.h",
"BrowserBridgeHost.h",
"BrowserBridgeParent.h",
"BrowserChild.h",
"BrowserHost.h",
"BrowserParent.h",
"ClonedErrorHolder.h",
"CoalescedInputData.h",
"CoalescedMouseData.h",
"CoalescedTouchData.h",
"CoalescedWheelData.h",
"ContentChild.h",
"ContentParent.h",
"ContentParent_NotifyUpdatedDictionaries.h",
"ContentProcess.h",
"ContentProcessManager.h",
"CSPMessageUtils.h",
"DocShellMessageUtils.h",
"EffectsInfo.h",
"FilePickerMessageUtils.h",
"FilePickerParent.h",
"InProcessChild.h",
"InProcessParent.h",
"JSOracleChild.h",
"JSOracleParent.h",
"JSValidatorChild.h",
"JSValidatorParent.h",
"JSValidatorUtils.h",
"LoginDetectionService.h",
"MaybeDiscarded.h",
"MemoryReportRequest.h",
"NativeThreadId.h",
"PageLoadEventUtils.h",
"PermissionMessageUtils.h",
"ProcessActor.h",
"ProcessIsolation.h",
"PropertyBagUtils.h",
"ReferrerInfoUtils.h",
"RefMessageBodyService.h",
"RemoteBrowser.h",
"RemoteType.h",
"RemoteWebProgressRequest.h",
"SharedMessageBody.h",
"TabContext.h",
"TabMessageTypes.h",
"TabMessageUtils.h",
"UniqueContentParentKeepAlive.h",
"URLClassifierChild.h",
"URLClassifierParent.h",
"UserActivationIPCUtils.h",
"VsyncChild.h",
"VsyncMainChild.h",
"VsyncParent.h",
"VsyncWorkerChild.h",
"WindowGlobalActor.h",
"WindowGlobalChild.h",
"WindowGlobalParent.h",
]
EXPORTS.mozilla += [
"PreallocatedProcessManager.h",
"ProcessHangMonitor.h",
"ProcessHangMonitorIPC.h",
"ProcessPriorityManager.h",
]
UNIFIED_SOURCES += [
"BrowserBridgeChild.cpp",
"BrowserBridgeHost.cpp",
"BrowserBridgeParent.cpp",
"BrowserChild.cpp",
"BrowserHost.cpp",
"BrowserParent.cpp",
"ClonedErrorHolder.cpp",
"CoalescedInputData.cpp",
"CoalescedMouseData.cpp",
"CoalescedTouchData.cpp",
"CoalescedWheelData.cpp",
"ColorPickerParent.cpp",
"ContentParent.cpp",
"ContentProcess.cpp",
"ContentProcessManager.cpp",
"CSPMessageUtils.cpp",
"DocShellMessageUtils.cpp",
"FilePickerParent.cpp",
"InProcessImpl.cpp",
"JSOracleChild.cpp",
"JSOracleParent.cpp",
"JSValidatorChild.cpp",
"JSValidatorParent.cpp",
"JSValidatorUtils.cpp",
"LoginDetectionService.cpp",
"MemMapSnapshot.cpp",
"MemoryReportRequest.cpp",
"MMPrinter.cpp",
"PermissionMessageUtils.cpp",
"PreallocatedProcessManager.cpp",
"ProcessActor.cpp",
"ProcessIsolation.cpp",
"ProcessPriorityManager.cpp",
"PropertyBagUtils.cpp",
"ReferrerInfoUtils.cpp",
"RefMessageBodyService.cpp",
"RemoteBrowser.cpp",
"RemoteWebProgressRequest.cpp",
"SharedMap.cpp",
"SharedMessageBody.cpp",
"SharedStringMap.cpp",
"StructuredCloneData.cpp",
"TabContext.cpp",
"UniqueContentParentKeepAlive.cpp",
"URLClassifierParent.cpp",
"WindowGlobalActor.cpp",
"WindowGlobalChild.cpp",
"WindowGlobalParent.cpp",
]
# ContentChild.cpp cannot be compiled in unified mode on linux due to Time conflict
SOURCES += [
"ContentChild.cpp",
"ProcessHangMonitor.cpp",
"VsyncMainChild.cpp",
"VsyncParent.cpp",
"VsyncWorkerChild.cpp",
]
PREPROCESSED_IPDL_SOURCES += [
"PBrowser.ipdl",
"PBrowserBridge.ipdl",
"PContent.ipdl",
]
IPDL_SOURCES += [
"CustomElementTypes.ipdlh",
"DOMTypes.ipdlh",
"IPCTransferable.ipdlh",
"MemoryReportTypes.ipdlh",
"PColorPicker.ipdl",
"PContentPermission.ipdlh",
"PContentPermissionRequest.ipdl",
"PCycleCollectWithLogs.ipdl",
"PFilePicker.ipdl",
"PInProcess.ipdl",
"PJSOracle.ipdl",
"PJSValidator.ipdl",
"PProcessHangMonitor.ipdl",
"PrefsTypes.ipdlh",
"PTabContext.ipdlh",
"PURLClassifier.ipdl",
"PURLClassifierInfo.ipdlh",
"PURLClassifierLocal.ipdl",
"PVsync.ipdl",
"PWindowGlobal.ipdl",
"ServiceWorkerConfiguration.ipdlh",
"WindowGlobalTypes.ipdlh",
]
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
if CONFIG["MOZ_SANDBOX"] and (CONFIG["OS_TARGET"] in ["Darwin", "Linux"]):
USE_LIBS += [
"mozsandbox",
]
LOCAL_INCLUDES += [
"/caps",
"/chrome",
"/docshell/base",
"/dom/base",
"/dom/bindings",
"/dom/events",
"/dom/filesystem",
"/dom/geolocation",
"/dom/media/webrtc",
"/dom/media/webspeech/synth/ipc",
"/dom/security",
"/dom/storage",
"/extensions/spellcheck/src",
"/gfx/2d",
"/hal/sandbox",
"/js/xpconnect/loader",
"/js/xpconnect/src",
"/layout/base",
"/media/webrtc",
"/netwerk/base",
"/netwerk/dns",
"/netwerk/protocol/http",
"/toolkit/components/printingui/ipc",
"/toolkit/crashreporter",
"/toolkit/xre",
"/uriloader/exthandler",
"/widget",
"/xpcom/base",
"/xpcom/threads",
]
if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "WINNT":
LOCAL_INCLUDES += [
"/security/sandbox/chromium",
"/security/sandbox/chromium-shim",
]
if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "OpenBSD":
LOCAL_INCLUDES += [
"/xpcom/build",
]
if CONFIG["OS_ARCH"] != "WINNT":
LOCAL_INCLUDES += [
"/modules/libjar",
]
DEFINES["BIN_SUFFIX"] = '"%s"' % CONFIG["BIN_SUFFIX"]
DEFINES["MOZ_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
DEFINES["MOZ_ENABLE_FREETYPE"] = True
BROWSER_CHROME_MANIFESTS += [
"tests/browser.toml",
"tests/JSProcessActor/browser.toml",
"tests/JSWindowActor/browser.toml",
]
MOCHITEST_CHROME_MANIFESTS += ["tests/chrome.toml"]
MOCHITEST_MANIFESTS += ["tests/mochitest.toml"]
XPCSHELL_TESTS_MANIFESTS += ["tests/xpcshell.toml"]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
# Add libFuzzer configuration directives
include("/tools/fuzzing/libfuzzer-config.mozbuild")