From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- toolkit/components/telemetry/Events.yaml | 4232 +++++ toolkit/components/telemetry/Histograms.json | 17633 +++++++++++++++++++ toolkit/components/telemetry/Makefile.in | 13 + toolkit/components/telemetry/Processes.yaml | 40 + toolkit/components/telemetry/Scalars.yaml | 9785 ++++++++++ .../components/telemetry/TelemetryStartup.manifest | 1 + .../components/telemetry/TelemetryStartup.sys.mjs | 44 + toolkit/components/telemetry/UserInteractions.yaml | 37 + toolkit/components/telemetry/app/ClientID.sys.mjs | 372 + .../telemetry/app/TelemetryArchive.sys.mjs | 121 + .../telemetry/app/TelemetryController.sys.mjs | 41 + .../telemetry/app/TelemetryControllerBase.sys.mjs | 141 + .../app/TelemetryControllerContent.sys.mjs | 84 + .../app/TelemetryControllerParent.sys.mjs | 1413 ++ .../telemetry/app/TelemetryEnvironment.sys.mjs | 2134 +++ .../telemetry/app/TelemetryReportingPolicy.sys.mjs | 587 + .../telemetry/app/TelemetryScheduler.sys.mjs | 422 + .../components/telemetry/app/TelemetrySend.sys.mjs | 1701 ++ .../telemetry/app/TelemetryStorage.sys.mjs | 2208 +++ .../telemetry/app/TelemetryTimestamps.sys.mjs | 53 + .../telemetry/app/TelemetryUtils.sys.mjs | 282 + .../components/telemetry/build_scripts/README.md | 5 + .../telemetry/build_scripts/gen_event_data.py | 227 + .../telemetry/build_scripts/gen_event_enum.py | 81 + .../telemetry/build_scripts/gen_histogram_data.py | 297 + .../telemetry/build_scripts/gen_histogram_enum.py | 94 + .../telemetry/build_scripts/gen_histogram_phf.py | 73 + .../telemetry/build_scripts/gen_process_data.py | 80 + .../telemetry/build_scripts/gen_process_enum.py | 69 + .../telemetry/build_scripts/gen_scalar_data.py | 216 + .../telemetry/build_scripts/gen_scalar_enum.py | 60 + .../build_scripts/gen_userinteraction_data.py | 105 + .../build_scripts/gen_userinteraction_phf.py | 70 + .../telemetry/build_scripts/mozparsers/__init__.py | 3 + .../build_scripts/mozparsers/parse_events.py | 477 + .../build_scripts/mozparsers/parse_histograms.py | 836 + .../build_scripts/mozparsers/parse_scalars.py | 503 + .../mozparsers/parse_user_interactions.py | 256 + .../mozparsers/shared_telemetry_utils.py | 185 + .../telemetry/build_scripts/run_glean_parser.py | 17 + .../components/telemetry/build_scripts/setup.py | 32 + toolkit/components/telemetry/components.conf | 23 + toolkit/components/telemetry/core/EventInfo.h | 57 + toolkit/components/telemetry/core/ScalarInfo.h | 94 + toolkit/components/telemetry/core/Stopwatch.cpp | 752 + toolkit/components/telemetry/core/Stopwatch.h | 84 + toolkit/components/telemetry/core/Telemetry.cpp | 2035 +++ toolkit/components/telemetry/core/Telemetry.h | 577 + .../components/telemetry/core/TelemetryCommon.cpp | 209 + .../components/telemetry/core/TelemetryCommon.h | 198 + .../components/telemetry/core/TelemetryEvent.cpp | 1387 ++ toolkit/components/telemetry/core/TelemetryEvent.h | 71 + .../telemetry/core/TelemetryHistogram.cpp | 3677 ++++ .../components/telemetry/core/TelemetryHistogram.h | 124 + .../components/telemetry/core/TelemetryScalar.cpp | 4190 +++++ .../components/telemetry/core/TelemetryScalar.h | 133 + .../telemetry/core/TelemetryUserInteraction.cpp | 101 + .../telemetry/core/TelemetryUserInteraction.h | 20 + .../telemetry/core/UserInteractionInfo.h | 30 + toolkit/components/telemetry/core/components.conf | 21 + .../components/telemetry/core/ipc/TelemetryComms.h | 400 + .../components/telemetry/core/ipc/TelemetryIPC.cpp | 59 + .../components/telemetry/core/ipc/TelemetryIPC.h | 114 + .../telemetry/core/ipc/TelemetryIPCAccumulator.cpp | 351 + .../telemetry/core/ipc/TelemetryIPCAccumulator.h | 56 + toolkit/components/telemetry/core/nsITelemetry.idl | 680 + toolkit/components/telemetry/dap/DAPTelemetry.cpp | 223 + toolkit/components/telemetry/dap/DAPTelemetry.h | 25 + .../telemetry/dap/DAPTelemetryBindings.h | 11 + .../telemetry/dap/DAPTelemetrySender.sys.mjs | 335 + .../telemetry/dap/DAPVisitCounter.sys.mjs | 160 + toolkit/components/telemetry/dap/components.conf | 10 + .../components/telemetry/dap/ffi-gtest/Cargo.toml | 20 + .../telemetry/dap/ffi-gtest/TestDAPTelemetry.cpp | 19 + .../components/telemetry/dap/ffi-gtest/moz.build | 6 + toolkit/components/telemetry/dap/ffi-gtest/test.rs | 204 + toolkit/components/telemetry/dap/ffi/Cargo.toml | 13 + toolkit/components/telemetry/dap/ffi/cbindgen.toml | 11 + toolkit/components/telemetry/dap/ffi/src/lib.rs | 335 + toolkit/components/telemetry/dap/ffi/src/types.rs | 358 + toolkit/components/telemetry/dap/metrics.yaml | 54 + .../components/telemetry/dap/nsIDAPTelemetry.idl | 37 + .../telemetry/dap/tests/xpcshell/test_dap.js | 149 + .../telemetry/dap/tests/xpcshell/xpcshell.toml | 4 + .../telemetry/docs/collection/custom-pings.rst | 80 + .../telemetry/docs/collection/events.rst | 349 + .../telemetry/docs/collection/experiments.rst | 41 + .../telemetry/docs/collection/histograms.rst | 410 + .../components/telemetry/docs/collection/index.rst | 48 + .../telemetry/docs/collection/measuring-time.rst | 116 + .../telemetry/docs/collection/sampleHistogram.png | Bin 0 -> 2825 bytes .../telemetry/docs/collection/scalars.rst | 326 + .../telemetry/docs/collection/uptake.rst | 114 + .../docs/collection/user-interactions.rst | 272 + .../telemetry/docs/collection/webextension-api.rst | 158 + .../telemetry/docs/concepts/archiving.rst | 23 + .../components/telemetry/docs/concepts/crashes.rst | 25 + .../components/telemetry/docs/concepts/index.rst | 23 + .../components/telemetry/docs/concepts/pings.rst | 29 + .../telemetry/docs/concepts/sessions.rst | 37 + .../telemetry/docs/concepts/submission.rst | 42 + .../docs/concepts/subsession_triggers.png | Bin 0 -> 857375 bytes .../telemetry/docs/data/addons-malware-ping.rst | 42 + .../telemetry/docs/data/anonymous-ping.rst | 68 + .../docs/data/backgroundhangmonitor-ping.rst | 162 + .../components/telemetry/docs/data/common-ping.rst | 42 + .../telemetry/docs/data/coverage-ping.rst | 40 + .../components/telemetry/docs/data/crash-ping.rst | 264 + .../telemetry/docs/data/default-browser-ping.rst | 99 + .../telemetry/docs/data/deletion-request-ping.rst | 68 + .../telemetry/docs/data/downgrade-ping.rst | 30 + .../components/telemetry/docs/data/environment.rst | 622 + .../components/telemetry/docs/data/event-ping.rst | 92 + .../telemetry/docs/data/first-shutdown-ping.rst | 11 + .../components/telemetry/docs/data/health-ping.rst | 92 + .../telemetry/docs/data/heartbeat-ping.rst | 62 + toolkit/components/telemetry/docs/data/index.rst | 19 + .../telemetry/docs/data/install-ping.rst | 234 + .../docs/data/launcher-process-failure-ping.rst | 96 + .../components/telemetry/docs/data/main-ping.rst | 504 + .../telemetry/docs/data/modules-ping.rst | 46 + .../telemetry/docs/data/new-profile-ping.rst | 83 + .../telemetry/docs/data/pioneer-study.rst | 58 + .../components/telemetry/docs/data/sync-ping.rst | 357 + .../docs/data/third-party-modules-ping.rst | 135 + .../components/telemetry/docs/data/uitour-ping.rst | 25 + .../telemetry/docs/data/uninstall-ping.rst | 36 + .../components/telemetry/docs/data/update-ping.rst | 79 + .../docs/data/xfocsp-error-report-ping.rst | 69 + toolkit/components/telemetry/docs/index.rst | 31 + .../components/telemetry/docs/internals/index.rst | 25 + .../docs/internals/integration_tests/index.rst | 143 + .../telemetry/docs/internals/mentored-bugs.rst | 49 + .../telemetry/docs/internals/pingsender.rst | 36 + .../telemetry/docs/internals/preferences.rst | 280 + .../components/telemetry/docs/internals/review.rst | 144 + .../components/telemetry/docs/internals/tests.rst | 99 + .../telemetry/docs/obsolete/activation-ping.rst | 69 + .../telemetry/docs/obsolete/core-ping.rst | 510 + .../telemetry/docs/obsolete/deletion-ping.rst | 26 + .../docs/obsolete/ecosystem-telemetry.rst | 109 + .../telemetry/docs/obsolete/fhr/architecture.rst | 226 + .../telemetry/docs/obsolete/fhr/dataformat.rst | 1998 +++ .../telemetry/docs/obsolete/fhr/identifiers.rst | 83 + .../telemetry/docs/obsolete/fhr/index.rst | 34 + .../docs/obsolete/geckoview-streaming.rst | 26 + .../telemetry/docs/obsolete/hybrid-content.rst | 374 + .../components/telemetry/docs/obsolete/index.rst | 15 + .../telemetry/docs/obsolete/optout-ping.rst | 33 + .../telemetry/docs/obsolete/uitelemetry/index.rst | 146 + .../telemetry/docs/start/adding-a-new-probe.rst | 151 + toolkit/components/telemetry/docs/start/index.rst | 28 + .../docs/start/report-gecko-telemetry-in-glean.rst | 36 + .../geckoview/gtest/TestGeckoViewStreaming.cpp | 237 + .../components/telemetry/geckoview/gtest/moz.build | 28 + .../streaming/GeckoViewStreamingTelemetry.cpp | 282 + .../streaming/GeckoViewStreamingTelemetry.h | 55 + .../telemetry/geckoview/streaming/metrics.yaml | 13 + .../components/telemetry/histogram-allowlists.json | 941 + toolkit/components/telemetry/metrics.yaml | 44 + toolkit/components/telemetry/moz.build | 275 + .../components/telemetry/other/CombinedStacks.cpp | 257 + .../components/telemetry/other/CombinedStacks.h | 108 + .../components/telemetry/other/ProcessedStack.cpp | 188 + .../components/telemetry/other/ProcessedStack.h | 135 + .../other/TelemetryIOInterposeObserver.cpp | 182 + .../telemetry/other/TelemetryIOInterposeObserver.h | 116 + .../telemetry/other/UntrustedModules.cpp | 305 + .../components/telemetry/other/UntrustedModules.h | 31 + .../other/UntrustedModulesBackupService.cpp | 95 + .../other/UntrustedModulesBackupService.h | 73 + .../other/UntrustedModulesDataSerializer.cpp | 606 + .../other/UntrustedModulesDataSerializer.h | 84 + toolkit/components/telemetry/pings.yaml | 6 + .../pings/BackgroundTask_pingsender.sys.mjs | 41 + .../telemetry/pings/CoveragePing.sys.mjs | 154 + .../components/telemetry/pings/EventPing.sys.mjs | 241 + .../components/telemetry/pings/HealthPing.sys.mjs | 271 + .../components/telemetry/pings/ModulesPing.sys.mjs | 116 + .../telemetry/pings/TelemetrySession.sys.mjs | 1411 ++ .../telemetry/pings/UninstallPing.sys.mjs | 34 + .../telemetry/pings/UntrustedModulesPing.sys.mjs | 72 + .../components/telemetry/pings/UpdatePing.sys.mjs | 181 + toolkit/components/telemetry/pingsender/moz.build | 38 + .../components/telemetry/pingsender/pingsender.cpp | 228 + .../telemetry/pingsender/pingsender.exe.manifest | 19 + .../components/telemetry/pingsender/pingsender.h | 41 + .../pingsender/pingsender_unix_common.cpp | 301 + .../telemetry/pingsender/pingsender_win.cpp | 180 + .../telemetry/telemetry-constants.mozbuild | 7 + .../tests/addons/long-fields/manifest.json | 12 + .../tests/addons/restartless/manifest.json | 12 + .../tests/addons/signed-webext/.web-extension-id | 3 + .../addons/signed-webext/META-INF/manifest.mf | 7 + .../addons/signed-webext/META-INF/mozilla.rsa | Bin 0 -> 4193 bytes .../tests/addons/signed-webext/META-INF/mozilla.sf | 4 + .../tests/addons/signed-webext/manifest.json | 12 + .../telemetry/tests/addons/system/manifest.json | 13 + .../telemetry/tests/browser/browser.toml | 13 + .../tests/browser/browser_DynamicScalars.js | 247 + .../tests/browser/browser_UpdatePingSuccess.js | 166 + .../browser_media_element_in_page_scalar.js | 128 + .../telemetry/tests/browser/file_iframe.html | 9 + .../telemetry/tests/browser/file_media.html | 9 + .../components/telemetry/tests/browser/gizmo.mp4 | Bin 0 -> 455255 bytes .../telemetry/tests/gtest/TelemetryFixture.cpp | 31 + .../telemetry/tests/gtest/TelemetryFixture.h | 40 + .../telemetry/tests/gtest/TelemetryTestHelpers.cpp | 372 + .../telemetry/tests/gtest/TelemetryTestHelpers.h | 68 + .../telemetry/tests/gtest/TestCombinedStacks.cpp | 158 + .../telemetry/tests/gtest/TestCounters.cpp | 173 + .../telemetry/tests/gtest/TestEvents.cpp | 115 + .../telemetry/tests/gtest/TestHistograms.cpp | 891 + .../telemetry/tests/gtest/TestScalars.cpp | 622 + toolkit/components/telemetry/tests/gtest/moz.build | 29 + .../telemetry/tests/integration/tests/conftest.py | 321 + .../telemetry/tests/integration/tests/python.toml | 12 + .../tests/resources/helloworld/helloworld.html | 18 + .../tests/resources/helloworld/manifest.json | 12 + .../tests/test_deletion_request_ping.py | 64 + .../tests/integration/tests/test_event_ping.py | 50 + .../integration/tests/test_main_tab_scalars.py | 33 + .../tests/test_search_counts_across_sessions.py | 169 + .../tests/test_subsession_management.py | 147 + .../telemetry/tests/marionette/harness/MANIFEST.in | 3 + .../tests/marionette/harness/requirements.txt | 2 + .../telemetry/tests/marionette/harness/setup.py | 48 + .../harness/telemetry_harness/__init__.py | 3 + .../harness/telemetry_harness/fog_ping_filters.py | 31 + .../harness/telemetry_harness/fog_ping_server.py | 86 + .../harness/telemetry_harness/fog_testcase.py | 63 + .../harness/telemetry_harness/ping_filters.py | 75 + .../harness/telemetry_harness/ping_server.py | 77 + .../dynamic-probe-telemetry-extension-signed.xpi | Bin 0 -> 7965 bytes .../resources/helloworld/helloworld.html | 18 + .../resources/helloworld/manifest.json | 12 + .../marionette/harness/telemetry_harness/runner.py | 63 + .../harness/telemetry_harness/runtests.py | 15 + .../harness/telemetry_harness/testcase.py | 233 + .../telemetry/tests/marionette/mach_commands.py | 95 + .../telemetry/tests/marionette/moz.build | 11 + .../tests/marionette/tests/client/manifest.toml | 20 + .../tests/client/test_deletion_request_ping.py | 83 + .../marionette/tests/client/test_dynamic_probes.py | 26 + .../tests/client/test_fog_custom_ping.py | 24 + .../tests/client/test_fog_deletion_request_ping.py | 67 + .../tests/client/test_fog_user_activity.py | 46 + .../tests/client/test_main_tab_scalars.py | 54 + .../tests/client/test_shutdown_pings_succeed.py | 55 + .../tests/client/test_subsession_management.py | 147 + .../tests/client/test_unicode_encoding.py | 39 + .../telemetry/tests/marionette/tests/manifest.toml | 5 + .../tests/marionette/tests/unit/manifest.toml | 4 + .../tests/unit/test_ping_server_received_ping.py | 45 + .../components/telemetry/tests/modules-test.cpp | 27 + toolkit/components/telemetry/tests/moz.build | 25 + .../components/telemetry/tests/python/python.toml | 14 + .../tests/python/test_gen_event_data_json.py | 102 + .../tests/python/test_gen_scalar_data_json.py | 100 + .../tests/python/test_histogramtools_non_strict.py | 114 + .../tests/python/test_histogramtools_strict.py | 566 + .../telemetry/tests/python/test_parse_events.py | 166 + .../telemetry/tests/python/test_parse_scalars.py | 267 + .../tests/unit/TelemetryArchiveTesting.sys.mjs | 76 + .../tests/unit/TelemetryEnvironmentTesting.sys.mjs | 875 + .../tests/unit/data/search-extensions/engines.json | 14 + .../telemetrySearchIdentifier/manifest.json | 29 + toolkit/components/telemetry/tests/unit/engine.xml | 7 + .../tests/unit/file_UninstallPing.worker.js | 35 + toolkit/components/telemetry/tests/unit/head.js | 582 + .../telemetry/tests/unit/testNoPDB32.dll | Bin 0 -> 8704 bytes .../telemetry/tests/unit/testNoPDB64.dll | Bin 0 -> 10240 bytes .../telemetry/tests/unit/testNoPDBAArch64.dll | Bin 0 -> 1536 bytes .../telemetry/tests/unit/testUnicodePDB32.dll | Bin 0 -> 8704 bytes .../telemetry/tests/unit/testUnicodePDB64.dll | Bin 0 -> 10752 bytes .../telemetry/tests/unit/testUnicodePDBAArch64.dll | Bin 0 -> 7168 bytes .../telemetry/tests/unit/test_ChildEvents.js | 222 + .../telemetry/tests/unit/test_ChildHistograms.js | 333 + .../telemetry/tests/unit/test_ChildScalars.js | 241 + .../telemetry/tests/unit/test_CoveragePing.js | 118 + .../telemetry/tests/unit/test_EventPing.js | 280 + .../telemetry/tests/unit/test_HealthPing.js | 282 + .../tests/unit/test_MigratePendingPings.js | 153 + .../telemetry/tests/unit/test_ModulesPing.js | 297 + .../telemetry/tests/unit/test_PingAPI.js | 709 + .../telemetry/tests/unit/test_PingSender.js | 281 + .../telemetry/tests/unit/test_RDDScalars.js | 53 + .../telemetry/tests/unit/test_SocketScalars.js | 49 + .../tests/unit/test_SubsessionChaining.js | 286 + .../tests/unit/test_SyncPingIntegration.js | 65 + .../tests/unit/test_TelemetryAndroidEnvironment.js | 64 + .../unit/test_TelemetryChildEvents_buildFaster.js | 129 + .../tests/unit/test_TelemetryClientID_reset.js | 191 + .../tests/unit/test_TelemetryController.js | 1225 ++ .../tests/unit/test_TelemetryControllerBuildID.js | 74 + .../tests/unit/test_TelemetryControllerShutdown.js | 82 + .../tests/unit/test_TelemetryController_idle.js | 71 + .../tests/unit/test_TelemetryEnvironment.js | 1472 ++ .../tests/unit/test_TelemetryEnvironment_search.js | 398 + .../telemetry/tests/unit/test_TelemetryEvents.js | 1109 ++ .../tests/unit/test_TelemetryEvents_buildFaster.js | 463 + .../tests/unit/test_TelemetryFlagClear.js | 29 + .../tests/unit/test_TelemetryHistograms.js | 2073 +++ .../tests/unit/test_TelemetryLateWrites.js | 143 + .../tests/unit/test_TelemetryLockCount.js | 56 + .../tests/unit/test_TelemetryReportingPolicy.js | 399 + .../telemetry/tests/unit/test_TelemetryScalars.js | 1088 ++ .../unit/test_TelemetryScalars_buildFaster.js | 226 + .../unit/test_TelemetryScalars_impressionId.js | 48 + .../tests/unit/test_TelemetryScalars_multistore.js | 415 + .../telemetry/tests/unit/test_TelemetrySend.js | 1110 ++ .../tests/unit/test_TelemetrySendOldPings.js | 586 + .../telemetry/tests/unit/test_TelemetrySession.js | 2389 +++ .../test_TelemetrySession_abortedSessionQueued.js | 197 + .../unit/test_TelemetrySession_activeTicks.js | 126 + .../tests/unit/test_TelemetryStopwatch.js | 196 + .../tests/unit/test_TelemetryTimestamps.js | 79 + .../telemetry/tests/unit/test_TelemetryUtils.js | 46 + .../tests/unit/test_ThirdPartyModulesPing.js | 282 + .../telemetry/tests/unit/test_UninstallPing.js | 126 + .../telemetry/tests/unit/test_UserInteraction.js | 134 + .../tests/unit/test_UserInteraction_annotations.js | 470 + .../telemetry/tests/unit/test_UtilityScalars.js | 65 + .../telemetry/tests/unit/test_bug1555798.js | 48 + .../telemetry/tests/unit/test_client_id.js | 163 + .../telemetry/tests/unit/test_failover_retry.js | 263 + .../components/telemetry/tests/unit/xpcshell.toml | 183 + .../tests/utils/TelemetryTestUtils.sys.mjs | 430 + 328 files changed, 108468 insertions(+) create mode 100644 toolkit/components/telemetry/Events.yaml create mode 100644 toolkit/components/telemetry/Histograms.json create mode 100644 toolkit/components/telemetry/Makefile.in create mode 100644 toolkit/components/telemetry/Processes.yaml create mode 100644 toolkit/components/telemetry/Scalars.yaml create mode 100644 toolkit/components/telemetry/TelemetryStartup.manifest create mode 100644 toolkit/components/telemetry/TelemetryStartup.sys.mjs create mode 100644 toolkit/components/telemetry/UserInteractions.yaml create mode 100644 toolkit/components/telemetry/app/ClientID.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryArchive.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryController.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryControllerContent.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryControllerParent.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryScheduler.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetrySend.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryStorage.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryTimestamps.sys.mjs create mode 100644 toolkit/components/telemetry/app/TelemetryUtils.sys.mjs create mode 100644 toolkit/components/telemetry/build_scripts/README.md create mode 100644 toolkit/components/telemetry/build_scripts/gen_event_data.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_event_enum.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_histogram_data.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_histogram_enum.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_histogram_phf.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_process_data.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_process_enum.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_scalar_data.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_scalar_enum.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_userinteraction_data.py create mode 100644 toolkit/components/telemetry/build_scripts/gen_userinteraction_phf.py create mode 100644 toolkit/components/telemetry/build_scripts/mozparsers/__init__.py create mode 100644 toolkit/components/telemetry/build_scripts/mozparsers/parse_events.py create mode 100644 toolkit/components/telemetry/build_scripts/mozparsers/parse_histograms.py create mode 100644 toolkit/components/telemetry/build_scripts/mozparsers/parse_scalars.py create mode 100644 toolkit/components/telemetry/build_scripts/mozparsers/parse_user_interactions.py create mode 100644 toolkit/components/telemetry/build_scripts/mozparsers/shared_telemetry_utils.py create mode 100644 toolkit/components/telemetry/build_scripts/run_glean_parser.py create mode 100644 toolkit/components/telemetry/build_scripts/setup.py create mode 100644 toolkit/components/telemetry/components.conf create mode 100644 toolkit/components/telemetry/core/EventInfo.h create mode 100644 toolkit/components/telemetry/core/ScalarInfo.h create mode 100644 toolkit/components/telemetry/core/Stopwatch.cpp create mode 100644 toolkit/components/telemetry/core/Stopwatch.h create mode 100644 toolkit/components/telemetry/core/Telemetry.cpp create mode 100644 toolkit/components/telemetry/core/Telemetry.h create mode 100644 toolkit/components/telemetry/core/TelemetryCommon.cpp create mode 100644 toolkit/components/telemetry/core/TelemetryCommon.h create mode 100644 toolkit/components/telemetry/core/TelemetryEvent.cpp create mode 100644 toolkit/components/telemetry/core/TelemetryEvent.h create mode 100644 toolkit/components/telemetry/core/TelemetryHistogram.cpp create mode 100644 toolkit/components/telemetry/core/TelemetryHistogram.h create mode 100644 toolkit/components/telemetry/core/TelemetryScalar.cpp create mode 100644 toolkit/components/telemetry/core/TelemetryScalar.h create mode 100644 toolkit/components/telemetry/core/TelemetryUserInteraction.cpp create mode 100644 toolkit/components/telemetry/core/TelemetryUserInteraction.h create mode 100644 toolkit/components/telemetry/core/UserInteractionInfo.h create mode 100644 toolkit/components/telemetry/core/components.conf create mode 100644 toolkit/components/telemetry/core/ipc/TelemetryComms.h create mode 100644 toolkit/components/telemetry/core/ipc/TelemetryIPC.cpp create mode 100644 toolkit/components/telemetry/core/ipc/TelemetryIPC.h create mode 100644 toolkit/components/telemetry/core/ipc/TelemetryIPCAccumulator.cpp create mode 100644 toolkit/components/telemetry/core/ipc/TelemetryIPCAccumulator.h create mode 100644 toolkit/components/telemetry/core/nsITelemetry.idl create mode 100644 toolkit/components/telemetry/dap/DAPTelemetry.cpp create mode 100644 toolkit/components/telemetry/dap/DAPTelemetry.h create mode 100644 toolkit/components/telemetry/dap/DAPTelemetryBindings.h create mode 100644 toolkit/components/telemetry/dap/DAPTelemetrySender.sys.mjs create mode 100644 toolkit/components/telemetry/dap/DAPVisitCounter.sys.mjs create mode 100644 toolkit/components/telemetry/dap/components.conf create mode 100644 toolkit/components/telemetry/dap/ffi-gtest/Cargo.toml create mode 100644 toolkit/components/telemetry/dap/ffi-gtest/TestDAPTelemetry.cpp create mode 100644 toolkit/components/telemetry/dap/ffi-gtest/moz.build create mode 100644 toolkit/components/telemetry/dap/ffi-gtest/test.rs create mode 100644 toolkit/components/telemetry/dap/ffi/Cargo.toml create mode 100644 toolkit/components/telemetry/dap/ffi/cbindgen.toml create mode 100644 toolkit/components/telemetry/dap/ffi/src/lib.rs create mode 100644 toolkit/components/telemetry/dap/ffi/src/types.rs create mode 100644 toolkit/components/telemetry/dap/metrics.yaml create mode 100644 toolkit/components/telemetry/dap/nsIDAPTelemetry.idl create mode 100644 toolkit/components/telemetry/dap/tests/xpcshell/test_dap.js create mode 100644 toolkit/components/telemetry/dap/tests/xpcshell/xpcshell.toml create mode 100644 toolkit/components/telemetry/docs/collection/custom-pings.rst create mode 100644 toolkit/components/telemetry/docs/collection/events.rst create mode 100644 toolkit/components/telemetry/docs/collection/experiments.rst create mode 100644 toolkit/components/telemetry/docs/collection/histograms.rst create mode 100644 toolkit/components/telemetry/docs/collection/index.rst create mode 100644 toolkit/components/telemetry/docs/collection/measuring-time.rst create mode 100644 toolkit/components/telemetry/docs/collection/sampleHistogram.png create mode 100644 toolkit/components/telemetry/docs/collection/scalars.rst create mode 100644 toolkit/components/telemetry/docs/collection/uptake.rst create mode 100644 toolkit/components/telemetry/docs/collection/user-interactions.rst create mode 100644 toolkit/components/telemetry/docs/collection/webextension-api.rst create mode 100644 toolkit/components/telemetry/docs/concepts/archiving.rst create mode 100644 toolkit/components/telemetry/docs/concepts/crashes.rst create mode 100644 toolkit/components/telemetry/docs/concepts/index.rst create mode 100644 toolkit/components/telemetry/docs/concepts/pings.rst create mode 100644 toolkit/components/telemetry/docs/concepts/sessions.rst create mode 100644 toolkit/components/telemetry/docs/concepts/submission.rst create mode 100644 toolkit/components/telemetry/docs/concepts/subsession_triggers.png create mode 100644 toolkit/components/telemetry/docs/data/addons-malware-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/anonymous-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/backgroundhangmonitor-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/common-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/coverage-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/crash-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/default-browser-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/deletion-request-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/downgrade-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/environment.rst create mode 100644 toolkit/components/telemetry/docs/data/event-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/first-shutdown-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/health-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/heartbeat-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/index.rst create mode 100644 toolkit/components/telemetry/docs/data/install-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/launcher-process-failure-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/main-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/modules-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/new-profile-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/pioneer-study.rst create mode 100644 toolkit/components/telemetry/docs/data/sync-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/third-party-modules-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/uitour-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/uninstall-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/update-ping.rst create mode 100644 toolkit/components/telemetry/docs/data/xfocsp-error-report-ping.rst create mode 100644 toolkit/components/telemetry/docs/index.rst create mode 100644 toolkit/components/telemetry/docs/internals/index.rst create mode 100644 toolkit/components/telemetry/docs/internals/integration_tests/index.rst create mode 100644 toolkit/components/telemetry/docs/internals/mentored-bugs.rst create mode 100644 toolkit/components/telemetry/docs/internals/pingsender.rst create mode 100644 toolkit/components/telemetry/docs/internals/preferences.rst create mode 100644 toolkit/components/telemetry/docs/internals/review.rst create mode 100644 toolkit/components/telemetry/docs/internals/tests.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/activation-ping.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/core-ping.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/deletion-ping.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/ecosystem-telemetry.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/fhr/architecture.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/fhr/dataformat.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/fhr/identifiers.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/fhr/index.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/geckoview-streaming.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/hybrid-content.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/index.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/optout-ping.rst create mode 100644 toolkit/components/telemetry/docs/obsolete/uitelemetry/index.rst create mode 100644 toolkit/components/telemetry/docs/start/adding-a-new-probe.rst create mode 100644 toolkit/components/telemetry/docs/start/index.rst create mode 100644 toolkit/components/telemetry/docs/start/report-gecko-telemetry-in-glean.rst create mode 100644 toolkit/components/telemetry/geckoview/gtest/TestGeckoViewStreaming.cpp create mode 100644 toolkit/components/telemetry/geckoview/gtest/moz.build create mode 100644 toolkit/components/telemetry/geckoview/streaming/GeckoViewStreamingTelemetry.cpp create mode 100644 toolkit/components/telemetry/geckoview/streaming/GeckoViewStreamingTelemetry.h create mode 100644 toolkit/components/telemetry/geckoview/streaming/metrics.yaml create mode 100644 toolkit/components/telemetry/histogram-allowlists.json create mode 100644 toolkit/components/telemetry/metrics.yaml create mode 100644 toolkit/components/telemetry/moz.build create mode 100644 toolkit/components/telemetry/other/CombinedStacks.cpp create mode 100644 toolkit/components/telemetry/other/CombinedStacks.h create mode 100644 toolkit/components/telemetry/other/ProcessedStack.cpp create mode 100644 toolkit/components/telemetry/other/ProcessedStack.h create mode 100644 toolkit/components/telemetry/other/TelemetryIOInterposeObserver.cpp create mode 100644 toolkit/components/telemetry/other/TelemetryIOInterposeObserver.h create mode 100644 toolkit/components/telemetry/other/UntrustedModules.cpp create mode 100644 toolkit/components/telemetry/other/UntrustedModules.h create mode 100644 toolkit/components/telemetry/other/UntrustedModulesBackupService.cpp create mode 100644 toolkit/components/telemetry/other/UntrustedModulesBackupService.h create mode 100644 toolkit/components/telemetry/other/UntrustedModulesDataSerializer.cpp create mode 100644 toolkit/components/telemetry/other/UntrustedModulesDataSerializer.h create mode 100644 toolkit/components/telemetry/pings.yaml create mode 100644 toolkit/components/telemetry/pings/BackgroundTask_pingsender.sys.mjs create mode 100644 toolkit/components/telemetry/pings/CoveragePing.sys.mjs create mode 100644 toolkit/components/telemetry/pings/EventPing.sys.mjs create mode 100644 toolkit/components/telemetry/pings/HealthPing.sys.mjs create mode 100644 toolkit/components/telemetry/pings/ModulesPing.sys.mjs create mode 100644 toolkit/components/telemetry/pings/TelemetrySession.sys.mjs create mode 100644 toolkit/components/telemetry/pings/UninstallPing.sys.mjs create mode 100644 toolkit/components/telemetry/pings/UntrustedModulesPing.sys.mjs create mode 100644 toolkit/components/telemetry/pings/UpdatePing.sys.mjs create mode 100644 toolkit/components/telemetry/pingsender/moz.build create mode 100644 toolkit/components/telemetry/pingsender/pingsender.cpp create mode 100644 toolkit/components/telemetry/pingsender/pingsender.exe.manifest create mode 100644 toolkit/components/telemetry/pingsender/pingsender.h create mode 100644 toolkit/components/telemetry/pingsender/pingsender_unix_common.cpp create mode 100644 toolkit/components/telemetry/pingsender/pingsender_win.cpp create mode 100644 toolkit/components/telemetry/telemetry-constants.mozbuild create mode 100644 toolkit/components/telemetry/tests/addons/long-fields/manifest.json create mode 100644 toolkit/components/telemetry/tests/addons/restartless/manifest.json create mode 100644 toolkit/components/telemetry/tests/addons/signed-webext/.web-extension-id create mode 100644 toolkit/components/telemetry/tests/addons/signed-webext/META-INF/manifest.mf create mode 100644 toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.rsa create mode 100644 toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.sf create mode 100644 toolkit/components/telemetry/tests/addons/signed-webext/manifest.json create mode 100644 toolkit/components/telemetry/tests/addons/system/manifest.json create mode 100644 toolkit/components/telemetry/tests/browser/browser.toml create mode 100644 toolkit/components/telemetry/tests/browser/browser_DynamicScalars.js create mode 100644 toolkit/components/telemetry/tests/browser/browser_UpdatePingSuccess.js create mode 100644 toolkit/components/telemetry/tests/browser/browser_media_element_in_page_scalar.js create mode 100644 toolkit/components/telemetry/tests/browser/file_iframe.html create mode 100644 toolkit/components/telemetry/tests/browser/file_media.html create mode 100644 toolkit/components/telemetry/tests/browser/gizmo.mp4 create mode 100644 toolkit/components/telemetry/tests/gtest/TelemetryFixture.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/TelemetryFixture.h create mode 100644 toolkit/components/telemetry/tests/gtest/TelemetryTestHelpers.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/TelemetryTestHelpers.h create mode 100644 toolkit/components/telemetry/tests/gtest/TestCombinedStacks.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/TestCounters.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/TestEvents.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/TestHistograms.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/TestScalars.cpp create mode 100644 toolkit/components/telemetry/tests/gtest/moz.build create mode 100644 toolkit/components/telemetry/tests/integration/tests/conftest.py create mode 100644 toolkit/components/telemetry/tests/integration/tests/python.toml create mode 100644 toolkit/components/telemetry/tests/integration/tests/resources/helloworld/helloworld.html create mode 100644 toolkit/components/telemetry/tests/integration/tests/resources/helloworld/manifest.json create mode 100644 toolkit/components/telemetry/tests/integration/tests/test_deletion_request_ping.py create mode 100644 toolkit/components/telemetry/tests/integration/tests/test_event_ping.py create mode 100644 toolkit/components/telemetry/tests/integration/tests/test_main_tab_scalars.py create mode 100644 toolkit/components/telemetry/tests/integration/tests/test_search_counts_across_sessions.py create mode 100644 toolkit/components/telemetry/tests/integration/tests/test_subsession_management.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/MANIFEST.in create mode 100644 toolkit/components/telemetry/tests/marionette/harness/requirements.txt create mode 100644 toolkit/components/telemetry/tests/marionette/harness/setup.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/__init__.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_ping_filters.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_ping_server.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_testcase.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/ping_filters.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/ping_server.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/resources/dynamic_addon/dynamic-probe-telemetry-extension-signed.xpi create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/resources/helloworld/helloworld.html create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/resources/helloworld/manifest.json create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/runner.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/runtests.py create mode 100644 toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/testcase.py create mode 100644 toolkit/components/telemetry/tests/marionette/mach_commands.py create mode 100644 toolkit/components/telemetry/tests/marionette/moz.build create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/manifest.toml create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_deletion_request_ping.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_dynamic_probes.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_fog_custom_ping.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_fog_deletion_request_ping.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_fog_user_activity.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_main_tab_scalars.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_shutdown_pings_succeed.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_subsession_management.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/client/test_unicode_encoding.py create mode 100644 toolkit/components/telemetry/tests/marionette/tests/manifest.toml create mode 100644 toolkit/components/telemetry/tests/marionette/tests/unit/manifest.toml create mode 100644 toolkit/components/telemetry/tests/marionette/tests/unit/test_ping_server_received_ping.py create mode 100644 toolkit/components/telemetry/tests/modules-test.cpp create mode 100644 toolkit/components/telemetry/tests/moz.build create mode 100644 toolkit/components/telemetry/tests/python/python.toml create mode 100644 toolkit/components/telemetry/tests/python/test_gen_event_data_json.py create mode 100644 toolkit/components/telemetry/tests/python/test_gen_scalar_data_json.py create mode 100644 toolkit/components/telemetry/tests/python/test_histogramtools_non_strict.py create mode 100644 toolkit/components/telemetry/tests/python/test_histogramtools_strict.py create mode 100644 toolkit/components/telemetry/tests/python/test_parse_events.py create mode 100644 toolkit/components/telemetry/tests/python/test_parse_scalars.py create mode 100644 toolkit/components/telemetry/tests/unit/TelemetryArchiveTesting.sys.mjs create mode 100644 toolkit/components/telemetry/tests/unit/TelemetryEnvironmentTesting.sys.mjs create mode 100644 toolkit/components/telemetry/tests/unit/data/search-extensions/engines.json create mode 100644 toolkit/components/telemetry/tests/unit/data/search-extensions/telemetrySearchIdentifier/manifest.json create mode 100644 toolkit/components/telemetry/tests/unit/engine.xml create mode 100644 toolkit/components/telemetry/tests/unit/file_UninstallPing.worker.js create mode 100644 toolkit/components/telemetry/tests/unit/head.js create mode 100644 toolkit/components/telemetry/tests/unit/testNoPDB32.dll create mode 100644 toolkit/components/telemetry/tests/unit/testNoPDB64.dll create mode 100755 toolkit/components/telemetry/tests/unit/testNoPDBAArch64.dll create mode 100644 toolkit/components/telemetry/tests/unit/testUnicodePDB32.dll create mode 100644 toolkit/components/telemetry/tests/unit/testUnicodePDB64.dll create mode 100755 toolkit/components/telemetry/tests/unit/testUnicodePDBAArch64.dll create mode 100644 toolkit/components/telemetry/tests/unit/test_ChildEvents.js create mode 100644 toolkit/components/telemetry/tests/unit/test_ChildHistograms.js create mode 100644 toolkit/components/telemetry/tests/unit/test_ChildScalars.js create mode 100644 toolkit/components/telemetry/tests/unit/test_CoveragePing.js create mode 100644 toolkit/components/telemetry/tests/unit/test_EventPing.js create mode 100644 toolkit/components/telemetry/tests/unit/test_HealthPing.js create mode 100644 toolkit/components/telemetry/tests/unit/test_MigratePendingPings.js create mode 100644 toolkit/components/telemetry/tests/unit/test_ModulesPing.js create mode 100644 toolkit/components/telemetry/tests/unit/test_PingAPI.js create mode 100644 toolkit/components/telemetry/tests/unit/test_PingSender.js create mode 100644 toolkit/components/telemetry/tests/unit/test_RDDScalars.js create mode 100644 toolkit/components/telemetry/tests/unit/test_SocketScalars.js create mode 100644 toolkit/components/telemetry/tests/unit/test_SubsessionChaining.js create mode 100644 toolkit/components/telemetry/tests/unit/test_SyncPingIntegration.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryAndroidEnvironment.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryChildEvents_buildFaster.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryClientID_reset.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryController.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryControllerBuildID.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryControllerShutdown.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryController_idle.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment_search.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryEvents.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryEvents_buildFaster.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryFlagClear.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryHistograms.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryLateWrites.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryLockCount.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryReportingPolicy.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryScalars.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryScalars_buildFaster.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryScalars_impressionId.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryScalars_multistore.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetrySend.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetrySendOldPings.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetrySession.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetrySession_abortedSessionQueued.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetrySession_activeTicks.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryStopwatch.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryTimestamps.js create mode 100644 toolkit/components/telemetry/tests/unit/test_TelemetryUtils.js create mode 100644 toolkit/components/telemetry/tests/unit/test_ThirdPartyModulesPing.js create mode 100644 toolkit/components/telemetry/tests/unit/test_UninstallPing.js create mode 100644 toolkit/components/telemetry/tests/unit/test_UserInteraction.js create mode 100644 toolkit/components/telemetry/tests/unit/test_UserInteraction_annotations.js create mode 100644 toolkit/components/telemetry/tests/unit/test_UtilityScalars.js create mode 100644 toolkit/components/telemetry/tests/unit/test_bug1555798.js create mode 100644 toolkit/components/telemetry/tests/unit/test_client_id.js create mode 100644 toolkit/components/telemetry/tests/unit/test_failover_retry.js create mode 100644 toolkit/components/telemetry/tests/unit/xpcshell.toml create mode 100644 toolkit/components/telemetry/tests/utils/TelemetryTestUtils.sys.mjs (limited to 'toolkit/components/telemetry') diff --git a/toolkit/components/telemetry/Events.yaml b/toolkit/components/telemetry/Events.yaml new file mode 100644 index 0000000000..4fc7482a77 --- /dev/null +++ b/toolkit/components/telemetry/Events.yaml @@ -0,0 +1,4232 @@ +# 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/. + +partner_link: + click: + objects: ["newtab", "urlbar"] + release_channel_collection: opt-out + products: + - "firefox" + record_in_processes: ["main"] + description: > + This is recorded when clicking a partner link. The value is the partner. + bug_numbers: [1637217, 1644442, 1643426] + notification_emails: + - "dao@mozilla.com" + expiry_version: never + attribution: + objects: ["success", "failure", "abort"] + release_channel_collection: opt-out + products: + - "firefox" + record_in_processes: ["main"] + description: > + This is recorded when sending an attribution request for a partner link. The value is the partner. + bug_numbers: [1637217, 1644442, 1643426] + notification_emails: + - "dao@mozilla.com" + expiry_version: never + +activity_stream: + event: + objects: [ + "ARCHIVE_FROM_POCKET", + "BLOCK", + "BOOKMARK_ADD", + "BOOKMARK_DELETE", + "CLICK", + "CLICK_PRIVACY_INFO", + "CLOSE_NEWTAB_PREFS", + "SHOW_PERSONALIZE", + "HIDE_PERSONALIZE", + "DELETE", + "DELETE_FROM_POCKET", + "DELETE_CONFIRM", + "DIALOG_CANCEL", + "DIALOG_OPEN", + "DRAG", + "DROP", + "IMPRESSION", + "MIGRATION_CANCEL", + "MIGRATION_START", + "OPEN_NEWTAB_PREFS", + "OPEN_NEW_WINDOW", + "OPEN_PRIVATE_WINDOW", + "PIN", + "PREF_CHANGED", + "PREVIEW_REQUEST", + "SAVE_TO_POCKET", + "SEARCH", + "SEARCH_EDIT_ADD", + "SEARCH_EDIT_CLOSE", + "SEARCH_EDIT_DELETE", + "SEARCH_HANDOFF", + "SHOW_PRIVACY_INFO", + "SKIPPED_SIGNIN", + "SUBMIT_EMAIL", + "DISCLAIMER_ACKED", + "MENU_ADD_SEARCH", + "MENU_ADD_TOPSITE", + "MENU_COLLAPSE", + "MENU_EXPAND", + "MENU_MANAGE", + "MENU_MOVE_DOWN", + "MENU_MOVE_UP", + "MENU_PRIVACY_NOTICE", + "MENU_REMOVE", + "TOP_SITES_EDIT", + "TOP_SITES_EDIT_CLOSE", + "TOPSITE_SPONSOR_INFO", + "UNPIN"] + release_channel_collection: opt-out + products: + - "firefox" + - "fennec" + record_in_processes: ["main"] + description: > + This is recorded with every user interaction on Activity Stream elements. + bug_numbers: [1429497, 1429489, 1514732] + notification_emails: + - "najiang@mozilla.com" + - "msamuel@mozilla.com" + - "rrosario@mozilla.com" + expiry_version: never + extra_keys: + addon_version: The Activity Stream addon version. + session_id: The ID of the Activity Stream session in which the event occurred + page: about:home or about_newtab - the page where the event occurred + user_prefs: An integer representaing a user's A-S settings. + action_position: The index of card receiving interactions. + end: + objects: ["session"] + release_channel_collection: opt-out + products: + - "firefox" + - "fennec" + record_in_processes: ["main"] + description: > + This is recorded with every session ended in Activity Stream. + bug_numbers: [1429497, 1429489] + notification_emails: + - "najiang@mozilla.com" + - "msamuel@mozilla.com" + expiry_version: never + extra_keys: + addon_version: The Activity Stream addon version. + session_id: The ID of the Activity Stream session in which the event occurred + page: about:home or about_newtab - the page where the event occurred + user_prefs: An integer representaing a user's A-S settings. + +aboutprivatebrowsing: + click: + objects: ["info_link", "promo_link", "dismiss_button"] + release_channel_collection: opt-out + record_in_processes: ["content"] + description: > + This is recorded when a user clicks a link on the private browsing newtab. + bug_numbers: [1709344, 1754635, 1781973, 1811146, 1841925, 1871197] + notification_emails: + - "pbz@mozilla.com" + - "tihuang@mozilla.com" + expiry_version: "134" + products: + - "firefox" + +readermode: + view: + objects: ["on", "off"] + release_channel_collection: opt-out + record_in_processes: ["content"] + description: > + This is recorded any time Reader Mode is turned on or off. + bug_numbers: [1689201] + notification_emails: + - "kirill@getpocket.com" + - "sdowne@getpocket.com" + expiry_version: never + extra_keys: + subcategory: The broad event category for this probe. E.g. navigation + reader_time: Time spent in Reader Mode session in seconds (whole number) + scroll_position: Percentage of window scrolled in Reader Mode (whole number) + products: + - "firefox" + button: + objects: ["click"] + release_channel_collection: opt-out + record_in_processes: ["content"] + description: > + This is recorded any time a Reader Mode button is clicked. + bug_numbers: [1693362] + notification_emails: + - "kirill@getpocket.com" + - "sdowne@getpocket.com" + expiry_version: never + extra_keys: + label: The type of button clicked. + products: + - "firefox" + +addonsManager: + install: + description: > + These events are recorded during the install and update flow for extensions and themes, + the value of the event is an install_id shared by the events related to the same install + or update flow. + objects: + - "extension" + - "theme" + - "locale" + - "dictionary" + - "sitepermission" + - "siteperm_deprecated" + - "other" + - "unknown" + methods: ["install", "update"] + extra_keys: + addon_id: A string which identify the extension (when available) + download_time: The number of ms needed to complete the download + error: The AddonManager error related to an install or update failure. + source: > + The source that originally triggered the add-on installation, one of "about:addons", + "about:debugging", "about:preferences", "amo", "browser-import", "disco", "distribution", + "extension", "enterprise-policy", "file-url", "geckoview-app", "gmp-plugin", + "internal", "plugin", "rtamo", "siteperm-addon-provider" "sync", "system-addon", + "temporary-addon", "unknown". + For events with method set to "sideload", the source value is derived from the XPIProvider + location name (e.g. possible values are "app-builtin", "app-global", "app-profile", + "app-system-addons", "app-system-defaults", "app-system-local", "app-system-profile", + "app-system-share", "app-system-user", "winreg-app-user", "winreg-app-gobal") + method: > + The method used by the source to install the add-on (included when the source can use more than one, + e.g. install events with source "about:addons" may have "install-from-file" or "url" as method), + one of "amWebAPI", "drag-and-drop", "installTrigger", "install-from-file", "link", + "management-webext-api", "sideload", "synthetic-install", "url", "product-updates". + e.g. install events with source "about:addons" may have "install-from-file" or "drag-and-drop" as method), + one of "amWebAPI", "drag-and-drop", "installTrigger", "install-from-file", "link", "management-webext-api", + "sideload", "synthetic-install", "url", "product-updates", "manager". + num_strings: The number of permission description strings in the extension permission doorhanger + updated_from: Determine if an update has been requested by the user or the application ("app" / "user") + install_origins: This flag indicates whether install_origins is defined in the addon manifest. ("1" / "0") + step: > + The current step in the install or update flow: + - started, postponed, cancelled, failed, permissions_prompt, completed + - site_warning, site_blocked, install_disabled_warning + - download_started, download_completed, download_failed + notification_emails: ["addons-dev-internal@mozilla.com"] + expiry_version: "132" + products: + - "firefox" + - "fennec" + - "thunderbird" + record_in_processes: ["main"] + bug_numbers: [1433335, 1515697, 1523641, 1549770, 1590736, 1630596, 1672570, 1714251, 1749878, 1781974, 1817100, 1861295] + release_channel_collection: opt-out + install_stats: + description: > + These events are recorded at the end of the install flow, but only when + the source that originally triggered the add-on installation is "amo", + "rtamo" or "disco". The value of an event is the SHA256 hash of the + addon_id. + objects: + - "extension" + - "theme" + - "locale" + - "dictionary" + - "sitepermission" + - "siteperm_deprecated" + - "other" + - "unknown" + extra_keys: + addon_id: > + A string which identifies the add-on. This value might be trimmed. + taar_based: > + This extra key is only set for install flows related to the discovery + addon. When available it is going to be a string set to "1" for + TAAR based recommendations, "0" for manually curated and unset if + not relevant for the particular install flow. + utm_campaign: > + The specific product promotion or strategic campaign that drives + traffic to the install page. + utm_content: > + The specific item that a person clicks on to access the install page + (such as an A/B test, a website banner, or a specific ad). + utm_medium: The channel used to share the install page. + utm_source: > + The name of the product, domain of the website that drives traffic to + the install page. + notification_emails: ["addons-dev-internal@mozilla.com"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["main"] + bug_numbers: [1653020, 1699225] + release_channel_collection: opt-out + manage: + description: > + This events are recorded when an installed add-ons is being disable/enabled/uninstalled, + the value of the event is the addon_id (which also allow to correlate multiple events + related to each other). + objects: + - "extension" + - "theme" + - "locale" + - "dictionary" + - "sitepermission" + - "siteperm_deprecated" + - "other" + - "unknown" + methods: ["disable", "enable", "sideload_prompt", "uninstall"] + extra_keys: + source: > + The source from which the addon has been installed (See extra_keys.source description from + addonsManager.install telemetry event definition). + method: > + The method used by the source to install the add-on (included when the source can use more than one, + e.g. install events with source "about:addons" may have "install-from-file" or "url" as method). + num_strings: The number of permission description strings in the extension permission doorhanger + notification_emails: ["addons-dev-internal@mozilla.com"] + expiry_version: "132" + products: + - "firefox" + - "fennec" + - "thunderbird" + record_in_processes: ["main"] + bug_numbers: [1433335, 1515697, 1523641, 1549770, 1590736, 1630596, 1672570, 1714251, 1749878, 1781974, 1817100, 1861295] + release_channel_collection: opt-out + report: + description: > + An abuse report submitted by a user for a given extension. The object of the event + represent the report entry point, the value is the id of the addon being reported. + objects: + - amo + - menu + - toolbar_context_menu + - unified_context_menu + - uninstall + extra_keys: + addon_type: > + The type of the add-on being reported (missing on ERROR_ADDON_NOT_FOUND, ERROR_AMODETAILS_NOTFOUND + and ERROR_AMODETAILS_FAILURE). + error_type: > + AbuseReport Error Type (included in case of submission failures). The error types include + ERROR_ABORTED_SUBMIT, ERROR_ADDON_NOT_FOUND, ERROR_CLIENT, ERROR_NETWORK, ERROR_UNKNOWN, + ERROR_RECENT_SUBMIT, ERROR_SERVER, ERROR_AMODETAILS_NOTFOUND, ERROR_AMODETAILS_FAILURE. + notification_emails: ["addons-dev-internal@mozilla.com"] + expiry_version: "132" + products: + - "firefox" + - "fennec" + - "thunderbird" + record_in_processes: ["main"] + bug_numbers: [1544927, 1580561, 1590736, 1630596, 1672570, 1714251, 1749878, 1780746, 1781974, 1817100, 1861295] + release_channel_collection: opt-out + reportSuspiciousSite: + description: > + Sent when a user clicks "Report Suspicious Site" on the dropdown menu of the third- + party xpinstall doorhanger. The object is always suspiciousSite. The value is the + site domain, or "(unknown)" if there is no site associated with the prompt. + objects: + - suspiciousSite + notification_emails: ["addons-dev-internal@mozilla.com"] + expiry_version: "132" + products: + - "firefox" + record_in_processes: ["main"] + bug_numbers: [1806056, 1817100, 1861295] + release_channel_collection: opt-out + +blocklist: + addonBlockChange: + description: > + An add-on is blocked, or an installed add-on is unblocked. + When an add-on install/update is blocked, its installation is aborted and the + add-on is no longer listed in the activeAddons field of TelemetryEnvironment. + The value is the ID of the add-on. + The object represents the reason for triggering the blocklistState check: + "addon_install" is when an add-on is installed. + "addon_update" is when an add-on is updated after an update check. + "addon_update_check" is when an add-on is blocked during the update check. + "addon_db_modified" is when an add-on's blocklistState was altered between application restarts. + "blocklist_update" is when an add-on's blocklistState changed due to a blocklist update. This + may be due to the blocklist being disabled by preferences or enterprise policies, but it is + more commonly the result of updating entries in the blocklist. + objects: ["addon_install", "addon_update", "addon_update_check", "addon_db_modified", "blocklist_update"] + extra_keys: + blocklistState: > + The blocklistState of the add-on. 0 is unblocked, 2 is blocked. + 1 is soft blocked (this state does not exist in blocklist v3). + addon_version: > + Version of the add-on. Used together with an add-on's ID (value) to identify + add-ons to block. + signed_date: > + Timestamp of the add-on (when it was signed via AMO). + This field is missing (0) for "addon_update_check". + hours_since: > + The number of hours that have passed since this version of the add-on was installed or updated. + At least zero when the blocklist is updated, -1 otherwise. + mlbf_last_time: > + The generation time of the most recent entry in the blocklist. + Time generated by AMO when the blocklist entry was created. + May be 0 when the blocklist is disabled. + mlbf_generation: > + The generation time to identify the bloomfilter that was used for this blocklist decision. + The bloomfilter is updated less frequently than the so-called stashes in the RemoteSettings + collection that holds the blocklist data. The stashes take precedence over the bloomfilter + in blocklist decisions. + Time generated by AMO when the blocklist entry was created. + May be 0 when the blocklist is disabled. + mlbf_source: > + The source of the RemoteSettings attachment that holds the bloom filter. + This field is documented in more detail in the definition of the blocklist.mlbf_source scalar. + Possible values are "dump_match", "cache_match", "remote_match", "dump_fallback", "cache_fallback", "unknown". + notification_emails: ["addons-dev-internal@mozilla.com", "rwu@mozilla.com"] + expiry_version: "132" + products: + - "firefox" + record_in_processes: ["main"] + bug_numbers: [1662857, 1730037, 1763529, 1811159, 1861296] + release_channel_collection: opt-out + +downloads: + added: + description: > + Sent when downloading a new file. Possible values are in contained in DownloadList::kFileExtensions. + All other downloads not in the listare marked as other. + objects: ["fileExtension"] + bug_numbers: [1627676, 1706355] + notification_emails: ["rtestard@mozilla.com", "emalysz@mozilla.com"] + products: + - "firefox" + record_in_processes: ["main"] + release_channel_collection: opt-out + expiry_version: never + +form_autocomplete: + show: + objects: ["logins"] + bug_numbers: [1619498, 1628849] + description: >- + An content form autocomplete popup was shown. Details on the timing and context are provided. + The `value` is the number of milliseconds since the autocomplete search started. + expiry_version: never + extra_keys: + acFieldName: The "field name" token (last one) of the field's autocomplete attribute. + fieldType: The `type` property value of the field. + generatedPasswo: The number of generated password rows shown. + hadPrevious: Whether the autocomplete results had cached previous results it could use. + typeWasPassword: Whether the input `type` was ever "password". + insecureWarning: The number of insecure login field warning rows shown (should be 0 or 1). + login: The number of login rows shown (with or without the domain line). + importableLogin: The number of import suggestion rows shown. + loginsFooter: The number of "Manage Passwords" footer row shown. + stringLength: Length of the text in the field that triggered these results. + notification_emails: ["passwords-dev@mozilla.org"] + products: + - firefox + record_in_processes: ["main"] + release_channel_collection: opt-out + +address: + doorhanger: + description: >- + User interactions for the browser address autofill doorhanger. + objects: + - "capture_doorhanger" + - "update_doorhanger" + - "edit_doorhanger" + methods: + - "show" + - "save" + - "update" + - "cancel" + - "disable" + - "pref" + - "learn_more" + bug_numbers: [1801039] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["main"] + release_channel_collection: opt-out + manage: + description: >- + User interactions for address autofill preferences management UI. + objects: + - "manage" + methods: + - "show" + - "add" + - "delete" + - "show_entry" + - "edit" + bug_numbers: [1801039] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["main"] + release_channel_collection: opt-out + address_form: + description: >- + User interactions for address autofill forms + 'detected': Recorded when a form is recognized as a credit card form. + The possible value of cc_* in extra_keys are "true", "false", or 0 + When the value is "true", the field is identified via autocomplete attribute + When the value is "false", the field is not detected in the form + When the value is an 0, then the field is identified by regexp-based heuristic + 'popup_shown': Recorded when autofill popup is shown. Using field_name to record the field + that triggers this event + 'filled': Recorded when a form is autofiled. Possible values are + `filled`, `not_filled`, `user_filled` or `unavailable` + 'filled_modified': Recorded when a field is autofilled and then modified by the user. + Using field_name to record the field that triggers this event. + 'submitted': Recorded when a form is submitted. Possible values are `autofilled`, `not_filled`, `user_filled` or `unavailable` + 'cleared' Recorded when a form is cleared . Using field_name to record the field that triggers this event + objects: ["address_form"] + methods: ["detected", "popup_shown", "filled", "filled_modified", "submitted", "cleared"] + bug_numbers: [1804901] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["content"] + release_channel_collection: opt-out + extra_keys: + street_address: street address result, filled when method is `detected`, `filled`, or `filled_modified` + address_line1: address_line1 result, filled when method is `detected`, `filled`, or `filled_modified`. + address_line2: address_line2 result, filled when method is `detected`, `filled`, or `filled_modified`. + address_line3: address_line3 result, filled when method is `detected`, `filled`, or `filled_modified`. + address_level1: address_level1 result, filled when method is `detected`, `filled`, or `filled_modified`. + address_level2: address_level2 result, filled when method is `detected`, `filled`, or `filled_modified`. + postal_code: postal_code result, filled when method is `detected`, `filled`, or `filled_modified`. + country: country result, filled when method is `detected`, `filled`, or `filled_modified`. + field_name: Name of the field being affected by the method, filled when method is `popup_shown` or `filled_modified`. + address_form_ext: + description: >- + Address has too many fields so we cannot cover them all in the above `address_form` telemetry + This telemetry is used to record address fields that are not listed in `address_form` + objects: ["address_form_ext"] + methods: ["detected", "filled", "submitted"] + bug_numbers: [1804901] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["content"] + release_channel_collection: opt-out + extra_keys: + name: name + given_name: give_name + additional_name: additional_name + family_name: family_name + email: email + organization: organization + tel: telephone + +creditcard: + doorhanger: + description: >- + User interactions for the browser credit card autofill doorhanger. + objects: + - "capture_doorhanger" + - "update_doorhanger" + methods: + - "show" + - "save" + - "update" + - "cancel" + - "disable" + bug_numbers: [1653073, 1653083, 1720608, 1767907] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["main"] + release_channel_collection: opt-out + manage: + description: >- + User interactions for credit card autofill preferences management UI. + objects: + - "manage" + methods: + - "show" + - "add" + - "delete" + - "show_entry" + - "edit" + bug_numbers: [1653073, 1654167, 1720608, 1767907] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["main"] + release_channel_collection: opt-out + cc_form: + description: >- + User interactions for credit card autofill forms + objects: + - "cc_form" + methods: + - "detected" + - "popup_shown" + - "filled" + - "filled_modified" + - "submitted" + bug_numbers: [1653073, 1653162, 1720608, 1767907] + notification_emails: ["autofill@lists.mozilla.org", "passwords-dev@mozilla.org"] + expiry_version: never + products: + - "firefox" + record_in_processes: ["content"] + release_channel_collection: opt-out + extra_keys: + cc_name_found: Whether the cardholder name field was identified + cc_number_found: Whether the credit card number field was identified + cc_exp_found: Whether the expiration date was identified + cc_name: Whether the name was autofilled (autofilled / not_filled / user_filled / unavailable) + cc_number: Whether the credit card number field was autofilled (autofilled / not_filled / user_filled / unavailable) + cc_exp: Whether the expiration date was autofilled (autofilled / not_filled / user_filled / unavailable) + field_name: Name of the field being affected by the method + fields_not_auto: >- + Number of fields in a `submitted` event that were not autofilled. + Note that this number counts all fields in a form, even if some of those fields might have been identified as password and/or address fields. + Additionally, it may include input elements that are not rendered as user-modifiable, such as hidden fields as well as