Skip to content

Commit

Permalink
Refactor FXIOS-10711 Log event for tab loss bugs (#24328)
Browse files Browse the repository at this point in the history
[FXIOS-10711] Fatal log for tab loss detected

(cherry picked from commit c1a0e89)
  • Loading branch information
mattreaganmozilla authored and mergify[bot] committed Jan 27, 2025
1 parent c314556 commit ea654fb
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions firefox-ios/Client/Telemetry/TabErrorTelemetryHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit ea654fb

Please sign in to comment.