Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/toolkit/components/telemetry/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 6 kB image not shown  

Quelle  moz.build   Sprache: unbekannt

 
# -*- 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/DAPTelemetrySender.sys.mjs",
    "dap/DAPVisitCounter.sys.mjs",
    "pings/CoveragePing.sys.mjs",
    "pings/EventPing.sys.mjs",
    "pings/HealthPing.sys.mjs",
    "pings/ModulesPing.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")

[ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ]