271 lines
6.8 KiB
Python
271 lines
6.8 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("/ipc/chromium/chromium-config.mozbuild")
|
|
|
|
FINAL_LIBRARY = "xul"
|
|
|
|
DIRS = [
|
|
"pingsender",
|
|
]
|
|
|
|
if CONFIG["COMPILE_ENVIRONMENT"]:
|
|
EXPORTS.mozilla += ["!dap_ffi_generated.h"]
|
|
|
|
CbindgenHeader("dap_ffi_generated.h", inputs=["dap/ffi"])
|
|
|
|
DEFINES["MOZ_APP_VERSION"] = '"%s"' % CONFIG["MOZ_APP_VERSION"]
|
|
|
|
LOCAL_INCLUDES += [
|
|
"/xpcom/build",
|
|
"/xpcom/threads",
|
|
]
|
|
|
|
SPHINX_TREES["/toolkit/components/telemetry"] = "docs"
|
|
|
|
with Files("docs/**"):
|
|
SCHEDULES.exclusive = ["docs"]
|
|
|
|
if CONFIG["ENABLE_TESTS"]:
|
|
DIRS += ["tests/gtest"]
|
|
|
|
TEST_DIRS += ["tests", "dap/ffi-gtest"]
|
|
|
|
XPCSHELL_TESTS_MANIFESTS += [
|
|
"dap/tests/xpcshell/xpcshell.toml",
|
|
"tests/unit/xpcshell.toml",
|
|
]
|
|
BROWSER_CHROME_MANIFESTS += ["tests/browser/browser.toml"]
|
|
|
|
XPIDL_SOURCES += [
|
|
"core/nsITelemetry.idl",
|
|
"dap/nsIDAPTelemetry.idl",
|
|
]
|
|
|
|
XPIDL_MODULE = "telemetry"
|
|
|
|
EXPORTS.mozilla += [
|
|
"!TelemetryEventEnums.h",
|
|
"!TelemetryHistogramEnums.h",
|
|
"!TelemetryProcessEnums.h",
|
|
"!TelemetryScalarEnums.h",
|
|
"core/ipc/TelemetryComms.h",
|
|
"core/ipc/TelemetryIPC.h",
|
|
"core/Telemetry.h",
|
|
"dap/DAPTelemetry.h",
|
|
"dap/DAPTelemetryBindings.h",
|
|
"other/CombinedStacks.h",
|
|
"other/ProcessedStack.h",
|
|
]
|
|
|
|
EXPORTS.mozilla.telemetry += [
|
|
"core/Stopwatch.h",
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
"core/Stopwatch.cpp",
|
|
"core/Telemetry.cpp",
|
|
"core/TelemetryCommon.cpp",
|
|
"core/TelemetryEvent.cpp",
|
|
"core/TelemetryHistogram.cpp",
|
|
"core/TelemetryScalar.cpp",
|
|
"core/TelemetryUserInteraction.cpp",
|
|
"dap/DAPTelemetry.cpp",
|
|
"other/CombinedStacks.cpp",
|
|
"other/ProcessedStack.cpp",
|
|
"other/TelemetryIOInterposeObserver.cpp",
|
|
]
|
|
|
|
# Android and iOS don't support Legacy Telemetry.
|
|
if CONFIG["MOZ_WIDGET_TOOLKIT"] not in ("android", "uikit"):
|
|
UNIFIED_SOURCES += [
|
|
"core/ipc/TelemetryIPC.cpp",
|
|
"core/ipc/TelemetryIPCAccumulator.cpp",
|
|
]
|
|
else:
|
|
UNIFIED_SOURCES += [
|
|
"core/ipc/TelemetryIPCAccumulatorStub.cpp",
|
|
"core/ipc/TelemetryIPCStub.cpp",
|
|
]
|
|
|
|
if CONFIG["OS_ARCH"] == "WINNT":
|
|
UNIFIED_SOURCES += [
|
|
"other/UntrustedModules.cpp",
|
|
"other/UntrustedModulesBackupService.cpp",
|
|
"other/UntrustedModulesDataSerializer.cpp",
|
|
]
|
|
|
|
XPCOM_MANIFESTS += [
|
|
"components.conf",
|
|
"core/components.conf",
|
|
"dap/components.conf",
|
|
]
|
|
|
|
EXTRA_COMPONENTS += ["TelemetryStartup.manifest"]
|
|
|
|
EXTRA_JS_MODULES += [
|
|
"app/ClientID.sys.mjs",
|
|
"app/TelemetryArchive.sys.mjs",
|
|
"app/TelemetryController.sys.mjs",
|
|
"app/TelemetryControllerBase.sys.mjs",
|
|
"app/TelemetryControllerContent.sys.mjs",
|
|
"app/TelemetryControllerParent.sys.mjs",
|
|
"app/TelemetryEnvironment.sys.mjs",
|
|
"app/TelemetryReportingPolicy.sys.mjs",
|
|
"app/TelemetryScheduler.sys.mjs",
|
|
"app/TelemetrySend.sys.mjs",
|
|
"app/TelemetryStorage.sys.mjs",
|
|
"app/TelemetryTimestamps.sys.mjs",
|
|
"app/TelemetryUtils.sys.mjs",
|
|
"app/UsageReporting.sys.mjs",
|
|
"dap/DAPReportController.sys.mjs",
|
|
"dap/DAPTelemetrySender.sys.mjs",
|
|
"dap/DAPVisitCounter.sys.mjs",
|
|
"pings/CoveragePing.sys.mjs",
|
|
"pings/EventPing.sys.mjs",
|
|
"pings/HealthPing.sys.mjs",
|
|
"pings/TelemetrySession.sys.mjs",
|
|
"pings/UntrustedModulesPing.sys.mjs",
|
|
"pings/UpdatePing.sys.mjs",
|
|
"TelemetryStartup.sys.mjs",
|
|
]
|
|
|
|
EXTRA_JS_MODULES.backgroundtasks += [
|
|
"pings/BackgroundTask_pingsender.sys.mjs",
|
|
]
|
|
|
|
if CONFIG["OS_ARCH"] == "WINNT":
|
|
EXTRA_JS_MODULES += [
|
|
"pings/UninstallPing.sys.mjs",
|
|
]
|
|
|
|
TESTING_JS_MODULES += [
|
|
"tests/unit/TelemetryArchiveTesting.sys.mjs",
|
|
"tests/unit/TelemetryEnvironmentTesting.sys.mjs",
|
|
]
|
|
|
|
PYTHON_UNITTEST_MANIFESTS += [
|
|
"tests/integration/tests/python.toml",
|
|
"tests/python/python.toml",
|
|
]
|
|
|
|
# Generate histogram files.
|
|
histogram_files = [
|
|
"Histograms.json",
|
|
]
|
|
if CONFIG["MOZ_TELEMETRY_EXTRA_HISTOGRAM_FILES"]:
|
|
histogram_files.extend(CONFIG["MOZ_TELEMETRY_EXTRA_HISTOGRAM_FILES"])
|
|
|
|
GeneratedFile(
|
|
"TelemetryHistogramData.inc",
|
|
script="build_scripts/gen_histogram_data.py",
|
|
inputs=histogram_files,
|
|
)
|
|
GeneratedFile(
|
|
"TelemetryHistogramEnums.h",
|
|
script="build_scripts/gen_histogram_enum.py",
|
|
inputs=histogram_files,
|
|
)
|
|
GeneratedFile(
|
|
"TelemetryHistogramNameMap.h",
|
|
script="build_scripts/gen_histogram_phf.py",
|
|
inputs=histogram_files,
|
|
)
|
|
|
|
# Generate scalar files.
|
|
scalar_files = [
|
|
"Scalars.yaml",
|
|
]
|
|
if CONFIG["MOZ_TELEMETRY_EXTRA_SCALAR_FILES"]:
|
|
scalar_files.extend(CONFIG["MOZ_TELEMETRY_EXTRA_SCALAR_FILES"])
|
|
|
|
GeneratedFile(
|
|
"TelemetryScalarData.h",
|
|
script="build_scripts/gen_scalar_data.py",
|
|
inputs=scalar_files,
|
|
)
|
|
GeneratedFile(
|
|
"TelemetryScalarEnums.h",
|
|
script="build_scripts/gen_scalar_enum.py",
|
|
inputs=scalar_files,
|
|
)
|
|
|
|
# Generate the JSON scalar definitions. They will only be
|
|
# used in artifact or "build faster" builds.
|
|
GeneratedFile(
|
|
"ScalarArtifactDefinitions.json",
|
|
script="build_scripts/gen_scalar_data.py",
|
|
entry_point="generate_JSON_definitions",
|
|
inputs=scalar_files,
|
|
)
|
|
|
|
# Move the scalars JSON file to the directory where the Firefox binary is.
|
|
FINAL_TARGET_FILES += ["!ScalarArtifactDefinitions.json"]
|
|
|
|
# Generate event files.
|
|
event_files = [
|
|
"Events.yaml",
|
|
]
|
|
if CONFIG["MOZ_TELEMETRY_EXTRA_EVENT_FILES"]:
|
|
event_files.extend(CONFIG["MOZ_TELEMETRY_EXTRA_EVENT_FILES"])
|
|
|
|
GeneratedFile(
|
|
"TelemetryEventData.h", script="build_scripts/gen_event_data.py", inputs=event_files
|
|
)
|
|
|
|
GeneratedFile(
|
|
"TelemetryEventEnums.h",
|
|
script="build_scripts/gen_event_enum.py",
|
|
inputs=event_files,
|
|
)
|
|
|
|
# Generate the JSON event definitions. They will only be
|
|
# used in artifact or "build faster" builds.
|
|
GeneratedFile(
|
|
"EventArtifactDefinitions.json",
|
|
script="build_scripts/gen_event_data.py",
|
|
entry_point="generate_JSON_definitions",
|
|
inputs=event_files,
|
|
)
|
|
|
|
# Move the events JSON file to the directory where the Firefox binary is.
|
|
FINAL_TARGET_FILES += ["!EventArtifactDefinitions.json"]
|
|
|
|
# Generate data from Processes.yaml
|
|
processes_files = [
|
|
"Processes.yaml",
|
|
]
|
|
|
|
GeneratedFile(
|
|
"TelemetryProcessEnums.h",
|
|
script="build_scripts/gen_process_enum.py",
|
|
inputs=processes_files,
|
|
)
|
|
|
|
|
|
GeneratedFile(
|
|
"TelemetryProcessData.h",
|
|
script="build_scripts/gen_process_data.py",
|
|
inputs=processes_files,
|
|
)
|
|
|
|
# Generate UserInteraction file
|
|
userinteraction_files = [
|
|
"UserInteractions.yaml",
|
|
]
|
|
GeneratedFile(
|
|
"TelemetryUserInteractionData.h",
|
|
script="build_scripts/gen_userinteraction_data.py",
|
|
inputs=userinteraction_files,
|
|
)
|
|
GeneratedFile(
|
|
"TelemetryUserInteractionNameMap.h",
|
|
script="build_scripts/gen_userinteraction_phf.py",
|
|
inputs=userinteraction_files,
|
|
)
|
|
|
|
with Files("**"):
|
|
BUG_COMPONENT = ("Toolkit", "Telemetry")
|