Summary
PRIVACY_FLAGS in apps/desktop/src/chromium-flags.ts includes --metrics-recording-only=false, which does not disable telemetry — contradicting the block's own doc comment and the project's "No telemetry by default" rule.
Details
PRIVACY_FLAGS is documented as flags that "hard-disable phone-home / telemetry / sponsored surfaces" and is applied by default whenever telemetry isn't opted into (buildLaunchFlags). But --metrics-recording-only only ever governs local metrics recording; passing =false does not turn telemetry off, so its presence here is at best a no-op and at worst misleading given the stated guarantee.
The real no-telemetry posture comes from the other PRIVACY_FLAGS (--disable-background-networking, --disable-breakpad, --disable-crash-reporter, --no-pings, --disable-domain-reliability) plus the compile-time build config.
Fix
Remove the misleading flag. It cannot weaken privacy (the flag never disabled telemetry), and it removes a switch whose name falsely implies it does. The dynamic-iteration test (for (const f of PRIVACY_FLAGS)) needs no change. PR opened.
Summary
PRIVACY_FLAGSinapps/desktop/src/chromium-flags.tsincludes--metrics-recording-only=false, which does not disable telemetry — contradicting the block's own doc comment and the project's "No telemetry by default" rule.Details
PRIVACY_FLAGSis documented as flags that "hard-disable phone-home / telemetry / sponsored surfaces" and is applied by default whenever telemetry isn't opted into (buildLaunchFlags). But--metrics-recording-onlyonly ever governs local metrics recording; passing=falsedoes not turn telemetry off, so its presence here is at best a no-op and at worst misleading given the stated guarantee.The real no-telemetry posture comes from the other
PRIVACY_FLAGS(--disable-background-networking,--disable-breakpad,--disable-crash-reporter,--no-pings,--disable-domain-reliability) plus the compile-time build config.Fix
Remove the misleading flag. It cannot weaken privacy (the flag never disabled telemetry), and it removes a switch whose name falsely implies it does. The dynamic-iteration test (
for (const f of PRIVACY_FLAGS)) needs no change. PR opened.