Core components

Every browser will need two core components:

  • browser-state - Representing the state of the browser (“What tabs are opened?”, “What URLs are they pointing to?”)
  • browser-engine - The browser engine that transforms web pages into an interactive visual representation. The browser-engine component comes in multiple flavors. We are supporting Android’s WebView (limited feature set) and GeckoView (Release, Beta and Nightly channels) currently. The actual implementation is hidden behind generic interfaces so that apps can build against multiple engines (e.g. based on product flavor) and so that other components work seamlessly with all implementations.

Other high-level browser components may depend on those core components.

Building blocks

The following components offer customizable building blocks for browser apps:

  • browser-toolbar - A customizable browser toolbar for displaying and editing URLs, actions buttons and menus.
  • browser-domains - Localized and customizable domain lists for auto-completion in browsers.
  • browser-errorpages - Localized and responsive error pages for mobile browsers.
  • browser-search - Localized search plugins and code for loading and parsing them as well as querying search engines for search suggestions.
  • browser-tabstray - A customizable tabs tray component for mobile browsers.
  • browser-menu - A customizable overflow menu. Can be used with browser-toolbar.


Feature components connect multiple components together and implement complete browser features.

List of feature components in the android-components repository


Components for Android apps - browsers and other apps.

UI components

Independent, small visual UI elements to use in applications.




List of all components in the android-components repository