[tbb-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 21:27:08 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):
The follow list partitions the dependencies into "include", "exclude",
"disable", and "must-audit" sets
"Must Audit" includes dependencies that we could allow depending on their
implementation
"Disable" includes dependencies that we probably do not want and we should
always use "Dummy" implementations
"Disable" and "Exclude" may merge into a single set.
=== Include ===
{{{
> # 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
>
> # Dynamically (?) creates license list
> osslicenses_library -> com.google.android.gms:play-services-oss-licenses
>
> # High-level descriptions/contracts of a browser engine
> mozilla_concept_engine -> org.mozilla.components:concept-engine
>
> # High-level descriptions/contracts of a storage layer
> mozilla_concept_storage -> org.mozilla.components:concept-storage
>
> # 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
>
> # 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
>
> # 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
>
> # 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
>
> # 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 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
>
> # Implementation for Progressive Web Apps (PWA)
> mozilla_feature_pwa -> org.mozilla.components:feature-pwa
>
> # 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
>
> # Displays web notifications
> mozilla_feature_webnotifications -> org.mozilla.components:feature-
webnotifications
>
> # 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
>
> # 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
>
> # More AndroidX compatibility libraries
> androidx_legacy -> androidx.legacy:legacy-support-v4
> 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
}}}
=== Disable ===
{{{
> # Implements push notifications with a supported push service
> mozilla_feature_push -> org.mozilla.components:feature-push
>
> # Feature implementation for apps that want to use Android downloads
manager
> mozilla_feature_downloads -> org.mozilla.components:feature-downloads
>
> # High-level descriptions/contracts of a push service component
> mozilla_concept_push -> org.mozilla.components:concept-push
>
> # 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
>
}}}
=== Must Audit ===
{{{
> # An implementation for loading and storing website icons (like
favicons)
> mozilla_browser_icons -> org.mozilla.components:browser-icons
>
> # 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
>
> # High-level descriptions/contracts of a data synchronization service
component
> mozilla_concept_sync -> org.mozilla.components:concept-sync>
>
> # Provides functionality for scanning QR codes
> mozilla_feature_qr -> org.mozilla.components:feature-qr
>
> # Support opening non-browser apps and `intent://` style URLs
> mozilla_feature_app_links -> org.mozilla.components:feature-app-links
>
> # Provides intent processing functionality by combining various other
feature modules
> mozilla_feature_intent -> org.mozilla.components:feature-intent
>
> # 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
>
> # 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
>
> # Accessing Mozilla's and other location services
> mozilla_service_location -> org.mozilla.components:service-location
>
> # A generic crash reporter component that can report crashes to multiple
services
> mozilla_lib_crash -> org.mozilla.components:lib-crash
>
> # 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
>
> # 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
>
> androidx_biometric -> androidx.biometric:biometric
}}}
=== Exclude (best-effort, many of these are disabled already due to
missing API keys) ===
{{{
> # Error/crash monitoring
> sentry -> io.sentry:sentry-android
>
> # Customer engagement (with Firebase Cloud Messaging)
> leanplum_core -> com.leanplum:leanplum-core
> leanplum_fcm -> com.leanplum:leanplum-fcm
>
> # 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:3>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tbb-bugs
mailing list