summaryrefslogtreecommitdiffstats
path: root/toolkit/components/telemetry
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/telemetry')
-rw-r--r--toolkit/components/telemetry/Events.yaml37
-rw-r--r--toolkit/components/telemetry/Histograms.json115
-rw-r--r--toolkit/components/telemetry/Scalars.yaml257
-rw-r--r--toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs5
-rw-r--r--toolkit/components/telemetry/app/TelemetryUtils.sys.mjs3
-rw-r--r--toolkit/components/telemetry/core/ipc/TelemetryComms.h10
-rw-r--r--toolkit/components/telemetry/docs/data/environment.rst5
-rw-r--r--toolkit/components/telemetry/tests/addons/signed-webext/.web-extension-id3
-rw-r--r--toolkit/components/telemetry/tests/addons/signed-webext/META-INF/manifest.mf7
-rw-r--r--toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.rsabin4193 -> 0 bytes
-rw-r--r--toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.sf4
-rw-r--r--toolkit/components/telemetry/tests/addons/signed-webext/manifest.json12
-rw-r--r--toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_testcase.py2
-rw-r--r--toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js13
-rw-r--r--toolkit/components/telemetry/tests/unit/test_TelemetryReportingPolicy.js6
-rw-r--r--toolkit/components/telemetry/tests/unit/xpcshell.toml1
16 files changed, 330 insertions, 150 deletions
diff --git a/toolkit/components/telemetry/Events.yaml b/toolkit/components/telemetry/Events.yaml
index ddba1c690d..5d3d433a05 100644
--- a/toolkit/components/telemetry/Events.yaml
+++ b/toolkit/components/telemetry/Events.yaml
@@ -4270,3 +4270,40 @@ screenshots:
- 1801019
expiry_version: "never"
release_channel_collection: opt-out
+
+session_restore:
+ backup_can_be_loaded:
+ objects: ["session_file"]
+ description: >
+ Recorded when a file is able to be successfully read on startup
+ record_in_processes:
+ - main
+ products:
+ - "firefox"
+ extra_keys:
+ can_load: Whether or not the startup file can be read/loaded
+ path_key: A symbolic name for the backup file, should be one of "clean", "recovery", "recoveryBackup", "cleanBackup", or "upgradeBackup"
+ loadfail_reason: Reason why the file cannot be loaded, N/A if can be loaded
+ notification_emails:
+ - "session-restore-telemetry-alerts@mozilla.com"
+ bug_numbers:
+ - 1874742
+ expiry_version: "never"
+ release_channel_collection: opt-out
+ shutdown_success:
+ objects: ["session_startup"]
+ description: >
+ Report shutdown success
+ record_in_processes:
+ - main
+ products:
+ - "firefox"
+ extra_keys:
+ shutdown_ok: Whether or not the shutdown happened successfully, unsuccessful if previous session crashed
+ shutdown_reason: Reason why shutdown didn't happen successfully, N/A if previous session didn't crashed
+ notification_emails:
+ - "session-restore-telemetry-alerts@mozilla.com"
+ bug_numbers:
+ - 1874742
+ expiry_version: "never"
+ release_channel_collection: opt-out
diff --git a/toolkit/components/telemetry/Histograms.json b/toolkit/components/telemetry/Histograms.json
index 3be0da3295..4f0f0e2329 100644
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -794,6 +794,7 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 100,
"n_buckets": 20,
@@ -808,6 +809,7 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 100,
"n_buckets": 20,
@@ -837,6 +839,7 @@
"smaug@mozilla.com"
],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -851,7 +854,6 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
- "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 200,
"n_buckets": 50,
@@ -893,7 +895,6 @@
"sdetar@mozilla.com"
],
"expires_in_version": "never",
- "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -932,6 +933,7 @@
"products": ["firefox"],
"alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -943,6 +945,7 @@
"products": ["firefox"],
"alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -954,6 +957,7 @@
"products": ["firefox"],
"alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -968,7 +972,6 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
- "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 150000,
"n_buckets": 50,
@@ -983,7 +986,6 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
- "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -998,7 +1000,6 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
- "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -1010,6 +1011,7 @@
"products": ["firefox"],
"alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 10000,
"n_buckets": 50,
@@ -1044,6 +1046,7 @@
"products": ["firefox"],
"alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "linear",
"high": 100,
"n_buckets": 20,
@@ -1113,6 +1116,7 @@
"products": ["firefox"],
"alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 1000000,
"n_buckets": 100,
@@ -1142,7 +1146,6 @@
"jcoppeard@mozilla.com"
],
"expires_in_version": "never",
- "releaseChannelCollection": "opt-out",
"kind": "exponential",
"high": 100,
"n_buckets": 20,
@@ -1199,7 +1202,6 @@
"kind": "linear",
"high": 100,
"n_buckets": 50,
- "releaseChannelCollection": "opt-out",
"bug_numbers": [1563755],
"description": "The percentage of tenured GC things that survived a collection."
},
@@ -1229,7 +1231,6 @@
"kind": "exponential",
"high": 120,
"n_buckets": 50,
- "releaseChannelCollection": "opt-out",
"bug_numbers": [1556467],
"description": "Time spent in between garbage collections for the main runtime (seconds)"
},
@@ -1272,7 +1273,6 @@
],
"expires_in_version": "never",
"kind": "exponential",
- "releaseChannelCollection": "opt-out",
"low": 1,
"high": 50000,
"n_buckets": 100,
@@ -1625,6 +1625,7 @@
"products": ["firefox", "fennec", "thunderbird"],
"alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
"expires_in_version": "never",
+ "releaseChannelCollection": "opt-out",
"kind": "exponential",
"low": 1024,
"high": 16777216,
@@ -3643,7 +3644,7 @@
"releaseChannelCollection": "opt-out",
"description": "Recorded once for each HTTP 401 response. The value records the type of authentication and the TLS-enabled status. (0=basic/clear, 1=basic/tls, 2=digest/clear, 3=digest/tls, 4=ntlm/clear, 5=ntlm/tls, 6=negotiate/clear, 7=negotiate/tls)"
},
- "HTTP_CHILD_OMT_STATS": {
+ "HTTP_CHILD_OMT_STATS_2": {
"record_in_processes": ["content"],
"products": ["firefox", "fennec"],
"alert_emails": ["necko@mozilla.com"],
@@ -3657,7 +3658,8 @@
"successMainThread",
"failListener",
"failListenerChain",
- "notRequested"
+ "notRequested",
+ "successOnlyDecomp"
]
},
"TLS_EARLY_DATA_NEGOTIATED": {
@@ -4814,7 +4816,7 @@
"expires_in_version": "never",
"kind": "enumerated",
"n_values": 6,
- "description": "encoding removed: 0=unknown, 1=gzip, 2=deflate, 3=brotli"
+ "description": "encoding removed: 0=unknown, 1=gzip, 2=deflate, 3=brotli, 4=zstd"
},
"CACHE_LM_INCONSISTENT": {
"record_in_processes": ["main", "content"],
@@ -8742,6 +8744,7 @@
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec"],
"alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
+ "releaseChannelCollection": "opt-out",
"expires_in_version": "default",
"kind": "boolean",
"description": "Session restore: Whether none of the backup files contained parse-able JSON"
@@ -8816,17 +8819,6 @@
"n_values": 50,
"description": "Session restore: Number of tabs restored eagerly in the session that has just been restored."
},
- "FX_SESSION_RESTORE_CLOSED_TABS_NOT_SAVED": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox"],
- "expires_in_version": "127",
- "alert_emails": ["firefox-view-engineers@mozilla.com"],
- "releaseChannelCollection": "opt-out",
- "bug_numbers": [1848459],
- "kind": "enumerated",
- "n_values": 25,
- "description": "Session restore: Number of closed tabs that are NOT saved due to lack of open tabs worth saving on window close."
- },
"FX_TABLETMODE_PAGE_LOAD": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec"],
@@ -13182,83 +13174,6 @@
"alert_emails": ["perf-telemetry-alerts@mozilla.com"],
"description": "Scaling percentage for the display where the first window is opened"
},
- "SHUTDOWN_PHASE_DURATION_TICKS_QUIT_APPLICATION": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase quit-application, as measured by the shutdown terminator in ticks of 100ms"
- },
- "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_CHANGE_NET_TEARDOWN": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase profile-change-net-teardown, as measured by the shutdown terminator in ticks of 100ms"
- },
- "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_CHANGE_TEARDOWN": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase profile-change-teardown, as measured by the shutdown terminator in ticks of 100ms"
- },
- "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_BEFORE_CHANGE": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase profile-before-change, as measured by the shutdown terminator in ticks of 100ms"
- },
- "SHUTDOWN_PHASE_DURATION_TICKS_PROFILE_BEFORE_CHANGE_QM": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase profile-before-change-qm, as measured by the shutdown terminator in ticks of 100ms"
- },
- "SHUTDOWN_PHASE_DURATION_TICKS_XPCOM_WILL_SHUTDOWN": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase xpcom-will-shutdown, as measured by the shutdown terminator in ticks of 100ms"
- },
- "SHUTDOWN_PHASE_DURATION_TICKS_XPCOM_SHUTDOWN": {
- "record_in_processes": ["main", "content"],
- "products": ["firefox", "fennec", "thunderbird"],
- "expires_in_version": "never",
- "kind": "exponential",
- "high": 65,
- "n_buckets": 10,
- "bug_numbers": [1689953],
- "alert_emails": ["dothayer@mozilla.com, jstutte@mozilla.com"],
- "description": "Duration of shutdown phase xpcom-shutdown, as measured by the shutdown terminator in ticks of 100ms"
- },
"TAP_TO_LOAD_ENABLED": {
"record_in_processes": ["main", "content"],
"products": ["firefox", "fennec"],
diff --git a/toolkit/components/telemetry/Scalars.yaml b/toolkit/components/telemetry/Scalars.yaml
index fee6594b81..f63b8b5fdb 100644
--- a/toolkit/components/telemetry/Scalars.yaml
+++ b/toolkit/components/telemetry/Scalars.yaml
@@ -172,6 +172,246 @@ browser.backup:
- 'firefox'
record_in_processes:
- 'main'
+ places_size:
+ bug_numbers:
+ - 1883642
+ description: >
+ The total file size of the places.sqlite db located in the current profile
+ directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ favicons_size:
+ bug_numbers:
+ - 1883642
+ description: >
+ The total file size of the favicons.sqlite db located in the current profile
+ directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ credentials_data_size:
+ bug_numbers:
+ - 1883736
+ description: >
+ The total size of logins, payment method, and form autofill related files
+ in the current profile directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ security_data_size:
+ bug_numbers:
+ - 1883736
+ description: >
+ The total size of files needed for NSS initialization parameters and security
+ certificate settings in the current profile directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ preferences_size:
+ bug_numbers:
+ - 1883739
+ description: >
+ The total size of files relating to user preferences and permissions in the current profile
+ directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ misc_data_size:
+ bug_numbers:
+ - 1883747
+ - 1887746
+ description: >
+ The total size of files for telemetry, site storage, media device origin mapping,
+ chrome privileged IndexedDB databases, and Mozilla Accounts in the current profile directory,
+ rounded to the nearest tenth kilobyte.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ cookies_size:
+ bug_numbers:
+ - 1883740
+ description: >
+ The total file size of the cookies.sqlite db located in the current profile
+ directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ form_history_size:
+ bug_numbers:
+ - 1883740
+ description: >
+ The file size of the formhistory.sqlite db located in the current profile
+ directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ session_store_backups_directory_size:
+ bug_numbers:
+ - 1883740
+ description: >
+ The total size of the session store backups directory, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ session_store_size:
+ bug_numbers:
+ - 1883740
+ description: >
+ The size of uncompressed session store json, in kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ extensions_json_size:
+ bug_numbers:
+ - 1883655
+ description: >
+ The total file size of the extensions json files located in the current
+ profile directory,rounded to the nearest 10 kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ extension_store_permissions_data_size:
+ bug_numbers:
+ - 1883655
+ description: >
+ The file size of the current profiles extension-store-permissions/data.safe.bin
+ file, rounded to the nearest 10 kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ storage_sync_size:
+ bug_numbers:
+ - 1883655
+ description: >
+ The file size of the current profiles storage-sync-v2.sqlite database,
+ rounded to the nearest 10 kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ browser_extension_data_size:
+ bug_numbers:
+ - 1883655
+ description: >
+ The total size of the current profiles storage.local legacy JSON backend
+ in the browser-extension-data directory, rounded to the nearest 10 kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ extensions_xpi_directory_size:
+ bug_numbers:
+ - 1883655
+ description: >
+ The total size of the current profiles extensions directory,
+ rounded to the nearest 10 kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
+ extensions_storage_size:
+ bug_numbers:
+ - 1883655
+ description: >
+ The total size of all extensions storage directories,
+ rounded to the nearest 10 kilobytes.
+ expires: never
+ kind: uint
+ notification_emails:
+ - mconley@mozilla.com
+ release_channel_collection: opt-out
+ products:
+ - 'firefox'
+ record_in_processes:
+ - 'main'
# The following section contains the browser engagement scalars.
browser.engagement:
@@ -1682,23 +1922,6 @@ pwmgr:
record_in_processes:
- main
-bloburl:
- resolve_stopped:
- bug_numbers:
- - 1843158
- description: >
- Counts how many times we do not resolve a blob URL
- because of different partition keys
- expires: "127"
- kind: uint
- notification_emails:
- - amadan@mozilla.com
- release_channel_collection: opt-out
- products:
- - 'firefox'
- record_in_processes:
- - content
-
contentblocking:
cryptomining_blocking_enabled:
bug_numbers:
diff --git a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs
index 76bc2579eb..18d46a3565 100644
--- a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs
+++ b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs
@@ -358,6 +358,10 @@ const DEFAULT_ENVIRONMENT_PREFS = new Map([
{ what: RECORD_DEFAULTPREF_VALUE },
],
["xpinstall.signatures.required", { what: RECORD_PREF_VALUE }],
+ [
+ "xpinstall.signatures.weakSignaturesTemporarilyAllowed",
+ { what: RECORD_PREF_VALUE },
+ ],
["nimbus.debug", { what: RECORD_PREF_VALUE }],
]);
@@ -837,6 +841,7 @@ EnvironmentAddonBuilder.prototype = {
hasBinaryComponents: false,
installDay: Utils.millisecondsToDays(installDate.getTime()),
signedState: addon.signedState,
+ signedTypes: JSON.stringify(addon.signedTypes),
quarantineIgnoredByApp: enforceBoolean(
addon.quarantineIgnoredByApp
),
diff --git a/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs b/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs
index 809460aebc..f56b8229dc 100644
--- a/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs
+++ b/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs
@@ -29,7 +29,8 @@ export var TelemetryUtils = {
*
* Here is an example of listening for that event:
*
- * const { TelemetryUtils } = ChromeUtils.import("resource://gre/modules/TelemetryUtils.jsm");
+ * const { TelemetryUtils } =
+ * ChromeUtils.importESModule("resource://gre/modules/TelemetryUtils.sys.mjs");
*
* class YourClass {
* constructor() {
diff --git a/toolkit/components/telemetry/core/ipc/TelemetryComms.h b/toolkit/components/telemetry/core/ipc/TelemetryComms.h
index 75f59209b0..57c875dedb 100644
--- a/toolkit/components/telemetry/core/ipc/TelemetryComms.h
+++ b/toolkit/components/telemetry/core/ipc/TelemetryComms.h
@@ -12,6 +12,7 @@
#include "mozilla/TelemetryProcessEnums.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/Variant.h"
+#include "mozilla/dom/WebGLIpdl.h"
#include "nsITelemetry.h"
namespace mozilla {
@@ -96,6 +97,13 @@ struct DiscardedData {
uint32_t mDiscardedScalarActions;
uint32_t mDiscardedKeyedScalarActions;
uint32_t mDiscardedChildEvents;
+
+ auto MutTiedFields() {
+ return std::tie(mDiscardedHistogramAccumulations,
+ mDiscardedKeyedHistogramAccumulations,
+ mDiscardedScalarActions, mDiscardedKeyedScalarActions,
+ mDiscardedChildEvents);
+ }
};
} // namespace Telemetry
@@ -393,7 +401,7 @@ struct ParamTraits<mozilla::Telemetry::EventExtraEntry> {
template <>
struct ParamTraits<mozilla::Telemetry::DiscardedData>
- : public PlainOldDataSerializer<mozilla::Telemetry::DiscardedData> {};
+ : public ParamTraits_TiedFields<mozilla::Telemetry::DiscardedData> {};
} // namespace IPC
diff --git a/toolkit/components/telemetry/docs/data/environment.rst b/toolkit/components/telemetry/docs/data/environment.rst
index 77d3d1ea6e..9e966fe707 100644
--- a/toolkit/components/telemetry/docs/data/environment.rst
+++ b/toolkit/components/telemetry/docs/data/environment.rst
@@ -282,6 +282,7 @@ Structure:
installDay: <number>, // days since UNIX epoch, 0 on failure
updateDay: <number>, // days since UNIX epoch, 0 on failure
signedState: <integer>, // whether the add-on is signed by AMO, only present for extensions
+ signedTypes: <string>, // JSON-stringified array of signature types found (see nsIAppSignatureInfo's SignatureAlgorithm enum)
isSystem: <bool>, // true if this is a System Add-on
isWebExtension: <bool>, // true if this is a WebExtension
multiprocessCompatible: <bool>, // true if this add-on does *not* require e10s shims
@@ -475,6 +476,10 @@ The following is a partial list of `collected preferences <https://searchfox.org
- ``intl.ime.use_composition_events_for_insert_text``: Whether a set of composition events is fired when user inserts text without keyboard events nor composing state of a composition (only on Linux and macOS).
+- ``xpinstall.signatures.required``: Whether XPI files cryptographic signatures are being verified and enforced.
+
+- ``xpinstall.signatures.weakSignaturesTemporarilyAllowed``: Whether new XPI files only signed with weak signature algorithms are still allowed to be installed
+
attribution
~~~~~~~~~~~
diff --git a/toolkit/components/telemetry/tests/addons/signed-webext/.web-extension-id b/toolkit/components/telemetry/tests/addons/signed-webext/.web-extension-id
deleted file mode 100644
index e78cecf6d6..0000000000
--- a/toolkit/components/telemetry/tests/addons/signed-webext/.web-extension-id
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file was created by https://github.com/mozilla/web-ext
-# Your auto-generated extension ID for addons.mozilla.org is:
-tel-signed-webext@tests.mozilla.org \ No newline at end of file
diff --git a/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/manifest.mf b/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/manifest.mf
deleted file mode 100644
index 6be3a6e32f..0000000000
--- a/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/manifest.mf
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-
-Name: manifest.json
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: vh0VF5quc9YIhMhIsZgKcg==
-SHA1-Digest: DNXAbrHJ4ncET5W+qtJl4+45D6s=
-
diff --git a/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.rsa b/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.rsa
deleted file mode 100644
index b202c515a8..0000000000
--- a/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.rsa
+++ /dev/null
Binary files differ
diff --git a/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.sf b/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.sf
deleted file mode 100644
index 72af14d816..0000000000
--- a/toolkit/components/telemetry/tests/addons/signed-webext/META-INF/mozilla.sf
+++ /dev/null
@@ -1,4 +0,0 @@
-Signature-Version: 1.0
-MD5-Digest-Manifest: tbeA48G5pe86kvUbd4rsXA==
-SHA1-Digest-Manifest: jyvWt2v9XUnYHrvrlSi4BdyZV/0=
-
diff --git a/toolkit/components/telemetry/tests/addons/signed-webext/manifest.json b/toolkit/components/telemetry/tests/addons/signed-webext/manifest.json
deleted file mode 100644
index 437b415fef..0000000000
--- a/toolkit/components/telemetry/tests/addons/signed-webext/manifest.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "manifest_version": 2,
- "name": "XPI Telemetry Signed Test",
- "description": "A signed webextension",
- "version": "1.0",
-
- "applications": {
- "gecko": {
- "id": "tel-signed-webext@tests.mozilla.org"
- }
- }
-}
diff --git a/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_testcase.py b/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_testcase.py
index c5bc54e9d2..9bcf29d2f4 100644
--- a/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_testcase.py
+++ b/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/fog_testcase.py
@@ -55,6 +55,8 @@ class FOGTestCase(TelemetryTestCase):
"logging.fog_control::*": 5,
"logging.glean::*": 5,
"logging.glean_core::*": 5,
+ # Slow down the user inactivity timeout (bug 1690728)
+ "dom.events.user_interaction_interval": 60000,
}
)
diff --git a/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js b/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
index a67788623d..9990d83fdf 100644
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
@@ -715,16 +715,18 @@ add_task(async function test_addons() {
add_task(async function test_signedAddon() {
AddonTestUtils.useRealCertChecks = true;
- const ADDON_INSTALL_URL = gDataRoot + "signed-webext.xpi";
- const ADDON_ID = "tel-signed-webext@tests.mozilla.org";
+ const { PKCS7_WITH_SHA1, COSE_WITH_SHA256 } = Ci.nsIAppSignatureInfo;
+
+ const ADDON_INSTALL_URL = gDataRoot + "amosigned.xpi";
+ const ADDON_ID = "amosigned-xpi@tests.mozilla.org";
const ADDON_INSTALL_DATE = truncateToDays(Date.now());
const EXPECTED_ADDON_DATA = {
blocklisted: false,
- description: "A signed webextension",
- name: "XPI Telemetry Signed Test",
+ description: null,
+ name: "XPI Test",
userDisabled: false,
appDisabled: false,
- version: "1.0",
+ version: "2.2",
scope: 1,
type: "extension",
foreignInstall: false,
@@ -732,6 +734,7 @@ add_task(async function test_signedAddon() {
installDay: ADDON_INSTALL_DATE,
updateDay: ADDON_INSTALL_DATE,
signedState: AddonManager.SIGNEDSTATE_SIGNED,
+ signedTypes: JSON.stringify([COSE_WITH_SHA256, PKCS7_WITH_SHA1]),
quarantineIgnoredByUser: false,
// quarantineIgnoredByApp expected to be false because
// the test addon is signed as a non-privileged (see signedState),
diff --git a/toolkit/components/telemetry/tests/unit/test_TelemetryReportingPolicy.js b/toolkit/components/telemetry/tests/unit/test_TelemetryReportingPolicy.js
index 01041172d0..df5dc151ad 100644
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryReportingPolicy.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryReportingPolicy.js
@@ -199,6 +199,12 @@ add_task(async function test_prefs() {
"Accepting the policy again should let us upload data."
);
+ // macOS has the app.update.channel pref locked. Check if it needs to be
+ // unlocked before proceeding with the test.
+ if (Services.prefs.getDefaultBranch("").prefIsLocked("app.update.channel")) {
+ Services.prefs.getDefaultBranch("").unlockPref("app.update.channel");
+ }
+
// Set a new, per channel, minimum policy version. Start by setting a test current channel.
Services.prefs
.getDefaultBranch("")
diff --git a/toolkit/components/telemetry/tests/unit/xpcshell.toml b/toolkit/components/telemetry/tests/unit/xpcshell.toml
index dbff9c627c..0c660888ed 100644
--- a/toolkit/components/telemetry/tests/unit/xpcshell.toml
+++ b/toolkit/components/telemetry/tests/unit/xpcshell.toml
@@ -17,6 +17,7 @@ support-files = [
"testUnicodePDBAArch64.dll",
"testNoPDBAArch64.dll",
"!/toolkit/mozapps/extensions/test/xpcshell/head_addons.js",
+ "../../../../mozapps/extensions/test/xpinstall/amosigned.xpi",
]
generated-files = [
"system.xpi",