summaryrefslogtreecommitdiffstats
path: root/toolkit/components/telemetry/pings/UninstallPing.sys.mjs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /toolkit/components/telemetry/pings/UninstallPing.sys.mjs
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/telemetry/pings/UninstallPing.sys.mjs')
-rw-r--r--toolkit/components/telemetry/pings/UninstallPing.sys.mjs34
1 files changed, 34 insertions, 0 deletions
diff --git a/toolkit/components/telemetry/pings/UninstallPing.sys.mjs b/toolkit/components/telemetry/pings/UninstallPing.sys.mjs
new file mode 100644
index 0000000000..00c1e80a40
--- /dev/null
+++ b/toolkit/components/telemetry/pings/UninstallPing.sys.mjs
@@ -0,0 +1,34 @@
+/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */
+/* 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/. */
+
+const lazy = {};
+
+ChromeUtils.defineESModuleGetters(lazy, {
+ WindowsInstallsInfo:
+ "resource://gre/modules/components-utils/WindowsInstallsInfo.sys.mjs",
+});
+
+/**
+ * The Windows-only "uninstall" ping, which is saved to disk for the uninstaller to find.
+ * The ping is actually assembled by TelemetryControllerParent.saveUninstallPing().
+ */
+export var UninstallPing = {
+ /**
+ * Maximum number of other installs to count (see
+ * toolkit/components/telemetry/docs/data/uninstall-ping.rst for motivation)
+ */
+ MAX_OTHER_INSTALLS: 11,
+
+ /**
+ * Count other installs of this app, based on the values in the TaskBarIDs registry key.
+ *
+ */
+ getOtherInstallsCount() {
+ return lazy.WindowsInstallsInfo.getInstallPaths(
+ this.MAX_OTHER_INSTALLS,
+ new Set([Services.dirsvc.get("GreBinD", Ci.nsIFile).path])
+ ).size;
+ },
+};