Backed out 5 changesets (bug 1919090) for causing bc failures on browser_glean_metrics_exist.js CLOSED TREE

Backed out changeset 3cd156fb227f (bug 1919090)
Backed out changeset 321200cf10d5 (bug 1919090)
Backed out changeset 3cdc23af07e3 (bug 1919090)
Backed out changeset 5f785a5dd9ee (bug 1919090)
Backed out changeset 5072f2f1a075 (bug 1919090)
This commit is contained in:
pstanciu 2024-09-18 05:43:04 +03:00
Родитель 7502f6903c
Коммит 3013240380
4 изменённых файлов: 110 добавлений и 682 удалений

Просмотреть файл

@ -135,7 +135,7 @@ export class UserCharacteristicsPageService {
[this.populateDevicePixelRatio, [browser.ownerGlobal]], [this.populateDevicePixelRatio, [browser.ownerGlobal]],
[this.populateDisabledMediaPrefs, []], [this.populateDisabledMediaPrefs, []],
[this.populateMathOps, []], [this.populateMathOps, []],
[this.populateMappableData, [data.output]], [this.populateMapableData, [data.output]],
[this.populateGamepads, [data.output.gamepads]], [this.populateGamepads, [data.output.gamepads]],
[this.populateClientInfo, []], [this.populateClientInfo, []],
[this.populateCPUInfo, []], [this.populateCPUInfo, []],
@ -287,7 +287,7 @@ export class UserCharacteristicsPageService {
} }
} }
async populateMappableData(data) { async populateMapableData(data) {
// We set data from usercharacteristics.js // We set data from usercharacteristics.js
// We could do Object.keys(data), but this // We could do Object.keys(data), but this
// is more explicit and provides better // is more explicit and provides better
@ -322,24 +322,13 @@ export class UserCharacteristicsPageService {
"canvasdata11Webglsoftware", "canvasdata11Webglsoftware",
"canvasdata12Fingerprintjs1software", "canvasdata12Fingerprintjs1software",
"canvasdata13Fingerprintjs2software", "canvasdata13Fingerprintjs2software",
"voicesCount", "voices",
"voicesLocalCount", "mediaCapabilities",
"voicesDefault",
"voicesSample",
"voicesSha1",
"voicesAllSsdeep",
"voicesLocalSsdeep",
"voicesNonlocalSsdeep",
"mediaCapabilitiesUnsupported",
"mediaCapabilitiesNotSmooth",
"mediaCapabilitiesNotEfficient",
"mediaCapabilitiesH264",
"audioFingerprint", "audioFingerprint",
"jsErrors", "jsErrors",
"pointerType", "pointerType",
"anyPointerType", "anyPointerType",
"iceSd", "iceFoundations",
"iceOrder",
"motionDecimals", "motionDecimals",
"orientationDecimals", "orientationDecimals",
"orientationabsDecimals", "orientationabsDecimals",
@ -445,12 +434,12 @@ export class UserCharacteristicsPageService {
v2: [], v2: [],
extensions: [], extensions: [],
}, },
shaderPrecision: { shader_precision: {
FRAGMENT_SHADER: {}, FRAGMENT_SHADER: {},
VERTEX_SHADER: {}, VERTEX_SHADER: {},
}, },
debugShaders: {}, debug_shaders: {},
debugParams: {}, debug_params: {},
}; };
const canvas = document.createElement("canvas"); const canvas = document.createElement("canvas");
@ -581,7 +570,7 @@ export class UserCharacteristicsPageService {
gl[shaderType], gl[shaderType],
gl[precisionType] gl[precisionType]
); );
results.shaderPrecision[shaderType][precisionType] = { results.shader_precision[shaderType][precisionType] = {
rangeMin, rangeMin,
rangeMax, rangeMax,
precision, precision,
@ -592,7 +581,7 @@ export class UserCharacteristicsPageService {
const mozDebugExt = gl.getExtension("MOZ_debug"); const mozDebugExt = gl.getExtension("MOZ_debug");
const debugExt = gl.getExtension("WEBGL_debug_renderer_info"); const debugExt = gl.getExtension("WEBGL_debug_renderer_info");
results.debugParams = { results.debug_params = {
versionRaw: mozDebugExt.getParameter(gl.VERSION), versionRaw: mozDebugExt.getParameter(gl.VERSION),
vendorRaw: mozDebugExt.getParameter(gl.VENDOR), vendorRaw: mozDebugExt.getParameter(gl.VENDOR),
rendererRaw: mozDebugExt.getParameter(gl.RENDERER), rendererRaw: mozDebugExt.getParameter(gl.RENDERER),
@ -655,7 +644,7 @@ export class UserCharacteristicsPageService {
return hashHex; return hashHex;
} }
results.debugShaders = { results.debug_shaders = {
fs: await sha1( fs: await sha1(
translationExt.getTranslatedShaderSource(fragmentShader) translationExt.getTranslatedShaderSource(fragmentShader)
), ),
@ -664,35 +653,7 @@ export class UserCharacteristicsPageService {
}; };
} }
// General Glean.characteristics.webglinfo.set(JSON.stringify(results));
Glean.characteristics.glVersion.set(results.glVersion);
// Debug Params
Glean.characteristics.glExtensions.set(results.debugParams.extensions);
Glean.characteristics.glExtensionsRaw.set(
results.debugParams.extensionsRaw
);
Glean.characteristics.glRenderer.set(results.debugParams.rendererDebugInfo);
Glean.characteristics.glRendererRaw.set(results.debugParams.rendererRaw);
Glean.characteristics.glVendor.set(results.debugParams.vendorDebugInfo);
Glean.characteristics.glVendorRaw.set(results.debugParams.vendorRaw);
Glean.characteristics.glVersionRaw.set(results.debugParams.versionRaw);
// Debug Shaders
Glean.characteristics.glFragmentShader.set(results.debugShaders.fs);
Glean.characteristics.glVertexShader.set(results.debugShaders.vs);
Glean.characteristics.glMinimalSource.set(results.debugShaders.ms);
// Parameters
Glean.characteristics.glParamsExtensions.set(
JSON.stringify(results.parameters.extensions)
);
Glean.characteristics.glParamsV1.set(JSON.stringify(results.parameters.v1));
Glean.characteristics.glParamsV2.set(JSON.stringify(results.parameters.v2));
// Shader Precision
Glean.characteristics.glPrecisionFragment.set(
JSON.stringify(results.shaderPrecision.FRAGMENT_SHADER)
);
Glean.characteristics.glPrecisionVertex.set(
JSON.stringify(results.shaderPrecision.VERTEX_SHADER)
);
} }
async pageLoaded(browsingContext, data) { async pageLoaded(browsingContext, data) {

Просмотреть файл

@ -666,7 +666,7 @@ async function populateVoiceList() {
return uri; return uri;
} }
async function processVoices(voices) { async function stringifyVoices(voices) {
voices = voices voices = voices
.map(voice => ({ .map(voice => ({
voiceURI: trimVoiceURI(voice.voiceURI), voiceURI: trimVoiceURI(voice.voiceURI),
@ -688,18 +688,18 @@ async function populateVoiceList() {
); );
const defaultVoice = voices.find(voice => voice.default); const defaultVoice = voices.find(voice => voice.default);
voices = voices.map(voice => voice.voiceURI).sort(); voices = voices.map(voice => voice.voiceURI);
return { return JSON.stringify({
voicesCount: voices.length, count: voices.length,
voicesLocalCount: localServices.length, localServices: localServices.length,
voicesDefault: defaultVoice ? defaultVoice.voiceURI : null, defaultVoice: defaultVoice ? defaultVoice.voiceURI : null,
voicesSample: sample(voices, 5).join(","), samples: sample(voices, 5),
voicesSha1: await sha1(voices.join("|")), sha1: await sha1(voices.join("|")),
voicesAllSsdeep: ssdeep.digest(voices.join("|")), allHash: ssdeep.digest(voices.join("|")),
voicesLocalSsdeep: ssdeep.digest(localServices.join("|")), localHash: ssdeep.digest(localServices.join("|")),
voicesNonlocalSsdeep: ssdeep.digest(nonLocalServices.join("|")), nonLocalHash: ssdeep.digest(nonLocalServices.join("|")),
}; });
} }
function fetchVoices() { function fetchVoices() {
@ -722,7 +722,9 @@ async function populateVoiceList() {
return Promise.race([promise, timeout]); return Promise.race([promise, timeout]);
} }
return fetchVoices().then(processVoices); return {
voices: fetchVoices().then(stringifyVoices),
};
} }
async function populateMediaCapabilities() { async function populateMediaCapabilities() {
@ -812,18 +814,11 @@ async function populateMediaCapabilities() {
} }
} }
return capabilities; return JSON.stringify(capabilities);
} }
const capabilities = await getCapabilities();
return { return {
mediaCapabilitiesUnsupported: JSON.stringify(capabilities.unsupported), mediaCapabilities: getCapabilities(),
mediaCapabilitiesNotSmooth: JSON.stringify(capabilities.notSmooth),
mediaCapabilitiesNotEfficient: JSON.stringify(
capabilities.notPowerEfficient
),
mediaCapabilitiesH264: JSON.stringify(capabilities.h264),
}; };
} }
@ -1017,11 +1012,12 @@ async function populateICEFoundations() {
// With no other peers, we wouldn't get prflx candidates. // With no other peers, we wouldn't get prflx candidates.
// Relay type of candidates require a turn server. // Relay type of candidates require a turn server.
// srflx candidates require a stun server. // So, we'll only get host and srflx candidates.
// So, we'll only get host candidates.
const result = { const result = {
latencies: [], hostLatencies: [],
foundations: [], hostFoundations: [],
srflxLatencies: [],
srflxFoundations: [],
}; };
let lastTime; let lastTime;
@ -1032,12 +1028,14 @@ async function populateICEFoundations() {
return latency; return latency;
} }
const pc = new RTCPeerConnection(); const pc = new RTCPeerConnection({
iceServers: [{ urls: ["stun:stun.l.google.com:19302"] }],
});
pc.onicecandidate = e => { pc.onicecandidate = e => {
const latency = calculateLatency(); const latency = calculateLatency();
if (e.candidate && e.candidate.candidate !== "") { if (e.candidate && e.candidate.candidate !== "") {
result.latencies.push(latency); result[e.candidate.type + "Latencies"].push(latency);
result.foundations.push(e.candidate.foundation); result[e.candidate.type + "Foundations"].push(e.candidate.foundation);
} }
}; };
pc.onicegatheringstatechange = () => { pc.onicegatheringstatechange = () => {
@ -1060,33 +1058,51 @@ async function populateICEFoundations() {
// Run get candidates multiple times to see if foundation order changes // Run get candidates multiple times to see if foundation order changes
// and calculate standard deviation of latencies // and calculate standard deviation of latencies
const latencies = []; const allLatencies = {
const foundations = {}; srflx: [],
host: [],
};
const allFoundations = {
srflx: {},
host: {},
};
for (let i = 0; i < 10; i++) { for (let i = 0; i < 10; i++) {
const result = await getFoundationsAndLatencies(); const result = await getFoundationsAndLatencies();
const hostFoundations = result.hostFoundations.join("");
const srflxFoundations = result.srflxFoundations.join("");
latencies.push(result.latencies); allLatencies.host.push(result.hostLatencies);
allLatencies.srflx.push(result.srflxLatencies);
const hostFoundations = result.foundations.join("");
if (hostFoundations) { if (hostFoundations) {
foundations[hostFoundations] = (foundations[hostFoundations] ?? 0) + 1; allFoundations.host[hostFoundations] =
(allFoundations.host[hostFoundations] ?? 0) + 1;
}
if (srflxFoundations) {
allFoundations.srflx[srflxFoundations] =
(allFoundations.srflx[srflxFoundations] ?? 0) + 1;
} }
} }
const sdLatencies = []; const sdLatencies = {
for (let i = 0; i < (latencies?.[0]?.length ?? 0); i++) { host: [],
sdLatencies.push(standardDeviation(latencies.map(a => a[i]))); srflx: [],
};
for (let i = 0; i < (allLatencies.host?.[0]?.length ?? 0); i++) {
sdLatencies.host.push(standardDeviation(allLatencies.host.map(a => a[i])));
}
for (let i = 0; i < (allLatencies.srflx?.[0]?.length ?? 0); i++) {
sdLatencies.srflx.push(
standardDeviation(allLatencies.srflx.map(a => a[i]))
);
} }
const sd =
sdLatencies.length > 1
? (sdLatencies.reduce((acc, val) => acc + val, 0) / sdLatencies.length) *
1000
: 0;
return { return {
iceSd: sd, iceFoundations: JSON.stringify({
iceOrder: Object.keys(foundations).length, uniqueHostOrder: Object.keys(allFoundations.host).length,
uniqueSrflxOrder: Object.keys(allFoundations.srflx).length,
sdLatencies,
}),
}; };
} }

Просмотреть файл

@ -1710,289 +1710,19 @@ characteristics:
data_sensitivity: data_sensitivity:
- interaction - interaction
gl_version: webglinfo:
type: quantity
unit: int
description: >
The version of OpenGL supported by the user's system.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_extensions:
type: text type: text
description: > description: >
The list of OpenGL extensions supported by the user's system. A JSON blob that contains information about the graphics hardware exposed by WebGL.
lifetime: application lifetime: application
send_in_pings: send_in_pings:
- user-characteristics - user-characteristics
notification_emails: notification_emails:
- tom@mozilla.com - tom@mozilla.com
bugs: bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090 - https://bugzilla.mozilla.org/show_bug.cgi?id=1896101
data_reviews: data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5 - https://bugzilla.mozilla.org/show_bug.cgi?id=xxx
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_extensions_raw:
type: text
description: >
The raw list of OpenGL extensions supported by the user's system.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_renderer:
type: string
description: >
The OpenGL renderer string.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_renderer_raw:
type: string
description: >
The raw OpenGL renderer string.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_vendor:
type: string
description: >
The OpenGL vendor string.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_vendor_raw:
type: string
description: >
The raw OpenGL vendor string.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_version_raw:
type: string
description: >
The raw OpenGL version string.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_fragment_shader:
type: string
description: >
Hash of the transformed source of the fragment shader.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_vertex_shader:
type: string
description: >
Hash of the transformed source of the vertex shader.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
- technical
gl_minimal_source:
type: text
description: >
Transformed source of the minimal shader.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_params_extensions:
type: text
description: >
The list of GL parameters of the extensions.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_params_v1:
type: text
description: >
The list of GL parameters of GL1.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_params_v2:
type: text
description: >
The list of GL parameters of GL2.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_precision_fragment:
type: text
description: >
Precisions of the fragment shader.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
gl_precision_vertex:
type: text
description: >
Precisions of the vertex shader.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c5
expires: never expires: never
data_sensitivity: data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this # Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
@ -2017,66 +1747,10 @@ characteristics:
data_sensitivity: data_sensitivity:
- interaction - interaction
voices_count: voices:
type: quantity
unit: int
description: >
Number of speechSynthesis voices available to the user.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
- technical
voices_local_count:
type: quantity
unit: int
description: >
Number of local speechSynthesis voices available to the user.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
- technical
voices_default:
type: string
description: >
The default speechSynthesis voice.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
- technical
voices_sample:
type: text type: text
description: > description: >
Names of 5 sample speechSynthesis voices. Available speechSynthesis voices.
lifetime: application lifetime: application
send_in_pings: send_in_pings:
- user-characteristics - user-characteristics
@ -2084,89 +1758,15 @@ characteristics:
- tom@mozilla.com - tom@mozilla.com
bugs: bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151 - https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090 - https://bugzilla.mozilla.org/show_bug.cgi?id=1886387
data_reviews: data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3 - https://bugzilla.mozilla.org/show_bug.cgi?id=1886387#c4
expires: never expires: never
data_sensitivity: data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this # Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive. # is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive - highly_sensitive
voices_sha1:
type: text
description: >
SHA1 hash of all the voices.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
voices_all_ssdeep:
type: string
description: >
ssdeep hash of all speechSynthesis voices.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
- technical
voices_local_ssdeep:
type: string
description: >
ssdeep hash of local speechSynthesis voices.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
- technical
voices_nonlocal_ssdeep:
type: string
description: >
ssdeep hash of non-local speechSynthesis voices.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c3
expires: never
data_sensitivity:
- technical
zoom_count: zoom_count:
type: quantity type: quantity
unit: int unit: int
@ -2407,11 +2007,11 @@ characteristics:
data_sensitivity: data_sensitivity:
- technical - technical
camera_count: media_devices:
type: quantity type: text
unit: int
description: > description: >
Number of cameras available on the device. A JSON object containing the number of audio input/output, video input and
the number of unique group ids.
lifetime: application lifetime: application
send_in_pings: send_in_pings:
- user-characteristics - user-characteristics
@ -2419,88 +2019,14 @@ characteristics:
- tom@mozilla.com - tom@mozilla.com
bugs: bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151 - https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090 - https://bugzilla.mozilla.org/show_bug.cgi?id=1896736
data_reviews: data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c2 - https://bugzilla.mozilla.org/show_bug.cgi?id=1896736#c4
expires: never expires: never
data_sensitivity: data_sensitivity:
- technical # Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
microphone_count: - highly_sensitive
type: quantity
unit: int
description: >
Number of microphones available on the device.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c2
expires: never
data_sensitivity:
- technical
speaker_count:
type: quantity
unit: int
description: >
Number of speakers available on the device.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c2
expires: never
data_sensitivity:
- technical
group_count:
type: quantity
unit: int
description: >
Number of device groups reported by the device.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c2
expires: never
data_sensitivity:
- technical
group_count_wo_speakers:
type: quantity
unit: int
description: >
Number of device groups without speakers reported by the device.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1879151
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c2
expires: never
data_sensitivity:
- technical
audio_frames: audio_frames:
type: quantity type: quantity
@ -2595,76 +2121,19 @@ characteristics:
data_sensitivity: data_sensitivity:
- interaction - interaction
media_capabilities_unsupported: media_capabilities:
type: text type: text
description: > description: >
Which, if any, media types are not supported. Which, if any, media types are not supported, and whether they can be run smoothly and power-efficiently.
lifetime: application lifetime: application
send_in_pings: send_in_pings:
- user-characteristics - user-characteristics
notification_emails: notification_emails:
- tom@mozilla.com - tom@mozilla.com
bugs: bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090 - https://bugzilla.mozilla.org/show_bug.cgi?id=1899181
data_reviews: data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c1 - https://bugzilla.mozilla.org/show_bug.cgi?id=1899181#c3
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
media_capabilities_not_smooth:
type: text
description: >
Which, if any, media types are not smooth.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c1
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
media_capabilities_not_efficient:
type: text
description: >
Which, if any, media types are not power efficient.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c1
expires: never
data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
- highly_sensitive
media_capabilities_h264:
type: text
description: >
Levels of support for H264 codec.
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c1
expires: never expires: never
data_sensitivity: data_sensitivity:
# Text metrics are _required_ to be web_activity or highly_sensitive, so even though this # Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
@ -2857,41 +2326,25 @@ characteristics:
data_sensitivity: data_sensitivity:
- technical - technical
ice_order: ice_foundations:
type: quantity type: text
unit: int
description: > description: >
Unique ICE foundations occurrence count Unique ICE foundations occurance count and the
standard deviation of latencies
lifetime: application lifetime: application
send_in_pings: send_in_pings:
- user-characteristics - user-characteristics
notification_emails: notification_emails:
- tom@mozilla.com - tom@mozilla.com
bugs: bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090 - https://bugzilla.mozilla.org/show_bug.cgi?id=1902003
data_reviews: data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c4 - https://bugzilla.mozilla.org/show_bug.cgi?id=1902003#c2
expires: never expires: never
data_sensitivity: data_sensitivity:
- technical # Text metrics are _required_ to be web_activity or highly_sensitive, so even though this
# is more like 'technical' (per the Data Review), I'm marking highly sensitive.
ice_sd: - highly_sensitive
type: quantity
unit: int
description: >
ICE foundation discovery latency standard deviation sum multiplied by 1000
lifetime: application
send_in_pings:
- user-characteristics
notification_emails:
- tom@mozilla.com
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1919090#c4
expires: never
data_sensitivity:
- technical
pointer_height: pointer_height:
type: quantity type: quantity

Просмотреть файл

@ -461,14 +461,12 @@ RefPtr<PopulatePromise> PopulateMediaDevices() {
} }
} }
glean::characteristics::camera_count.Set(cameraCount); nsCString json;
glean::characteristics::microphone_count.Set(microphoneCount); json.AppendPrintf(
glean::characteristics::speaker_count.Set(speakerCount); R"({"cameraCount": %u, "microphoneCount": %u, "speakerCount": %u, "groupCount": %zu, "groupCountWoSpeakers": %zu})",
glean::characteristics::group_count.Set( cameraCount, microphoneCount, speakerCount, groupIds.size(),
static_cast<int64_t>(groupIds.size())); groupIdsWoSpeakers.size());
glean::characteristics::group_count_wo_speakers.Set( glean::characteristics::media_devices.Set(json);
static_cast<int64_t>(groupIdsWoSpeakers.size()));
populatePromise->Resolve(void_t(), __func__); populatePromise->Resolve(void_t(), __func__);
}, },
[=](RefPtr<MediaMgrError>&& reason) { [=](RefPtr<MediaMgrError>&& reason) {
@ -667,7 +665,7 @@ const RefPtr<PopulatePromise>& TimoutPromise(
// metric is set, this variable should be incremented. It'll be a lot. It's // metric is set, this variable should be incremented. It'll be a lot. It's
// okay. We're going to need it to know (including during development) what is // okay. We're going to need it to know (including during development) what is
// the source of the data we are looking at. // the source of the data we are looking at.
const int kSubmissionSchema = 6; const int kSubmissionSchema = 5;
const auto* const kUUIDPref = const auto* const kUUIDPref =
"toolkit.telemetry.user_characteristics_ping.uuid"; "toolkit.telemetry.user_characteristics_ping.uuid";