Files
tubestation/toolkit/components/nimbus/moz.build
Beth Rennie 38e4903161 Bug 1928107 - Add a targeting context ping to Nimbus r=chumphreys,TravisLong,ahochheiden
We now collect targeting attributes from the Nimbus targeting context
into a set of metrics under the `nimbus_targeting_context` category.
Additionally, we also collect information about the Nimbus targeting
context's environment, i.e., things that are not attributes in the
context but are available, e.g., through the `prefIsUserSet` or
`preferenceValue` filters, in the `nimbus_targeting_environment`
category. Any errors encountered in evaluating the attributes or getting
pref values are recorded in metrics in the targeting environment.
Finally, we also optionally report the entire contents of the
`nimbus_targeting_context` category as a stringified JSON blob in a
metric, which is disabled by default, to enable debugging of targeting
context errors in the field.

Tests have been added in `test_targeting_context_metrics.py` which will
generate a dump of the targeting context metadata (i.e., what fields and
prefs are present) and compare them to the contents of `metrics.yaml`,
which will ensure the metric and targeting context stay in sync.

This patch does not limit the actual targeting context of Nimbus to
these attributes. That will be completed in a follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D228908
2024-12-05 19:07:36 +00:00

56 lines
1.4 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/.
with Files("**"):
BUG_COMPONENT = ("Firefox", "Nimbus Desktop Client")
EXPORTS.mozilla.browser += ["!lib/NimbusFeatureManifest.h", "lib/NimbusFeatures.h"]
UNIFIED_SOURCES += [
"lib/NimbusFeatures.cpp",
]
# We expose NimbusFeatures to Android to make it easier to
# import everywhere but the tests will fail to run
if CONFIG["OS_TARGET"] != "Android":
TEST_DIRS += [
"test/gtest",
]
BROWSER_CHROME_MANIFESTS += [
"test/browser/browser.toml",
]
PYTHON_UNITTEST_MANIFESTS += [
"test/python/python.toml",
]
XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.toml"]
SPHINX_TREES["docs"] = "docs"
TESTING_JS_MODULES += [
"test/NimbusTestUtils.sys.mjs",
]
GeneratedFile(
"FeatureManifest.sys.mjs",
script="generate/generate_feature_manifest.py",
entry_point="generate_feature_manifest",
inputs=["./FeatureManifest.yaml"],
)
GeneratedFile(
"lib/NimbusFeatureManifest.h",
script="generate/generate_feature_manifest.py",
entry_point="generate_platform_feature_manifest",
inputs=["./FeatureManifest.yaml"],
)
FINAL_LIBRARY = "xul"
JAR_MANIFESTS += ["jar.mn"]