Name Description Size
AboutHomeMiddleware.kt [Middleware] implementation for overriding the title of the "about:home" homepage tab with the provided [homepageTitle]. @param homepageTitle The title of the homepage tab. 1622
AccountAbnormalities.kt Miscellaneous FxA-related abnormalities. 6314
accounts
Analytics.kt Component group for all functionality related to analytics e.g. crash reporting and telemetry. 7920
appstate
AppStore.kt A [Store] that holds the [AppState] for the app and reduces [AppAction]s dispatched to the store. This store is not persisted to disk and is scoped to the life-cycle of the application. 920
BackgroundServices.kt The additional time to wait after the "undo closed tab" snackbar has disappeared before triggering a [SyncedTabsCommands] flush. 14648
bookmarks
ChangeDetectionMiddleware.kt A Middleware for detecting changes to a state property, and offering a callback that captures the action that changed the property, the property before the change, and the property after the change. For example, this can be useful for debugging: ``` val selectedTabChangedMiddleware: Middleware<BrowserState, BrowserAction> = ChangeDetectionMiddleware( val selector = { it.selectedTabId } val onChange = { actionThatCausedResult, preResult, postResult -> logger.debug("$actionThatCausedResult changed selectedTabId from $preResult to $postResult") } ``` @param selector A function to map from the State to the properties that are being inspected. @param onChange A callback to react to changes to the properties defined by [selector]. 1703
Components.kt Provides access to all components. This class is an implementation of the Service Locator pattern, which helps us manage the dependencies in our app. Note: these aren't just "components" from "android-components": they're any "component" that can be considered a building block of our app. 14905
Core.kt 33711
FenixAutocompletePrompt.kt Fenix specific implementation of [AutocompletePrompt]. This class accomplishes two things: 1. Allows us to add Fenix specific CoordinatorLayout behavior when a prompt is presented. 2. The `PromptFeature` delegates require an [AutocompletePrompt] on initialization. With Bug 1947519 we need to have the ability to delay creating the view until we need it. This class allows us to pass a concrete [AutocompletePrompt] to the `PromptFeature` and lazily initialize the view. @param viewProvider Closure to provide a view of type V where V is a View AND an [AutocompletePrompt]. @param toolbarPositionProvider Closure to provide the current [ToolbarPosition]. @param onShow callback that is called when the prompt is presented. @param onHide callback that is called when the prompt is dismissed. 4037
FenixSuggestStrongPasswordPrompt.kt Fenix specific implementation of [PasswordPromptView]. This class accomplishes two things: 1. Allows us to add Fenix specific CoordinatorLayout behavior when a prompt is presented. 2. The `PromptFeature` delegates require a [PasswordPromptView] on initialization. With Bug 1947519 we need to have the ability to delay creating the view until we need it. This class allows us to pass a concrete [PasswordPromptView] to the `PromptFeature` and lazily initialize the view. @param viewProvider Closure to provide a view of type V where V is a View AND an [PasswordPromptView]. @param toolbarPositionProvider Closure to provide the current [ToolbarPosition]. @param onShow callback that is called when the prompt is presented. @param onHide callback that is called when the prompt is dismissed. @see [FenixAutocompletePrompt] 3147
FindInPageIntegration.kt BrowserFragment delegate to handle all layout updates needed to show or hide the find in page bar. @param store The [BrowserStore] used to look up the current selected tab. @param appStore The [AppStore] used to update the [AppState.showFindInPage] state. @param sessionId ID of the [store] session in which the query will be performed. @param view The [FindInPageBar] view to display. @param engineView the browser in which the queries will be made and which needs to be better positioned to suit the find in page bar. @param toolbarsHideCallback Callback to hide all toolbars to ensure an unobstructed browser page in which to search and present results. @param toolbarsResetCallback Callback to reset the toolbars to how they should be displayed after this feature is dismissed. @param findInPageHeight The height of the find in page bar. 3973
FxaServer.kt Utility to configure Firefox Account servers. 1199
FxSuggest.kt Component group for Firefox Suggest. @param context The Android application context. @param remoteSettingsService: Remote settings service to get suggestions from 1022
GleanHelper.kt Helper function to initialize Glean. [applicationContext] the application context required for glean initialization. [logger] the logger to send logs about initializing Glean. [isTelemetryUploadEnabled] indicate if telemetry should be enabled to be uploaded. [client] an instance of [Client] used to upload metrics. 3013
history
HomepageThumbnailIntegration.kt HomeFragment delegate to take screenshot of homepage when view loads and display as a thumbnail in tabstray. @param context A [Context] used to check for low memory. @param view The [View] to take screenshot of. @param store The [BrowserStore] used to look up the current selected tab. @param appStore The [AppStore] used to look up the current browsing mode. 3276
IntentProcessors.kt Component group for miscellaneous components. 3488
IntentProcessorType.kt The destination activity based on this intent 1861
menu
metrics
MetricsServiceHelper.kt Helper function to start metric services if they are enabled. @param logger the logger to send logs about metrics service start. @param analytics [Analytics] component to be started if needed. @param isTelemetryEnabled indicate if the telemetry metric should be started. @param isMarketingTelemetryEnabled indicate if the marketing metric should be started. @param isDailyUsagePingEnabled indicate if the daily usage ping metric should be started. 1562
NimbusComponents.kt Component group for access to Nimbus and other Nimbus services. 3850
NotificationManager.kt Manages notification channels and allows displaying different types of notifications. 9499
PerformanceComponent.kt Component group for all functionality related to performance. 2687
PermissionStorage.kt Persists the [sitePermissions] provided as a parameter. @param sitePermissions The [SitePermissions] to be stored. @param private Indicates if the [SitePermissions] belongs to a private session. 3361
PlayStoreReviewPromptController.kt Wraps the Play Store In-App Review API. 4656
PrivateShortcutCreateManager.kt A wrapper for ShortcutManagerCompat to simplify testing. This interface abstracts the static methods of ShortcutManagerCompat, allowing for easier mocking and verification in unit tests. 7922
Push.kt Component group for push services. These components use services that strongly depend on push messaging (e.g. WebPush, SendTab). 2463
search
Services.kt Component group which encapsulates foreground-friendly services. 2035
settings
SnackbarBehavior.kt [CoordinatorLayout.Behavior] to be used by a snackbar that want to ensure it it always positioned such that it will be shown on top (vertically) of other siblings that may obstruct it's view. @param context [Context] used for various system interactions. @property toolbarPosition Where the toolbar is positioned on the screen. Depending on it's position (top / bottom) the snackbar will be shown below / above the toolbar. @param shouldUseExpandedToolbar Whether the expanded toolbar layout should be used. 3767
StartupMiddleware.kt [Middleware] implementation for adding a homepage tab during application startup to ensure that a tab is always available. @param applicationContext The application [Context]. @param repository [HomepageAsANewTabPreferencesRepository] used to access the homepage as a new tab preferences. 2411
StoreProvider.kt Generic ViewModel wrapper of a [Store] helping to persist it across process/activity recreations. @param createStore [Store] factory receiving also the [ViewModel.viewModelScope] associated with this [ViewModel]. 2939
TabCollectionStorage.kt Interface to be implemented by classes that want to observe the storage 4580
toolbar
TrackingProtectionPolicyFactory.kt Handles the logic behind creating new [TrackingProtectionPolicy]s. 6943
usecases
UseCases.kt Component group for all use cases. Use cases are provided by feature modules and can be triggered by UI interactions. 5846
VoiceSearchFeature.kt A generic feature for handling voice search requests and results. - Observes voice search requests from the AppStore. - Launches voice recognition and updates AppStore with the result. - Does NOT update any UI or toolbar state directly. Other features (such as toolbar middleware) should observe AppStore for voice search results and update their own state accordingly. 3355