tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit bad6494dd2179d1dbc950f6645a291737e1cb0f8
parent 0147760b374da72c6451351843ba53400d12a44a
Author: Paul Bone <paul@bone.id.au>
Date:   Tue,  9 Dec 2025 03:12:40 +0000

Bug 1996828 - Make creation of MemoryTelemetry explicit r=toolkit-telemetry-reviewers,chutten

Until telemetry is initialised MemoryTelemetry will consume no memory.

Differential Revision: https://phabricator.services.mozilla.com/D274873

Diffstat:
Mtoolkit/components/telemetry/core/Telemetry.cpp | 4++--
Mxpcom/base/MemoryTelemetry.cpp | 8+++++++-
Mxpcom/base/MemoryTelemetry.h | 3+++
3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/toolkit/components/telemetry/core/Telemetry.cpp b/toolkit/components/telemetry/core/Telemetry.cpp @@ -1212,8 +1212,8 @@ TelemetryImpl::EarlyInit() { // Don't do anything if EarlyInit ran already. return NS_OK; } - mMemoryTelemetry = MemoryTelemetry::Get(); - + mMemoryTelemetry = MemoryTelemetry::Create(); + MOZ_ASSERT(mMemoryTelemetry); return NS_OK; } diff --git a/xpcom/base/MemoryTelemetry.cpp b/xpcom/base/MemoryTelemetry.cpp @@ -139,7 +139,7 @@ void MemoryTelemetry::Init() { static StaticRefPtr<MemoryTelemetry> sInstance; -/* static */ RefPtr<MemoryTelemetry> MemoryTelemetry::Get() { +/* static */ RefPtr<MemoryTelemetry> MemoryTelemetry::Create() { MOZ_ASSERT(NS_IsMainThread()); if (!sInstance) { @@ -147,6 +147,12 @@ static StaticRefPtr<MemoryTelemetry> sInstance; sInstance->Init(); ClearOnShutdown(&sInstance); } + + return sInstance; +} + +/* static */ RefPtr<MemoryTelemetry> MemoryTelemetry::Get() { + MOZ_ASSERT(NS_IsMainThread()); return sInstance; } diff --git a/xpcom/base/MemoryTelemetry.h b/xpcom/base/MemoryTelemetry.h @@ -37,6 +37,9 @@ class MemoryTelemetry final : public nsIObserver, NS_DECL_THREADSAFE_ISUPPORTS NS_DECL_NSIOBSERVER + static RefPtr<MemoryTelemetry> Create(); + + // May return null if instance hasn't been created or was destroyed. static RefPtr<MemoryTelemetry> Get(); nsresult GatherReports(