[tor-bugs] #33939 [Applications/Tor Browser]: Decide which components of Fenix to rip out, disable, or use

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu May 14 20:33:41 UTC 2020


#33939: Decide which components of Fenix to rip out, disable, or use
----------------------------------------------+--------------------------
 Reporter:  gk                                |          Owner:  tbb-team
     Type:  task                              |         Status:  new
 Priority:  High                              |      Milestone:
Component:  Applications/Tor Browser          |        Version:
 Severity:  Normal                            |     Resolution:
 Keywords:  tbb-mobile, TorBrowserTeam202004  |  Actual Points:
Parent ID:  #33184                            |         Points:
 Reviewer:                                    |        Sponsor:
----------------------------------------------+--------------------------

Comment (by sysrqb):

 Let's see. This is the initial pass over Fenix dependencies. It doesn't
 make any judgement about which features we should keep/disable/rip-out. It
 does not look at how these features are used within Fenix and which
 functionality within Fenix should be modified. These will come in later
 comments.

 Based on Fenix (commit `3c29cb9f72cae1b3c425477750f718f912ff9b45`)
 includes:
 (`git grep -n Deps\. | grep -o Deps\..*`, and then manually filter out
 tests and duplicates, then resolving the aliases in
 `buildSrc/src/main/java/Dependencies.kt`)
 {{{
 # GeckoView
 mozilla_browser_engine_gecko_nightly -> org.mozilla.components:browser-
 engine-gecko-nightly
 mozilla_browser_engine_gecko_beta -> org.mozilla.components:browser-
 engine-gecko-beta

 # Kotlin std library
 kotlin_stdlib -> org.jetbrains.kotlin:kotlin-stdlib-jdk7

 # Import/enable coroutine functionality in Kotlin
 kotlin_coroutines -> org.jetbrains.kotlinx:kotlinx-coroutines-core
 kotlin_coroutines_android -> org.jetbrains.kotlinx:kotlinx-coroutines-
 android

 # AndroidX compatibility libraries
 androidx_appcompat -> androidx.appcompat:appcompat
 androidx_constraintlayout -> androidx.constraintlayout:constraintlayout
 androidx_coordinatorlayout -> androidx.coordinatorlayout:coordinatorlayout

 # Error/crash monitoring
 sentry -> io.sentry:sentry-android

 # Dynamically (?) creates license list
 osslicenses_library -> com.google.android.gms:play-services-oss-licenses

 # Customer engagement (with Firebase Cloud Messaging)
 leanplum_core -> com.leanplum:leanplum-core
 leanplum_fcm -> com.leanplum:leanplum-fcm

 # High-level descriptions/contracts of a browser engine
 mozilla_concept_engine -> org.mozilla.components:concept-engine

 # High-level descriptions/contracts of a push service component
 mozilla_concept_push -> org.mozilla.components:concept-push

 # High-level descriptions/contracts of a storage layer
 mozilla_concept_storage -> org.mozilla.components:concept-storage

 # High-level descriptions/contracts of a data synchronization service
 component
 mozilla_concept_sync -> org.mozilla.components:concept-sync

 # High-level descriptions/contracts of a browser toolbar
 mozilla_concept_toolbar -> org.mozilla.components:concept-toolbar

 # High-level descriptions/contracts of a tabs tray component
 mozilla_concept_tabstray -> org.mozilla.components:concept-tabstray

 # A customizable Awesome Bar implementation for browsers
 mozilla_browser_awesomebar -> org.mozilla.components:browser-awesomebar

 # Feature implementation for apps that want to use Android downloads
 manager
 mozilla_feature_downloads -> org.mozilla.components:feature-downloads

 # APIs for managing localized and customizable domain lists
 mozilla_browser_domains -> org.mozilla.components:browser-domains

 # A customizable tabs tray for browsers implementation
 mozilla_browser_tabstray -> org.mozilla.components:browser-tabstray

 # An implementation for loading and storing website icons (like favicons)
 mozilla_browser_icons -> org.mozilla.components:browser-icons

 # A generic menu implementation with customizable items
 mozilla_browser_menu -> org.mozilla.components:browser-menu

 # Search plugins and companion code to load, parse and use them
 mozilla_browser_search -> org.mozilla.components:browser-search

 # A generic representation of a browser Session and a SessionManager to
 link browser sessions to underlying Engine Sessions and SessionStorage
 mozilla_browser_session -> org.mozilla.components:browser-session

 # Maintains the centralized state of a browser engine
 mozilla_browser_state -> org.mozilla.components:browser-state

 # A syncable implementation of `concept-storage` backed by application-
 services' Places lib
 mozilla_browser_storage_sync -> org.mozilla.components:browser-storage-
 sync

 # A customizable toolbar for browsers
 mozilla_browser_toolbar -> org.mozilla.components:browser-toolbar

 # Contains building blocks for features implemented as web extensions
 mozilla_support_extensions -> org.mozilla.components:support-webextensions

 # Provides functionality for managing add-ons
 mozilla_feature_addons -> org.mozilla.components:feature-addons

 # Ties together an FxaAccountManager with the tabs feature, to facilitate
 OAuth authentication flows managed by the account manager
 mozilla_feature_accounts -> org.mozilla.components:feature-accounts

 # Support opening non-browser apps and `intent://` style URLs
 mozilla_feature_app_links -> org.mozilla.components:feature-app-links

 # Connects a concept-awesomebar implementation to a concept-toolbar
 implementation and provides implementations of various suggestion
 providers
 mozilla_feature_awesomebar -> org.mozilla.components:feature-awesomebar

 # Displaying context menus when *long-pressing* web content
 mozilla_feature_contextmenu -> org.mozilla.components:feature-contextmenu

 # Providing Custom Tabs functionality in browsers
 mozilla_feature_customtabs -> org.mozilla.components:feature-customtabs

 # Provides intent processing functionality by combining various other
 feature modules
 mozilla_feature_intent -> org.mozilla.components:feature-intent

 # Provides website media related features
 mozilla_feature_media -> org.mozilla.components:feature-media

 # Handles common prompt dialogs from web content like select, option and
 menu html elements
 mozilla_feature_prompts -> org.mozilla.components:feature-prompts

 # Implements push notifications with a supported push service
 mozilla_feature_push -> org.mozilla.components:feature-push

 # Implementation for Progressive Web Apps (PWA)
 mozilla_feature_pwa -> org.mozilla.components:feature-pwa

 # Provides functionality for scanning QR codes
 mozilla_feature_qr -> org.mozilla.components:feature-qr

 # Connects an (concept) engine implementation with the browser search
 module
 mozilla_feature_search -> org.mozilla.components:feature-search

 # Connects an (concept) engine implementation with the browser session
 module
 mozilla_feature_session -> org.mozilla.components:feature-session

 # Connects a (concept) toolbar implementation with the browser session
 module
 mozilla_feature_toolbar -> org.mozilla.components:feature-toolbar

 # Connects a trabs tray implementation with the session and toolbar
 modules
 mozilla_feature_tabs -> org.mozilla.components:feature-tabs

 # Provides Find in Page functionality
 mozilla_feature_findinpage -> org.mozilla.components:feature-findinpage

 # Shows site permission request prompts
 mozilla_feature_site_permissions -> org.mozilla.components:feature-
 sitepermissions

 # Wraps/Provides a Reader View WebExtension
 mozilla_feature_readerview -> org.mozilla.components:feature-readerview

 # Implementation for saving, restoring and organizing collections of tabs
 mozilla_feature_tab_collections -> org.mozilla.components:feature-tab-
 collections

 # Implementation for saving and removing top sites
 mozilla_feature_top_sites -> org.mozilla.components:feature-top-sites

 # Implementation for saving and sorting recent apps used for sharing
 mozilla_feature_share -> org.mozilla.components:feature-share

 # Sends tabs to other devices with a registered FxA Account
 mozilla_feature_accounts_push -> org.mozilla.components:feature-accounts-
 push

 # Website-hotfixing via the Web Compatibility System-Addon
 mozilla_feature_webcompat -> org.mozilla.components:feature-webcompat

 # Displays web notifications
 mozilla_feature_webnotifications -> org.mozilla.components:feature-
 webnotifications

 # Integrating with Firefox Sync - Logins
 mozilla_service_sync_logins -> org.mozilla.components:service-sync-logins

 # Integrating with Firefox Accounts
 mozilla_service_firefox_accounts -> org.mozilla.components:service-
 firefox-accounts

 # Client-side telemetry SDK for collecting metrics and sending them to
 Mozilla's telemetry service
 mozilla_service_glean -> org.mozilla.components:service-glean

 # SDK for running experiments on user segments in multiple branches
 mozilla_service_experiments -> org.mozilla.components:service-experiments

 # Accessing Mozilla's and other location services
 mozilla_service_location -> org.mozilla.components:service-location

 # Base or core component containing building blocks and interfaces for
 other components
 mozilla_support_base -> org.mozilla.components:support-base

 # A set of (Mozilla) Kotlin extensions on top of the Android framework and
 Kotlin standard library
 mozilla_support_ktx -> org.mozilla.components:support-ktx

 # Enables logging from Rust code.
 mozilla_support_rustlog -> org.mozilla.components:support-rustlog

 # Generic utility classes to be shared between projects.
 mozilla_support_utils -> org.mozilla.components:support-utils

 # Allow apps to change the system defined language by their custom one
 mozilla_support_locale -> org.mozilla.components:support-locale

 # Helper code to migrate from a Fennec-based (Firefox for Android) app to
 an Android Components based app
 mozilla_support_migration -> org.mozilla.components:support-migration

 # The standard set of Photon colors
 mozilla_ui_colors -> org.mozilla.components:ui-colors

 # A collection of often used browser icons.
 mozilla_ui_icons -> org.mozilla.components:ui-icons

 # A library for reading and using the Public Suffix List.
 mozilla_ui_publicsuffixlist -> org.mozilla.components:lib-publicsuffixlist

 # A generic crash reporter component that can report crashes to multiple
 services
 mozilla_lib_crash -> org.mozilla.components:lib-crash

 # A concept-push implementation using Firebase Cloud Messaging (FCM)
 mozilla_lib_push_firebase -> org.mozilla.components:lib-push-firebase

 # A component using AndroidKeyStore to protect user data
 mozilla_lib_dataprotect -> org.mozilla.components:lib-dataprotect

 # More AndroidX compatibility libraries
 androidx_legacy -> androidx.legacy:legacy-support-v4
 androidx_biometric -> androidx.biometric:biometric
 androidx_paging -> androidx.paging:paging-runtime-ktx
 androidx_preference -> androidx.preference:preference-ktx
 androidx_fragment -> androidx.fragment:fragment-ktx
 androidx_navigation_fragment -> androidx.navigation:navigation-fragment-
 ktx
 androidx_navigation_ui -> androidx.navigation:navigation-ui
 androidx_recyclerview -> androidx.recyclerview:recyclerview
 androidx_lifecycle_livedata -> androidx.lifecycle:lifecycle-livedata-ktx
 androidx_lifecycle_runtime -> androidx.lifecycle:lifecycle-runtime-ktx
 androidx_lifecycle_viewmodel -> androidx.lifecycle:lifecycle-viewmodel-ktx
 androidx_core -> androidx.core:core
 androidx_core_ktx -> androidx.core:core-ktx
 androidx_transition -> androidx.transition:transition
 androidx_work_ktx -> androidx.work:work-runtime-ktx

 # Material Components for Android
 google_material -> com.google.android.material

 # Provides similar capabilities of CSS Flexible Box Layout Module
 google_flexbox -> com.google.android:flexbox

 # Renders After Effects animations in real time
 lottie -> com.airbnb.android:lottie

 # Mobile measurement and fraud prevention (tracks app installation)
 adjust -> com.adjust.sdk:adjust-android

 # Install Referrer
 installreferrer // Required by Adjust ->
 com.android.installreferrer:installreferrer

 # Obtain the Google Advertising ID from the device for use as a unique
 telemetry identifier
 google_ads_id // Required for the Google Advertising ID ->
 com.google.android.gms:play-services-ads-identifier
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33939#comment:2>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list