From 037f26be8cb04a315ce3ff33e55819cc42bbc89c Mon Sep 17 00:00:00 2001 From: Andrew Osmond Date: Thu, 10 Oct 2024 14:48:04 +0000 Subject: [PATCH] Bug 1923741 - Add telemetry to measure how many users have read only system temporary folders. r=jrmuizel a=RyanVM Differential Revision: https://phabricator.services.mozilla.com/D225139 --- gfx/thebes/gfxPlatform.cpp | 13 +++++++++++++ toolkit/components/telemetry/Scalars.yaml | 15 +++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp index 4b59e4c7a3ae..b722675465d9 100644 --- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -1051,6 +1051,16 @@ void gfxPlatform::Init() { } } +static bool IsOsTempDirWritable() { + nsCOMPtr file; + nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(file)); + NS_ENSURE_SUCCESS(rv, false); + bool writable = false; + rv = file->IsWritable(&writable); + NS_ENSURE_SUCCESS(rv, false); + return writable; +} + void gfxPlatform::ReportTelemetry() { MOZ_RELEASE_ASSERT(XRE_IsParentProcess(), "GFX: Only allowed to be called from parent process."); @@ -1073,6 +1083,9 @@ void gfxPlatform::ReportTelemetry() { supportsHDR |= screen->GetIsHDR(); } Telemetry::ScalarSet(Telemetry::ScalarID::GFX_SUPPORTS_HDR, supportsHDR); + + bool tmpWritable = IsOsTempDirWritable(); + Telemetry::ScalarSet(Telemetry::ScalarID::GFX_TMP_WRITABLE, tmpWritable); } nsString adapterDesc; diff --git a/toolkit/components/telemetry/Scalars.yaml b/toolkit/components/telemetry/Scalars.yaml index dc6b23acd0da..30b94a24033f 100644 --- a/toolkit/components/telemetry/Scalars.yaml +++ b/toolkit/components/telemetry/Scalars.yaml @@ -4484,6 +4484,21 @@ gfx: record_in_processes: - 'main' release_channel_collection: opt-out + tmp_writable: + bug_numbers: + - 1923741 + description: > + Is the system temporary directory writable + expires: "134" + kind: boolean + notification_emails: + - gfx-telemetry-alerts@mozilla.com + - aosmond@mozilla.com + products: + - 'firefox' + record_in_processes: + - 'main' + release_channel_collection: opt-out apz: scrollwheel_overshoot: