From 092454295e3a884baa39984d4ea0316bc1a77d79 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:29:19 -0500 Subject: [PATCH] Refactor FXIOS-10711 Log event for tab loss bugs (backport #24328) (#24370) Refactor FXIOS-10711 Log event for tab loss bugs (#24328) [FXIOS-10711] Fatal log for tab loss detected (cherry picked from commit c1a0e89597dcac12f58a5cdf6dd854b5ad0a3c2f) Co-authored-by: mattreaganmozilla <145381717+mattreaganmozilla@users.noreply.github.com> --- .../Client/Telemetry/TabErrorTelemetryHelper.swift | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/firefox-ios/Client/Telemetry/TabErrorTelemetryHelper.swift b/firefox-ios/Client/Telemetry/TabErrorTelemetryHelper.swift index 9807d94faf4a..2ac4823e2e84 100644 --- a/firefox-ios/Client/Telemetry/TabErrorTelemetryHelper.swift +++ b/firefox-ios/Client/Telemetry/TabErrorTelemetryHelper.swift @@ -13,13 +13,16 @@ final class TabErrorTelemetryHelper { private let telemetryWrapper: TelemetryWrapperProtocol private let defaults: UserDefaultsInterface private let windowManager: WindowManager + private let logger: Logger - private init(telemetryWrapper: TelemetryWrapperProtocol = TelemetryWrapper.shared, + private init(logger: Logger = DefaultLogger.shared, + telemetryWrapper: TelemetryWrapperProtocol = TelemetryWrapper.shared, windowManager: WindowManager = AppContainer.shared.resolve(), defaults: UserDefaultsInterface = UserDefaults.standard) { self.telemetryWrapper = telemetryWrapper self.defaults = defaults self.windowManager = windowManager + self.logger = logger } // MARK: - Public API @@ -55,7 +58,7 @@ final class TabErrorTelemetryHelper { if expectedTabCount > 1 && (expectedTabCount - currentTabCount) > 1 { // Potential tab loss bug detected. Log a MetricKit error. - sendTelemetryTabLossDetectedEvent() + sendTelemetryTabLossDetectedEvent(expected: expectedTabCount, actual: currentTabCount) } // After validating the tab count, we make sure to remove the count @@ -86,7 +89,10 @@ final class TabErrorTelemetryHelper { return windowManager.tabManager(for: window).normalTabs.count } - private func sendTelemetryTabLossDetectedEvent() { + private func sendTelemetryTabLossDetectedEvent(expected: Int, actual: Int) { + logger.log("Tab loss detected. Expected: \(expected). Actual: \(actual). Windows: \(windowManager.windows.count)", + level: .fatal, + category: .tabs) telemetryWrapper.recordEvent(category: .information, method: .error, object: .app,