├── .gitignore ├── config.sh ├── .gitmodules ├── assets ├── app │ └── src │ │ └── main │ │ ├── ic_launcher-playstore.png │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_private.png │ │ │ └── ic_launcher_private_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_private.png │ │ │ └── ic_launcher_private_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_private.png │ │ │ ├── ic_launcher_round.png │ │ │ └── ic_launcher_private_round.png │ │ ├── drawable-xxxhdpi │ │ │ ├── big_ghosty.png │ │ │ ├── ic_logo_wordmark_white.png │ │ │ ├── ic_logo_wordmark_normal.png │ │ │ └── ic_logo_wordmark_private.png │ │ ├── drawable │ │ │ ├── ic_wordmark_logo.png │ │ │ ├── ic_wordmark_text_normal.png │ │ │ ├── ic_wordmark_text_private.png │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ └── ic_launcher_private_foreground.xml │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_private.png │ │ │ └── ic_launcher_private_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── ic_launcher_private.png │ │ │ └── ic_launcher_private_round.png │ │ ├── drawable-nodpi │ │ │ └── home_background.png │ │ ├── drawable-hdpi │ │ │ ├── fenix_search_widget.png │ │ │ ├── ic_logo_wordmark_normal.png │ │ │ ├── ic_logo_wordmark_white.png │ │ │ └── ic_logo_wordmark_private.png │ │ ├── drawable-mdpi │ │ │ ├── ic_logo_wordmark_normal.png │ │ │ ├── ic_logo_wordmark_white.png │ │ │ └── ic_logo_wordmark_private.png │ │ ├── drawable-xhdpi │ │ │ ├── ic_logo_wordmark_white.png │ │ │ ├── ic_logo_wordmark_normal.png │ │ │ └── ic_logo_wordmark_private.png │ │ └── drawable-xxhdpi │ │ │ ├── ic_logo_wordmark_normal.png │ │ │ ├── ic_logo_wordmark_white.png │ │ │ └── ic_logo_wordmark_private.png │ │ └── ic_launcher_private-playstore.png ├── fastlane │ ├── Appfile │ └── Fastfile └── bootstrap.sh ├── export.sh ├── reset.sh ├── import.sh ├── patches ├── 0007-Default-the-url-bar-to-be-on-top.patch ├── 0031-Disable-Pocket.patch ├── 0004-Changing-the-app_name.patch ├── 0023-Changing-the-progress-bar-color.patch ├── 0039-Disable-Cookie-Banner.patch ├── 0018-Removing-addons-preferences-menu.patch ├── 0010-Removing-Pocket-from-the-topsites.patch ├── 0040-Fix-targetActivity.patch ├── 0022-Ghostery-Release-fixes.patch ├── 0029-Fastlane-CI-build.patch ├── 0003-Changing-the-wordmark-freshtab-title.patch ├── 0027-Ghostery-custom-user-agent.patch ├── 0025-Home-Background-image.patch ├── 0036-Disable-Sponsored-links.patch ├── 0016-Removing-Common-myths-about-private-browsing-link.patch ├── 0019-Basic-ghostery-extension-integration.patch ├── 0032-Search-widget-replace-logo.patch ├── 0034-Disable-wallpapers.patch ├── 0038-Disable-CFR.patch ├── 0024-Ghostery-splashscreen.patch ├── 0035-Force-Ghostery-onboarding.patch ├── 0030-Disable-Telemetry-Nimbus-Collection-Tracking-Protect.patch ├── 0012-Disabling-Mozilla-Tracking-protection.patch ├── 0028-Remove-addons-from-menu.patch ├── 0033-Fixing-null-version-name-in-About.patch ├── 0001-Ghostery-Logo-Added.patch ├── 0006-Disabling-Firefox-onboarding.patch ├── 0037-Disable-search-for-synced-tabs.patch ├── 0017-Disabling-logins-and-passwords-autosave.patch ├── 0009-Remove-Firefox-Sync.patch ├── 0014-Removig-What-s-new-from-the-Home-menu.patch ├── 0041-Disable-Sponsored-suggestions.patch ├── 0013-Replacing-the-status-logo.patch ├── 0015-Help-resources-point-to-Ghostery-domain.patch ├── 0021-Browser-action-integration-4.patch ├── 0011-Disabling-Telemetry-CrashReports.patch ├── 0005-Adding-Ghostery-Icon-resources.patch ├── 0008-Ghostery-Private-Search-as-default-search-engine.patch ├── 0020-Removing-Collections-again.patch └── 0026-Renamig-private-tab-s-to-Ghost-Tab-s-5.patch ├── Jenkinsfile ├── README.md ├── Dockerfile └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | .sentry_token 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export FENIX_TAG=fenix-v125.3.0 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "browser"] 2 | path = browser 3 | url = https://github.com/mozilla-mobile/firefox-android.git 4 | branch = fenix-v125.3.0 5 | -------------------------------------------------------------------------------- /assets/app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/app/src/main/ic_launcher_private-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/ic_launcher_private-playstore.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxxhdpi/big_ghosty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxxhdpi/big_ghosty.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable/ic_wordmark_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable/ic_wordmark_logo.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-nodpi/home_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-nodpi/home_background.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable/ic_wordmark_text_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable/ic_wordmark_text_normal.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-hdpi/ic_launcher_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-hdpi/ic_launcher_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-mdpi/ic_launcher_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-mdpi/ic_launcher_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xhdpi/ic_launcher_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xhdpi/ic_launcher_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-hdpi/fenix_search_widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-hdpi/fenix_search_widget.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable/ic_wordmark_text_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable/ic_wordmark_text_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxhdpi/ic_launcher_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxhdpi/ic_launcher_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher_private.png -------------------------------------------------------------------------------- /export.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source ./config.sh 3 | rm patches/* 4 | cd browser 5 | git format-patch $FENIX_TAG-start --minimal --no-numbered --keep-subject --output-directory ../patches/ 6 | -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-hdpi/ic_logo_wordmark_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-hdpi/ic_logo_wordmark_normal.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-hdpi/ic_logo_wordmark_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-hdpi/ic_logo_wordmark_white.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-mdpi/ic_logo_wordmark_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-mdpi/ic_logo_wordmark_normal.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-mdpi/ic_logo_wordmark_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-mdpi/ic_logo_wordmark_white.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_white.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-hdpi/ic_launcher_private_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-hdpi/ic_launcher_private_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-mdpi/ic_launcher_private_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-mdpi/ic_launcher_private_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-hdpi/ic_logo_wordmark_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-hdpi/ic_logo_wordmark_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-mdpi/ic_logo_wordmark_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-mdpi/ic_logo_wordmark_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_normal.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_normal.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_white.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_white.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xhdpi/ic_launcher_private_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xhdpi/ic_launcher_private_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxhdpi/ic_launcher_private_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxhdpi/ic_launcher_private_round.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_private.png -------------------------------------------------------------------------------- /assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher_private_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghostery/user-agent-android/HEAD/assets/app/src/main/res/mipmap-xxxhdpi/ic_launcher_private_round.png -------------------------------------------------------------------------------- /reset.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | source ./config.sh 5 | 6 | cd browser 7 | 8 | git checkout $FENIX_TAG 9 | # create a workspace branch to work with 10 | git checkout -B workspace 11 | 12 | cd .. -------------------------------------------------------------------------------- /assets/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | json_key_file(ENV["PLAY_STORE_CERT"]) # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one 2 | package_name("com.ghostery.android.ghostery") # e.g. com.krausefx.app 3 | -------------------------------------------------------------------------------- /assets/bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | set -e 4 | 5 | EXT_DIR="app/src/main/assets/extensions/ghostery" 6 | DOWNLOAD_URL="https://github.com/ghostery/ghostery-extension/releases/download/v10.4.3/ghostery-firefox-10.4.3.zip" 7 | rm -rf "$EXT_DIR" 8 | mkdir -p "$EXT_DIR" 9 | curl -L -o ghostery.zip "$DOWNLOAD_URL" 10 | unzip -o ghostery.zip -d "$EXT_DIR" 11 | rm ghostery.zip 12 | 13 | SEARCH_EXT_DIR="app/src/main/assets/extensions/ghostery-search" 14 | SEARCH_DOWNLOAD_URL="https://github.com/ghostery/ghostery-search-extension/releases/download/v1.1.1/ghostery_private_search-1.1.1.zip" 15 | rm -rf "$SEARCH_EXT_DIR" 16 | mkdir -p "$SEARCH_EXT_DIR" 17 | curl -L -o ghostery_search.zip "$SEARCH_DOWNLOAD_URL" 18 | unzip -o ghostery_search.zip -d "$SEARCH_EXT_DIR" 19 | rm ghostery_search.zip 20 | 21 | echo "/app/src/main/assets/extensions/ghostery-search" >> .gitignore 22 | echo "/app/src/main/assets/extensions/ghostery" >> .gitignore 23 | -------------------------------------------------------------------------------- /assets/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # This file contains the fastlane.tools configuration 2 | # You can find the documentation at https://docs.fastlane.tools 3 | # 4 | # For a list of all available actions, check out 5 | # 6 | # https://docs.fastlane.tools/actions 7 | # 8 | # For a list of all available plugins, check out 9 | # 10 | # https://docs.fastlane.tools/plugins/available-plugins 11 | # 12 | 13 | # Uncomment the line if you want fastlane to automatically update itself 14 | # update_fastlane 15 | 16 | default_platform(:android) 17 | 18 | platform :android do 19 | desc "Submit a new internal testing version to the Play store" 20 | lane :internal do 21 | gradle( 22 | task: "clean bundle", 23 | build_type: "ghostery" 24 | ) 25 | upload_to_play_store( 26 | apk_paths:ENV["GRADLE_ALL_APK_OUTPUT_PATHS"], 27 | track: 'internal', 28 | skip_upload_metadata: true, 29 | skip_upload_images: true, 30 | skip_upload_changelogs: true, 31 | changes_not_sent_for_review: true, 32 | skip_upload_screenshots: true,) 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /import.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | source ./config.sh 5 | 6 | ./reset.sh 7 | 8 | cd browser/fenix 9 | 10 | # remove translations 11 | for LANG in 'an' 'ar' 'ast' 'az' 'be' 'bg' 'bn' 'br' 'bs' 'ca' 'cak' 'co' 'cs' 'cy' 'da' 'dsb' 'el' 'en-rCA' 'en-rGB' 'eo' 'es-rAR' 'es-rCL' 'es-rES' 'es-rMX' 'et' 'eu' 'fa' 'ff' 'fi' 'fy-rNL' 'ga-rIE' 'gd' 'gn' 'gu-rIN' 'hi-rIN' 'hr' 'hsb' 'hy-rAM' 'in' 'is' 'iw' 'ka' 'kab' 'kk' 'kn' 'lij' 'lo' 'lt' 'ml' 'mr' 'my' 'nb-rNO' 'nn-rNO' 'oc' 'pa-rIN' 'pt-rPT' 'rm' 'ro' 'sk' 'sl' 'sq' 'sr' 'su' 'sv-rSE' 'ta' 'te' 'th' 'tr' 'trs' 'uk' 'ur' 'uz' 'vec' 'vi' 12 | do 13 | git rm -r app/src/main/res/values-$LANG 14 | done 15 | git commit -m "Remove unsupported translations" 16 | 17 | # copy assets into browser tree 18 | rsync -av ../../assets/ ../../browser/fenix 19 | git add . && git commit -a -m "Copy static assets" 20 | 21 | # Install Ghostery Browser Extension 22 | ./bootstrap.sh 23 | git add . && git commit -a -m "Add extensions" 24 | 25 | git tag -f $FENIX_TAG-start 26 | # apply patches 27 | git am --ignore-space-change --ignore-whitespace ../../patches/* 28 | -------------------------------------------------------------------------------- /patches/0007-Default-the-url-bar-to-be-on-top.patch: -------------------------------------------------------------------------------- 1 | From fcff2e456d2d26fe959fa2a943dfcc8f04974827 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Mon, 8 Jun 2020 15:07:04 +0200 4 | Subject: Default the url bar to be on top 5 | 6 | --- 7 | fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 11 | index a1d6b70fd2..dac0e86eb5 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 14 | @@ -888,7 +888,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 15 | var shouldUseBottomToolbar by lazyFeatureFlagPreference( 16 | appContext.getPreferenceKey(R.string.pref_key_toolbar_bottom), 17 | featureFlag = true, 18 | - default = { shouldDefaultToBottomToolbar() }, 19 | + default = { false }, 20 | ) 21 | 22 | val toolbarPosition: ToolbarPosition 23 | -- 24 | 2.39.2 (Apple Git-143) 25 | 26 | -------------------------------------------------------------------------------- /patches/0031-Disable-Pocket.patch: -------------------------------------------------------------------------------- 1 | From f0137b0616d3c1490889ec99ee13ed4e85b95fac Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Fri, 25 Feb 2022 16:01:33 +0100 4 | Subject: Disable Pocket 5 | 6 | --- 7 | fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 5 ++--- 8 | 1 file changed, 2 insertions(+), 3 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt 11 | index 3641aa5214..b1a6bce415 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt 14 | @@ -34,10 +34,9 @@ object FeatureFlags { 15 | /** 16 | * Show Pocket recommended stories on home. 17 | */ 18 | + @Suppress("UNUSED_PARAMETER") 19 | fun isPocketRecommendationsFeatureEnabled(context: Context): Boolean { 20 | - val langTag = LocaleManager.getCurrentLocale(context) 21 | - ?.toLanguageTag() ?: getSystemDefault().toLanguageTag() 22 | - return listOf("en-US", "en-CA").contains(langTag) 23 | + return false 24 | } 25 | 26 | /** 27 | -- 28 | 2.39.2 (Apple Git-143) 29 | 30 | -------------------------------------------------------------------------------- /patches/0004-Changing-the-app_name.patch: -------------------------------------------------------------------------------- 1 | From 34545f73cfea72700243a3cc66b35cbd11073463 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Fri, 5 Jun 2020 18:22:29 +0200 4 | Subject: Changing the app_name 5 | 6 | --- 7 | fenix/app/src/main/res/values/static_strings.xml | 4 ++-- 8 | 1 file changed, 2 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/res/values/static_strings.xml b/fenix/app/src/main/res/values/static_strings.xml 11 | index 1db7704d2b..eb071288f1 100644 12 | --- a/fenix/app/src/main/res/values/static_strings.xml 13 | +++ b/fenix/app/src/main/res/values/static_strings.xml 14 | @@ -4,8 +4,8 @@ 15 | - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 16 | 17 | 18 | - Firefox Fenix 19 | - Firefox 20 | + Ghostery 21 | + Ghostery 22 | 23 | 24 | LeakCanary 25 | -- 26 | 2.39.2 (Apple Git-143) 27 | 28 | -------------------------------------------------------------------------------- /patches/0023-Changing-the-progress-bar-color.patch: -------------------------------------------------------------------------------- 1 | From e82df3419390db3ff23ac49a674a626bbf98541a Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Tue, 7 Jul 2020 14:43:34 +0200 4 | Subject: Changing the progress bar color 5 | 6 | --- 7 | fenix/app/src/main/res/drawable/progress_gradient.xml | 7 ++++--- 8 | 1 file changed, 4 insertions(+), 3 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/res/drawable/progress_gradient.xml b/fenix/app/src/main/res/drawable/progress_gradient.xml 11 | index 76809e6b72..740d8237f6 100644 12 | --- a/fenix/app/src/main/res/drawable/progress_gradient.xml 13 | +++ b/fenix/app/src/main/res/drawable/progress_gradient.xml 14 | @@ -17,11 +17,12 @@ 15 | android:bottomRightRadius="8dp" 16 | android:topLeftRadius="0dp" 17 | android:topRightRadius="8dp"/> 18 | + 19 | 24 | + android:endColor="#00AEF0" 25 | + android:startColor="#920094" /> 26 | + 27 | 28 | 29 | 30 | -- 31 | 2.39.2 (Apple Git-143) 32 | 33 | -------------------------------------------------------------------------------- /patches/0039-Disable-Cookie-Banner.patch: -------------------------------------------------------------------------------- 1 | From 22ab8fb3416e62b3832e642bfcc896a1944941ea Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Mon, 20 May 2024 12:48:52 +0200 4 | Subject: Disable: Cookie Banner 5 | 6 | --- 7 | fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 6 ++---- 8 | 1 file changed, 2 insertions(+), 4 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 11 | index 84560a14a5..8cfd5604e9 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 14 | @@ -622,11 +622,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { 15 | val shouldUseCookieBannerPrivateModeDefaultValue: Boolean 16 | get() = cookieBannersSection[CookieBannersSection.FEATURE_SETTING_VALUE_PBM] == 1 17 | 18 | - val shouldUseCookieBanner: Boolean 19 | - get() = cookieBannersSection[CookieBannersSection.FEATURE_SETTING_VALUE] == 1 20 | + val shouldUseCookieBanner = false 21 | 22 | - val shouldShowCookieBannerUI: Boolean 23 | - get() = cookieBannersSection[CookieBannersSection.FEATURE_UI] == 1 24 | + val shouldShowCookieBannerUI = false 25 | 26 | val shouldEnableCookieBannerDetectOnly: Boolean 27 | get() = cookieBannersSection[CookieBannersSection.FEATURE_SETTING_DETECT_ONLY] == 1 28 | -- 29 | 2.39.3 (Apple Git-145) 30 | 31 | -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 10 | 13 | 15 | 16 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | node('browser-builder') { 2 | stage('checkout') { 3 | sh 'rm -rf browser' 4 | sh 'rm -rf .git' 5 | checkout scm 6 | sh 'git submodule init' 7 | sh 'git submodule update --force' 8 | sh './reset.sh' 9 | sh 'rm -rf browser/fenix/app/build' 10 | sh './import.sh' 11 | } 12 | 13 | image = stage('docker build') { 14 | docker.build('fostery-build', '--build-arg user=`whoami` --build-arg UID=`id -u` --build-arg GID=`id -g` .') 15 | } 16 | 17 | image.inside("--env GRADLE_USER_HOME=${pwd()}/gradle_home") { 18 | dir('browser/fenix') { 19 | stage('bootstrap') { 20 | sh './bootstrap.sh' 21 | } 22 | 23 | withCredentials([ 24 | file(credentialsId: 'ef90e3e3-5563-4ac3-9e20-ae07db74db21', variable: 'PLAY_STORE_CERT'), 25 | file(credentialsId: '2df3d37d-0bc9-4152-a361-7fec0a73ce69', variable: 'CERT_PATH'), 26 | string(credentialsId: 'a87fff1f-8045-49e9-8038-861e7e8c58e4', variable: 'CERT_PASS'), 27 | string(credentialsId: '4de6b6fc-4302-429d-b4b7-2e97b0e5e5f7', variable: 'SENTRY_TOKEN') 28 | ]) { 29 | stage('fastlane') { 30 | sh 'echo $SENTRY_TOKEN > .sentry_token' 31 | sh 'fastlane internal' 32 | sh 'rm .sentry_token' 33 | } 34 | } 35 | } 36 | stage('archive') { 37 | archiveArtifacts artifacts: 'browser/fenix/app/build/outputs/bundle/**/*.aab' 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /patches/0018-Removing-addons-preferences-menu.patch: -------------------------------------------------------------------------------- 1 | From 3a514b59c196b4a43e27ab8cab8236e03d333f77 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Thu, 25 Jun 2020 18:02:43 +0200 4 | Subject: Removing addons preferences menu 5 | 6 | --- 7 | fenix/app/src/main/res/xml/preferences.xml | 9 --------- 8 | 1 file changed, 9 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/res/xml/preferences.xml b/fenix/app/src/main/res/xml/preferences.xml 11 | index cf6821acce..066481472d 100644 12 | --- a/fenix/app/src/main/res/xml/preferences.xml 13 | +++ b/fenix/app/src/main/res/xml/preferences.xml 14 | @@ -124,21 +124,6 @@ 15 | android:title="@string/preferences_category_advanced" 16 | android:key="@string/pref_key_advanced" 17 | android:layout="@layout/preference_category_no_icon_style"> 18 | - 22 | - 23 | - 28 | - 29 | - 33 | 34 | 3 | Date: Tue, 9 Jun 2020 15:33:50 +0200 4 | Subject: Removing Pocket from the topsites 5 | 6 | --- 7 | .../java/org/mozilla/fenix/components/Core.kt | 16 ---------------- 8 | 1 file changed, 16 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 11 | index 027a0418b0..ea2aff8460 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 14 | @@ -504,22 +504,6 @@ class Core( 15 | ), 16 | ) 17 | } else { 18 | - defaultTopSites.add( 19 | - Pair( 20 | - context.getString(R.string.default_top_site_google), 21 | - SupportUtils.GOOGLE_URL, 22 | - ), 23 | - ) 24 | - 25 | - if (LocaleManager.getSelectedLocale(context).language == "en") { 26 | - defaultTopSites.add( 27 | - Pair( 28 | - context.getString(R.string.pocket_pinned_top_articles), 29 | - SupportUtils.POCKET_TRENDING_URL, 30 | - ), 31 | - ) 32 | - } 33 | - 34 | defaultTopSites.add( 35 | Pair( 36 | context.getString(R.string.default_top_site_wikipedia), 37 | -- 38 | 2.39.2 (Apple Git-143) 39 | 40 | -------------------------------------------------------------------------------- /patches/0040-Fix-targetActivity.patch: -------------------------------------------------------------------------------- 1 | From 39d48dd57667bff15fb024661afd93809499a248 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Wed, 22 May 2024 16:02:22 +0200 4 | Subject: Fix targetActivity 5 | 6 | --- 7 | fenix/app/src/main/AndroidManifest.xml | 6 +++--- 8 | 1 file changed, 3 insertions(+), 3 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/AndroidManifest.xml b/fenix/app/src/main/AndroidManifest.xml 11 | index dfe1b757f8..2cda44043c 100644 12 | --- a/fenix/app/src/main/AndroidManifest.xml 13 | +++ b/fenix/app/src/main/AndroidManifest.xml 14 | @@ -75,7 +75,7 @@ 15 | 19 | + android:targetActivity="org.mozilla.fenix.HomeActivity"> 20 | 21 | 22 | 23 | @@ -107,7 +107,7 @@ 24 | 25 | 26 | 34 | 35 | 3 | Date: Tue, 30 Jun 2020 17:59:32 +0200 4 | Subject: Ghostery Release fixes 5 | 6 | --- 7 | fenix/app/nimbus.fml.yaml | 1 + 8 | fenix/app/src/main/java/org/mozilla/fenix/Config.kt | 3 +++ 9 | 2 files changed, 4 insertions(+) 10 | 11 | diff --git a/fenix/app/nimbus.fml.yaml b/fenix/app/nimbus.fml.yaml 12 | index 43fa52d7bb..66bb5e91f2 100644 13 | --- a/fenix/app/nimbus.fml.yaml 14 | +++ b/fenix/app/nimbus.fml.yaml 15 | @@ -9,6 +9,7 @@ channels: 16 | - beta 17 | - nightly 18 | - developer 19 | + - fenixGhostery 20 | includes: 21 | - onboarding.fml.yaml 22 | - pbm.fml.yaml 23 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/Config.kt b/fenix/app/src/main/java/org/mozilla/fenix/Config.kt 24 | index 534cf2d804..eeb76107d1 100644 25 | --- a/fenix/app/src/main/java/org/mozilla/fenix/Config.kt 26 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/Config.kt 27 | @@ -9,6 +9,7 @@ enum class ReleaseChannel { 28 | Nightly, 29 | Beta, 30 | Release, 31 | + Ghostery, 32 | ; 33 | 34 | val isReleased: Boolean 35 | @@ -33,6 +34,7 @@ enum class ReleaseChannel { 36 | val isRelease: Boolean 37 | get() = when (this) { 38 | Release -> true 39 | + Ghostery -> true 40 | else -> false 41 | } 42 | 43 | @@ -56,6 +58,7 @@ object Config { 44 | "nightly", "benchmark" -> ReleaseChannel.Nightly 45 | "beta" -> ReleaseChannel.Beta 46 | "release" -> ReleaseChannel.Release 47 | + "ghostery" -> ReleaseChannel.Ghostery 48 | else -> { 49 | throw IllegalStateException("Unknown build type: ${BuildConfig.BUILD_TYPE}") 50 | } 51 | -- 52 | 2.39.2 (Apple Git-143) 53 | 54 | -------------------------------------------------------------------------------- /patches/0029-Fastlane-CI-build.patch: -------------------------------------------------------------------------------- 1 | From 53237574f9aebff53143e648560e217c3427871e Mon Sep 17 00:00:00 2001 2 | From: Sam Macbeth 3 | Date: Tue, 4 Aug 2020 17:08:25 +0200 4 | Subject: Fastlane CI build 5 | 6 | --- 7 | fenix/Gemfile | 3 --- 8 | fenix/app/build.gradle | 10 ++++++++++ 9 | 2 files changed, 10 insertions(+), 3 deletions(-) 10 | delete mode 100644 fenix/Gemfile 11 | 12 | diff --git a/fenix/Gemfile b/fenix/Gemfile 13 | deleted file mode 100644 14 | index 7a118b49be..0000000000 15 | --- a/fenix/Gemfile 16 | +++ /dev/null 17 | @@ -1,3 +0,0 @@ 18 | -source "https://rubygems.org" 19 | - 20 | -gem "fastlane" 21 | diff --git a/fenix/app/build.gradle b/fenix/app/build.gradle 22 | index ef751ab047..6d993a2268 100644 23 | --- a/fenix/app/build.gradle 24 | +++ b/fenix/app/build.gradle 25 | @@ -86,6 +86,15 @@ android { 26 | buildConfigField "String[]", "SUPPORTED_LOCALE_ARRAY", getSupportedLocales() 27 | } 28 | 29 | + signingConfigs { 30 | + ghostery { 31 | + storeFile System.getenv("CERT_PATH") ? file(System.getenv("CERT_PATH")) : null 32 | + storePassword System.getenv("CERT_PASS") 33 | + keyAlias "evidon" 34 | + keyPassword System.getenv("CERT_PASS") 35 | + } 36 | + } 37 | + 38 | def releaseTemplate = { 39 | // We allow disabling optimization by passing `-PdisableOptimization` to gradle. This is used 40 | // in automation for UI testing non-debug builds. 41 | @@ -164,6 +173,7 @@ android { 42 | debuggable false 43 | } 44 | ghostery releaseTemplate >> { 45 | + signingConfig signingConfigs.ghostery 46 | buildConfigField "boolean", "USE_RELEASE_VERSIONING", "true" 47 | applicationIdSuffix ".ghostery" 48 | def deepLinkSchemeValue = "ghostery" 49 | 50 | -- 51 | 2.39.2 (Apple Git-143) 52 | 53 | -------------------------------------------------------------------------------- /patches/0003-Changing-the-wordmark-freshtab-title.patch: -------------------------------------------------------------------------------- 1 | From 13607bf7f33d2dd1b39e89fbbd38350bd646c686 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Fri, 5 Jun 2020 18:22:06 +0200 4 | Subject: Changing the wordmark (freshtab title) 5 | 6 | White wordmark 7 | --- 8 | fenix/app/src/main/res/layout/fragment_about.xml | 1 + 9 | fenix/app/src/main/res/values/dimens.xml | 4 ++-- 10 | 2 files changed, 3 insertions(+), 2 deletions(-) 11 | 12 | diff --git a/fenix/app/src/main/res/layout/fragment_about.xml b/fenix/app/src/main/res/layout/fragment_about.xml 13 | index 53d86a98ed..f9a150768e 100644 14 | --- a/fenix/app/src/main/res/layout/fragment_about.xml 15 | +++ b/fenix/app/src/main/res/layout/fragment_about.xml 16 | @@ -11,6 +11,7 @@ 17 | android:layout_width="match_parent" 18 | android:layout_height="match_parent" 19 | android:fillViewport="true" 20 | + android:background="?homeBackground" 21 | tools:context="org.mozilla.fenix.settings.about.AboutFragment"> 22 | 23 | 60dp 30 | 16dp 31 | 8dp 32 | - 18dp 33 | - 10dp 34 | + 40dp 35 | + 0dp 36 | 37 | 38 | 39 | -- 40 | 2.39.2 (Apple Git-143) 41 | 42 | -------------------------------------------------------------------------------- /patches/0027-Ghostery-custom-user-agent.patch: -------------------------------------------------------------------------------- 1 | From 87a3551021def990e8234c08b824023976489792 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Wed, 29 Jul 2020 19:08:26 +0200 4 | Subject: Ghostery custom user agent 5 | 6 | --- 7 | .../src/main/java/org/mozilla/fenix/components/Core.kt | 8 ++++++++ 8 | 1 file changed, 8 insertions(+) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 11 | index bc1049f9df..94558fea29 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 14 | @@ -104,6 +104,7 @@ import org.mozilla.fenix.share.SaveToPDFMiddleware 15 | import org.mozilla.fenix.telemetry.TelemetryMiddleware 16 | import org.mozilla.fenix.utils.getUndoDelay 17 | import org.mozilla.geckoview.GeckoRuntime 18 | +import org.mozilla.geckoview.GeckoSession 19 | import java.util.UUID 20 | import java.util.concurrent.TimeUnit 21 | 22 | @@ -122,6 +123,7 @@ class Core( 23 | */ 24 | val engine: Engine by lazyMonitored { 25 | val defaultSettings = DefaultSettings( 26 | + userAgentString = customUserAgent, 27 | requestInterceptor = requestInterceptor, 28 | remoteDebuggingEnabled = context.settings().isRemoteDebuggingEnabled && 29 | Build.VERSION.SDK_INT >= Build.VERSION_CODES.M, 30 | @@ -181,6 +183,12 @@ class Core( 31 | } 32 | } 33 | 34 | + val customUserAgent by lazyMonitored { 35 | + val defaultUserAgent = GeckoSession.getDefaultUserAgent() 36 | + val (prefix, postfix) = defaultUserAgent.split(')') 37 | + "$prefix; Ghostery:3.0)$postfix" 38 | + } 39 | + 40 | /** 41 | * Passed to [engine] to intercept requests for app links, 42 | * and various features triggered by page load requests. 43 | -- 44 | 2.39.2 (Apple Git-143) 45 | 46 | -------------------------------------------------------------------------------- /patches/0025-Home-Background-image.patch: -------------------------------------------------------------------------------- 1 | From bdca7a018a95d2aab8d7102967f73a24d32c4f43 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Thu, 16 Jul 2020 17:39:25 +0200 4 | Subject: Home Background image 5 | 6 | --- 7 | .../src/main/java/org/mozilla/fenix/home/HomeFragment.kt | 3 +-- 8 | fenix/app/src/main/res/layout/fragment_home.xml | 6 ++++++ 9 | 2 files changed, 7 insertions(+), 2 deletions(-) 10 | 11 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt 12 | index 1d1dc0d612..d54667ce7c 100644 13 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt 14 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt 15 | @@ -1138,8 +1138,7 @@ class HomeFragment : Fragment() { 16 | } 17 | 18 | @VisibleForTesting 19 | - internal fun shouldEnableWallpaper() = 20 | - (activity as? HomeActivity)?.themeManager?.currentTheme?.isPrivate?.not() ?: false 21 | + internal fun shouldEnableWallpaper() = false 22 | 23 | private fun applyWallpaper(wallpaperName: String, orientationChange: Boolean, orientation: Int) { 24 | when { 25 | 26 | diff --git a/fenix/app/src/main/res/layout/fragment_home.xml b/fenix/app/src/main/res/layout/fragment_home.xml 27 | index 084104c651..8316156c63 100644 28 | --- a/fenix/app/src/main/res/layout/fragment_home.xml 29 | +++ b/fenix/app/src/main/res/layout/fragment_home.xml 30 | @@ -15,6 +15,12 @@ 31 | android:layout_height="match_parent" 32 | android:background="?homeBackground"> 33 | 34 | + 39 | + 40 | 3 | Date: Tue, 4 Oct 2022 11:32:25 +0200 4 | Subject: Disable Sponsored links 5 | 6 | --- 7 | .../java/org/mozilla/fenix/settings/HomeSettingsFragment.kt | 1 + 8 | fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +---- 9 | 2 files changed, 2 insertions(+), 4 deletions(-) 10 | 11 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt 12 | index f7a74c3e30..2642cda57b 100644 13 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt 14 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt 15 | @@ -52,6 +52,7 @@ class HomeSettingsFragment : PreferenceFragmentCompat() { 16 | } 17 | 18 | requirePreference(R.string.pref_key_enable_contile).apply { 19 | + isVisible = false 20 | isChecked = context.settings().showContileFeature 21 | onPreferenceChangeListener = object : SharedPreferenceUpdater() { 22 | override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { 23 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 24 | index 9e3bfb0ae0..f66b740cf2 100644 25 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 26 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 27 | @@ -1664,10 +1664,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 28 | /** 29 | * Indicates if the Contile functionality should be visible. 30 | */ 31 | - var showContileFeature by booleanPreference( 32 | - key = appContext.getPreferenceKey(R.string.pref_key_enable_contile), 33 | - default = true, 34 | - ) 35 | + var showContileFeature = false 36 | 37 | /** 38 | * Indicates if the Unified Search feature should be visible. 39 | -- 40 | 2.39.2 (Apple Git-143) 41 | 42 | -------------------------------------------------------------------------------- /patches/0016-Removing-Common-myths-about-private-browsing-link.patch: -------------------------------------------------------------------------------- 1 | From 056a32a995425247eb6c5cb67e57b71c6e3e993a Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Tue, 23 Jun 2020 16:53:36 +0200 4 | Subject: Removing "Common myths about private browsing" link 5 | 6 | --- 7 | .../fenix/home/sessioncontrol/SessionControlInteractor.kt | 2 +- 8 | .../viewholders/PrivateBrowsingDescriptionViewHolder.kt | 2 +- 9 | 2 files changed, 2 insertions(+), 2 deletions(-) 10 | 11 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt 12 | index a5687fdacc..94df511b18 100644 13 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt 14 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt 15 | @@ -318,7 +318,7 @@ class SessionControlInteractor( 16 | } 17 | 18 | override fun onLearnMoreClicked() { 19 | - privateBrowsingController.handleLearnMoreClicked() 20 | +// privateBrowsingController.handleLearnMoreClicked() 21 | } 22 | 23 | override fun onPrivateModeButtonClicked(newMode: BrowsingMode) { 24 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt 25 | index 08af2e6aa4..0f6f1f7aa3 100644 26 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt 27 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt 28 | @@ -90,7 +90,7 @@ fun PrivateBrowsingDescription( 29 | Box( 30 | modifier = Modifier 31 | .fillMaxWidth() 32 | - .height(48.dp) 33 | + .height(0.dp) 34 | .clickable( 35 | interactionSource = interactionSource, 36 | indication = null, 37 | -- 38 | 2.39.2 (Apple Git-143) 39 | 40 | -------------------------------------------------------------------------------- /patches/0019-Basic-ghostery-extension-integration.patch: -------------------------------------------------------------------------------- 1 | From f4ded8c5221a933bd7689cc3c0b82413f6c95368 Mon Sep 17 00:00:00 2001 2 | From: Sam Macbeth 3 | Date: Mon, 3 Aug 2020 18:31:14 +0200 4 | Subject: Basic ghostery extension integration 5 | 6 | --- 7 | fenix/app/build.gradle | 4 +++- 8 | .../src/main/java/org/mozilla/fenix/components/Core.kt | 8 ++++++++ 9 | 2 files changed, 11 insertions(+), 1 deletion(-) 10 | 11 | diff --git a/fenix/app/build.gradle b/fenix/app/build.gradle 12 | index 50dab8d5e8..cd18be708b 100644 13 | --- a/fenix/app/build.gradle 14 | +++ b/fenix/app/build.gradle 15 | @@ -194,7 +194,9 @@ android { 16 | 17 | // manifest.template.json is converted to manifest.json at build time. 18 | // No need to package the template in the APK. 19 | - ignoreAssetsPattern "manifest.template.json" 20 | + // default ignoreAssetsPattern list includes all files and folders starting with _ 21 | + // that breaks webextensions i18n as traslation are located in _locales folder 22 | + ignoreAssetsPattern "manifest.template.json:!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~" 23 | } 24 | 25 | testOptions { 26 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 27 | index 87539ce19e..bc1049f9df 100644 28 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 29 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 30 | @@ -185,6 +185,14 @@ class Core( 31 | onError = { throwable -> 32 | Log.e("GHOSTERY", "Failed to install Ghostery Search webextension", throwable) 33 | }) 34 | + 35 | + it.installBuiltInWebExtension("ghostery", "resource://android/assets/extensions/ghostery/", 36 | + onSuccess = { 37 | + Log.d("GHOSTERY", "Installed Ghostery webextension: ${it.id}") 38 | + }, 39 | + onError = { throwable -> 40 | + Log.e("GHOSTERY", "Failed to install Ghostery webextension", throwable) 41 | + }) 42 | } 43 | } 44 | 45 | -- 46 | 2.39.2 (Apple Git-143) 47 | 48 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Docker image with fastlane and android SDK 2 | # Based on https://github.com/cliqz-oss/browser-android/blob/master/Dockerfile 3 | FROM ubuntu:22.04 4 | ENV DEBIAN_FRONTEND noninteractive 5 | 6 | #Install the required packages. 1st Set is for Browser Project and the 2nd for Ruby and NodeJS. 7 | RUN apt-get update && \ 8 | apt-get install -y \ 9 | curl \ 10 | git \ 11 | gnupg2 \ 12 | language-pack-en \ 13 | openjdk-17-jdk \ 14 | python3-dev \ 15 | python3-pip \ 16 | ruby-dev \ 17 | unzip \ 18 | wget \ 19 | xz-utils \ 20 | autoconf \ 21 | automake \ 22 | bison \ 23 | build-essential \ 24 | ca-certificates \ 25 | gawk \ 26 | libffi-dev \ 27 | libgdbm-dev \ 28 | libgmp-dev \ 29 | libgmp-dev \ 30 | libncurses5-dev \ 31 | libreadline6-dev \ 32 | libsqlite3-dev \ 33 | libssl-dev \ 34 | libtool \ 35 | libyaml-dev \ 36 | pkg-config \ 37 | sqlite3 \ 38 | zlib1g-dev && \ 39 | apt-get clean -y 40 | 41 | RUN gem install fastlane --version 2.210.1 42 | 43 | # Set the locale 44 | RUN locale-gen en_US en_US.UTF-8 45 | RUN dpkg-reconfigure locales 46 | ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' 47 | 48 | ENV ANDROID_HOME /home/jenkins/android_home 49 | ENV GRADLE_USER_HOME /home/jenkins/gradle_home 50 | ENV NVM_DIR /home/jenkins/nvm 51 | ENV JAVA17PATH="/usr/lib/jvm/java-17-openjdk-amd64/bin:$PATH" 52 | 53 | #Install Android SDK and the Required SDKs 54 | RUN mkdir -p $ANDROID_HOME; \ 55 | mkdir -p $GRADLE_USER_HOME; 56 | 57 | RUN cd $ANDROID_HOME; \ 58 | wget -O sdktools.zip --quiet 'https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip'; \ 59 | unzip sdktools.zip; \ 60 | rm -r sdktools.zip; 61 | ENV ANDROID_SDK_HOME=$ANDROID_HOME 62 | ENV PATH="$JAVA17PATH:$PATH" 63 | 64 | RUN yes | "${ANDROID_SDK_HOME}/cmdline-tools/bin/sdkmanager" --sdk_root="${ANDROID_SDK_HOME}" --licenses 65 | 66 | # Add jenkins to the user group 67 | ARG UID 68 | ARG GID 69 | RUN getent group $GID || groupadd jenkins --gid $GID && \ 70 | useradd --create-home --shell /bin/bash jenkins --uid $UID --gid $GID 71 | 72 | RUN chmod a+rw -R /home/jenkins 73 | 74 | USER jenkins -------------------------------------------------------------------------------- /patches/0032-Search-widget-replace-logo.patch: -------------------------------------------------------------------------------- 1 | From c4a67cc287a1b259a7b0d1f400c3e626e84447d4 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Mon, 28 Feb 2022 16:54:55 +0100 4 | Subject: Search widget: replace logo 5 | 6 | --- 7 | .../gecko/search/SearchWidgetProvider.kt | 24 ++++++++----------- 8 | 1 file changed, 10 insertions(+), 14 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt b/fenix/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt 11 | index 4656b04d57..4fe5456847 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt 14 | @@ -11,6 +11,7 @@ import android.appwidget.AppWidgetProvider 15 | import android.content.ComponentName 16 | import android.content.Context 17 | import android.content.Intent 18 | +import android.graphics.Color 19 | import android.os.Build 20 | import android.os.Bundle 21 | import android.speech.RecognizerIntent 22 | @@ -165,20 +166,15 @@ class SearchWidgetProvider : AppWidgetProvider() { 23 | 24 | private fun RemoteViews.setIcon(context: Context) { 25 | // gradient color available for android:fillColor only on SDK 24+ 26 | - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 27 | - setImageViewResource( 28 | - R.id.button_search_widget_new_tab_icon, 29 | - R.drawable.ic_launcher_foreground, 30 | - ) 31 | - } else { 32 | - setImageViewBitmap( 33 | - R.id.button_search_widget_new_tab_icon, 34 | - AppCompatResources.getDrawable( 35 | - context, 36 | - R.drawable.ic_launcher_foreground, 37 | - )?.toBitmap(), 38 | - ) 39 | - } 40 | + setImageViewBitmap( 41 | + R.id.button_search_widget_new_tab_icon, 42 | + AppCompatResources.getDrawable( 43 | + context, 44 | + R.drawable.ic_launcher_foreground 45 | + )?.mutate()?.apply { 46 | + setTint(Color.rgb(0x00, 0xAE, 0xF0)) 47 | + }?.toBitmap() 48 | + ) 49 | 50 | val appName = context.getString(R.string.app_name) 51 | setContentDescription( 52 | -- 53 | 2.39.2 (Apple Git-143) 54 | 55 | -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | 17 | 18 | 19 | 20 | 21 | 22 | 29 | 36 | 43 | 44 | -------------------------------------------------------------------------------- /patches/0034-Disable-wallpapers.patch: -------------------------------------------------------------------------------- 1 | From b6e63aa9a5d37f7daac4c3eec6b4f22068d62000 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Fri, 15 Apr 2022 16:10:00 +0200 4 | Subject: Disable wallpapers 5 | 6 | --- 7 | .../org/mozilla/fenix/settings/HomeSettingsFragment.kt | 9 --------- 8 | fenix/app/src/main/res/xml/home_preferences.xml | 4 ---- 9 | 2 files changed, 13 deletions(-) 10 | 11 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt 12 | index 5c5f0ecbf2..f7a74c3e30 100644 13 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt 14 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/HomeSettingsFragment.kt 15 | @@ -166,18 +166,6 @@ class HomeSettingsFragment : PreferenceFragmentCompat() { 16 | val openingScreenAfterFourHours = 17 | requirePreference(R.string.pref_key_start_on_home_after_four_hours) 18 | 19 | - requirePreference(R.string.pref_key_wallpapers).apply { 20 | - setOnPreferenceClickListener { 21 | - view?.findNavController()?.navigateWithBreadcrumb( 22 | - directions = HomeSettingsFragmentDirections.actionHomeSettingsFragmentToWallpaperSettingsFragment(), 23 | - navigateFrom = "HomeSettingsFragment", 24 | - navigateTo = "ActionHomeSettingsFragmentToWallpaperSettingsFragment", 25 | - crashReporter = context.components.analytics.crashReporter, 26 | - ) 27 | - true 28 | - } 29 | - } 30 | - 31 | addToRadioGroup( 32 | openingScreenRadioHomepage, 33 | openingScreenLastTab, 34 | diff --git a/fenix/app/src/main/res/xml/home_preferences.xml b/fenix/app/src/main/res/xml/home_preferences.xml 35 | index 35d97891d5..4dc3d9502b 100644 36 | --- a/fenix/app/src/main/res/xml/home_preferences.xml 37 | +++ b/fenix/app/src/main/res/xml/home_preferences.xml 38 | @@ -38,10 +38,6 @@ 39 | android:key="@string/pref_key_pocket_sponsored_stories" 40 | android:title="@string/customize_toggle_pocket_sponsored" /> 41 | 42 | - 45 | - 46 | 3 | Date: Wed, 2 Aug 2023 14:59:25 +0200 4 | Subject: Disable CFR 5 | 6 | --- 7 | .../java/org/mozilla/fenix/utils/Settings.kt | 17 ++++------------- 8 | 1 file changed, 4 insertions(+), 13 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 11 | index f7cf1bc969..22aec62aac 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 14 | @@ -165,8 +165,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 15 | default = 0L, 16 | ) 17 | 18 | - val canShowCfr: Boolean 19 | - get() = (System.currentTimeMillis() - lastCfrShownTimeInMillis) > THREE_DAYS_MS 20 | + val canShowCfr = false 21 | 22 | var forceEnableZoom by booleanPreference( 23 | appContext.getPreferenceKey(R.string.pref_key_accessibility_force_enable_zoom), 24 | @@ -754,17 +753,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { 25 | /** 26 | * Indicates if the total cookie protection CRF feature is enabled. 27 | */ 28 | - val enabledTotalCookieProtectionCFR: Boolean 29 | - get() = mr2022Sections[Mr2022Section.TCP_CFR] == true 30 | + val enabledTotalCookieProtectionCFR = false 31 | 32 | /** 33 | * Indicates if the total cookie protection CRF should be shown. 34 | */ 35 | - var shouldShowTotalCookieProtectionCFR by lazyFeatureFlagPreference( 36 | - appContext.getPreferenceKey(R.string.pref_key_should_show_total_cookie_protection_popup), 37 | - featureFlag = true, 38 | - default = { enabledTotalCookieProtectionCFR }, 39 | - ) 40 | + var shouldShowTotalCookieProtectionCFR = false 41 | 42 | /** 43 | * Indicates if the total cookie protection CRF should be shown. 44 | @@ -1266,10 +1260,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 45 | 46 | fun incrementNumTimesPrivateModeOpened() = numTimesPrivateModeOpened.increment() 47 | 48 | - var showedPrivateModeContextualFeatureRecommender by booleanPreference( 49 | - appContext.getPreferenceKey(R.string.pref_key_showed_private_mode_cfr), 50 | - default = false, 51 | - ) 52 | + var showedPrivateModeContextualFeatureRecommender = false 53 | 54 | private val numTimesPrivateModeOpened = counterPreference( 55 | appContext.getPreferenceKey(R.string.pref_key_private_mode_opened), 56 | -- 57 | 2.39.2 (Apple Git-143) 58 | 59 | -------------------------------------------------------------------------------- /patches/0024-Ghostery-splashscreen.patch: -------------------------------------------------------------------------------- 1 | From da76aa8aa7083ccbdbbf3179815b70277da568fe Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Wed, 15 Jul 2020 16:11:33 +0200 4 | Subject: Ghostery splashscreen 5 | 6 | --- 7 | fenix/app/src/main/res/values-v24/styles.xml | 1 + 8 | fenix/app/src/main/res/values-v27/styles.xml | 1 + 9 | fenix/app/src/main/res/values/styles.xml | 3 +++ 10 | 3 files changed, 13 insertions(+) 11 | 12 | diff --git a/fenix/app/src/main/res/values-v24/styles.xml b/fenix/app/src/main/res/values-v24/styles.xml 13 | index 8418254bc1..8c0fc0337f 100644 14 | --- a/fenix/app/src/main/res/values-v24/styles.xml 15 | +++ b/fenix/app/src/main/res/values-v24/styles.xml 16 | @@ -4,6 +4,6 @@ 17 | - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 18 | 19 | 23 | 24 | diff --git a/fenix/app/src/main/res/values-v27/styles.xml b/fenix/app/src/main/res/values-v27/styles.xml 25 | index 4e0eddedc9..13595fe937 100644 26 | --- a/fenix/app/src/main/res/values-v27/styles.xml 27 | +++ b/fenix/app/src/main/res/values-v27/styles.xml 28 | @@ -28,7 +28,7 @@ 29 | 30 | 31 | 51 | 52 | -- 53 | 2.39.2 (Apple Git-143) 54 | 55 | -------------------------------------------------------------------------------- /patches/0035-Force-Ghostery-onboarding.patch: -------------------------------------------------------------------------------- 1 | From 50892856fab0547cc8ecfb3e54c6006d4e2d9aea Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Mon, 3 Oct 2022 18:40:09 +0200 4 | Subject: Force Ghostery onboarding 5 | 6 | --- 7 | .../org/mozilla/fenix/home/HomeFragment.kt | 22 +++++++++++++++++++ 8 | 1 file changed, 22 insertions(+) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt 11 | index bf1577f055..3b37e6b2f3 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt 14 | @@ -57,6 +57,7 @@ import kotlinx.coroutines.flow.map 15 | import kotlinx.coroutines.isActive 16 | import kotlinx.coroutines.launch 17 | import mozilla.components.browser.menu.view.MenuButton 18 | +import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab 19 | import mozilla.components.browser.state.selector.findTab 20 | import mozilla.components.browser.state.selector.normalTabs 21 | import mozilla.components.browser.state.selector.privateTabs 22 | @@ -147,6 +147,9 @@ import org.mozilla.fenix.utils.allowUndo 23 | import org.mozilla.fenix.wallpapers.Wallpaper 24 | import java.lang.ref.WeakReference 25 | 26 | +var onboardingShownOnce = false 27 | +val onboardingPattern = """moz-extension://[^/]+/pages/onboarding/index.html.*""".toRegex() 28 | + 29 | @Suppress("TooManyFunctions", "LargeClass") 30 | class HomeFragment : Fragment() { 31 | private val args by navArgs() 32 | @@ -509,6 +512,25 @@ class HomeFragment : Fragment() { 33 | observeSearchEngineNameChanges() 34 | observeWallpaperUpdates() 35 | 36 | + // This is an hack to force the browser to display the extension on-boarding on start-up 37 | + consumeFlow(store) { flow -> 38 | + flow.map { state -> state.findCustomTabOrSelectedTab()?.content?.url } 39 | + .distinctUntilChanged() 40 | + .collect { url -> 41 | + val navController = findNavController() 42 | + if ( 43 | + !onboardingShownOnce && 44 | + url != null && 45 | + store.state.tabs.size == 1 && 46 | + onboardingPattern.matches(url) && 47 | + navController.currentDestination?.id != R.id.browserFragment 48 | + ) { 49 | + navController.navigate(R.id.browserFragment) 50 | + onboardingShownOnce = true 51 | + } 52 | + } 53 | + } 54 | + 55 | homeMenuView = HomeMenuView( 56 | view = view, 57 | context = view.context, 58 | -- 59 | 2.39.2 (Apple Git-143) 60 | 61 | -------------------------------------------------------------------------------- /patches/0030-Disable-Telemetry-Nimbus-Collection-Tracking-Protect.patch: -------------------------------------------------------------------------------- 1 | From de7ad800d32863c9ad064eb0e1a5525fa712c065 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Fri, 25 Feb 2022 15:56:39 +0100 4 | Subject: Disable Telemetry, Nimbus, Collection, Tracking Protection 5 | 6 | --- 7 | .../java/org/mozilla/fenix/utils/Settings.kt | 35 ++++--------------- 8 | 1 file changed, 7 insertions(+), 28 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 11 | index f523104813..af4ad11098 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 14 | @@ -320,10 +320,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 15 | default = false, 16 | ) 17 | 18 | - var showCollectionsPlaceholderOnHome by booleanPreference( 19 | - appContext.getPreferenceKey(R.string.pref_key_show_collections_placeholder_home), 20 | - default = true, 21 | - ) 22 | + var showCollectionsPlaceholderOnHome = false 23 | 24 | val isCrashReportingEnabled: Boolean 25 | get() = isCrashReportEnabledInBuild && 26 | @@ -339,15 +336,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { 27 | 28 | var isTelemetryEnabled = false 29 | 30 | - var isMarketingTelemetryEnabled by booleanPreference( 31 | - appContext.getPreferenceKey(R.string.pref_key_marketing_telemetry), 32 | - default = !Config.channel.isMozillaOnline, 33 | - ) 34 | + var isMarketingTelemetryEnabled = false 35 | 36 | - var isExperimentationEnabled by booleanPreference( 37 | - appContext.getPreferenceKey(R.string.pref_key_experimentation), 38 | - default = true, 39 | - ) 40 | + var isExperimentationEnabled = false 41 | 42 | var isOverrideTPPopupsForPerformanceTest = false 43 | 44 | @@ -726,20 +717,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { 45 | default = false, 46 | ) 47 | 48 | - val useStandardTrackingProtection by booleanPreference( 49 | - appContext.getPreferenceKey(R.string.pref_key_tracking_protection_standard_option), 50 | - true, 51 | - ) 52 | + val useStandardTrackingProtection = false 53 | 54 | - val useStrictTrackingProtection by booleanPreference( 55 | - appContext.getPreferenceKey(R.string.pref_key_tracking_protection_strict_default), 56 | - false, 57 | - ) 58 | + val useStrictTrackingProtection = false 59 | 60 | - val useCustomTrackingProtection by booleanPreference( 61 | - appContext.getPreferenceKey(R.string.pref_key_tracking_protection_custom_option), 62 | - false, 63 | - ) 64 | + val useCustomTrackingProtection = false 65 | 66 | @VisibleForTesting(otherwise = PRIVATE) 67 | fun setStrictETP() { 68 | -- 69 | 2.39.2 (Apple Git-143) 70 | 71 | -------------------------------------------------------------------------------- /patches/0012-Disabling-Mozilla-Tracking-protection.patch: -------------------------------------------------------------------------------- 1 | From 0cdd407a0989a35538d43d7fb4f9550164892fc2 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Wed, 10 Jun 2020 15:09:45 +0200 4 | Subject: Disabling Mozilla Tracking protection 5 | 6 | --- 7 | fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt | 2 +- 8 | .../main/java/org/mozilla/fenix/settings/SettingsFragment.kt | 1 - 9 | fenix/app/src/main/res/xml/preferences.xml | 5 ----- 10 | 3 files changed, 1 insertion(+), 7 deletions(-) 11 | 12 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 13 | index ea2aff8460..87539ce19e 100644 14 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 15 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 16 | @@ -126,7 +126,7 @@ class Core( 17 | remoteDebuggingEnabled = context.settings().isRemoteDebuggingEnabled && 18 | Build.VERSION.SDK_INT >= Build.VERSION_CODES.M, 19 | testingModeEnabled = false, 20 | - trackingProtectionPolicy = trackingProtectionPolicyFactory.createTrackingProtectionPolicy(), 21 | + trackingProtectionPolicy = null, 22 | historyTrackingDelegate = HistoryDelegate(lazyHistoryStorage), 23 | preferredColorScheme = getPreferredColorScheme(), 24 | automaticFontSizeAdjustment = context.settings().shouldUseAutoSize, 25 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 26 | index 765524168e..ace215e8d7 100644 27 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 28 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 29 | @@ -493,7 +493,6 @@ class SettingsFragment : PreferenceFragmentCompat() { 30 | setupHttpsOnlyPreferences() 31 | setupSearchPreference() 32 | setupHomepagePreference() 33 | - setupTrackingProtectionPreference() 34 | } 35 | 36 | /** 37 | diff --git a/fenix/app/src/main/res/xml/preferences.xml b/fenix/app/src/main/res/xml/preferences.xml 38 | index ea44783d44..5c5b1a623d 100644 39 | --- a/fenix/app/src/main/res/xml/preferences.xml 40 | +++ b/fenix/app/src/main/res/xml/preferences.xml 41 | @@ -108,11 +108,6 @@ 42 | app:isPreferenceVisible="false" 43 | android:title="@string/preferences_cookie_banner_reduction_private_mode" /> 44 | 45 | - 49 | - 50 | 3 | Date: Tue, 4 Aug 2020 10:31:31 +0200 4 | Subject: Remove addons from menu 5 | 6 | --- 7 | .../components/toolbar/DefaultToolbarMenu.kt | 16 ++++------------ 8 | .../main/java/org/mozilla/fenix/settings/SettingsFragment.kt | 1 - 9 | 2 file changed, 4 insertions(+), 13 deletions(-) 10 | 11 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt 12 | index 799a55ea58..94b8d6f416 100644 13 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt 14 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt 15 | @@ -14,6 +14,7 @@ import androidx.lifecycle.lifecycleScope 16 | import kotlinx.coroutines.Job 17 | import kotlinx.coroutines.flow.mapNotNull 18 | import kotlinx.coroutines.launch 19 | +import mozilla.components.browser.menu.BrowserMenuBuilder 20 | import mozilla.components.browser.menu.BrowserMenuHighlight 21 | import mozilla.components.browser.menu.BrowserMenuItem 22 | import mozilla.components.browser.menu.WebExtensionBrowserMenuBuilder 23 | @@ -79,19 +80,9 @@ open class DefaultToolbarMenu( 24 | get() = store.state.selectedTab 25 | 26 | override val menuBuilder by lazy { 27 | - FxNimbus.features.print.recordExposure() 28 | - WebExtensionBrowserMenuBuilder( 29 | - items = coreMenuItems, 30 | - endOfMenuAlwaysVisible = shouldUseBottomToolbar, 31 | - store = store, 32 | - style = WebExtensionBrowserMenuBuilder.Style( 33 | - webExtIconTintColorResource = primaryTextColor(), 34 | - addonsManagerMenuItemDrawableRes = R.drawable.ic_addons_extensions, 35 | - ), 36 | - onAddonsManagerTapped = { 37 | - onItemTapped.invoke(ToolbarMenu.Item.AddonsManager) 38 | - }, 39 | - appendExtensionSubMenuAtStart = shouldUseBottomToolbar, 40 | + BrowserMenuBuilder( 41 | + coreMenuItems, 42 | + endOfMenuAlwaysVisible = shouldUseBottomToolbar 43 | ) 44 | } 45 | 46 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 47 | index c5b148767d..e1d616ad32 100644 48 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 49 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 50 | @@ -506,7 +506,6 @@ class SettingsFragment : PreferenceFragmentCompat() { 51 | (requireContext().components.core.engine.profiler?.isProfilerActive() != null) 52 | } 53 | setupCookieBannerPreference() 54 | - setupInstallAddonFromFilePreference(requireContext().settings()) 55 | setupAmoCollectionOverridePreference(requireContext().settings()) 56 | setupGeckoLogsPreference(requireContext().settings()) 57 | setupAllowDomesticChinaFxaServerPreference() 58 | 59 | -- 60 | 2.39.2 (Apple Git-143) 61 | 62 | -------------------------------------------------------------------------------- /patches/0033-Fixing-null-version-name-in-About.patch: -------------------------------------------------------------------------------- 1 | From 6a6038afa9a1d1cedffb218ce27ac9fed5ca1405 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Thu, 17 Mar 2022 16:25:43 +0100 4 | Subject: Fixing null version name in About 5 | 6 | --- 7 | fenix/app/build.gradle | 2 +- 8 | .../java/org/mozilla/fenix/settings/about/AboutFragment.kt | 2 +- 9 | fenix/buildSrc/src/main/java/ConfigPlugin.kt | 4 ++-- 10 | 3 files changed, 4 insertions(+), 4 deletions(-) 11 | 12 | diff --git a/fenix/app/build.gradle b/fenix/app/build.gradle 13 | index d813edaed2..e653f675a8 100644 14 | --- a/fenix/app/build.gradle 15 | +++ b/fenix/app/build.gradle 16 | @@ -36,7 +36,7 @@ android { 17 | compileSdk config.compileSdkVersion 18 | targetSdkVersion config.targetSdkVersion 19 | versionCode 1 20 | - versionName Config.generateDebugVersionName() 21 | + versionName Config.generateDebugVersionName(project) 22 | vectorDrawables.useSupportLibrary = true 23 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 24 | testInstrumentationRunnerArguments clearPackageData: 'true' 25 | 26 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt 27 | index f60dfc579b..60bfab2e04 100644 28 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt 29 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt 30 | @@ -108,7 +108,7 @@ class AboutFragment : Fragment(), AboutPageListener { 31 | 32 | String.format( 33 | "%s (Build #%s)%s\n%s: %s\n%s: %s", 34 | - packageInfo.versionName, 35 | + BuildConfig.VERSION_NAME, 36 | versionCode, 37 | maybeFenixGitHash, 38 | maybeGecko, 39 | diff --git a/android-components/plugins/config/src/main/java/ConfigPlugin.kt b/android-components/plugins/config/src/main/java/ConfigPlugin.kt 40 | index 03740f36db..4d161267d1 100644 41 | --- a/android-components/plugins/config/src/main/java/ConfigPlugin.kt 42 | +++ b/android-components/plugins/config/src/main/java/ConfigPlugin.kt 43 | @@ -19,13 +19,13 @@ class ConfigPlugin : Plugin { 44 | object Config { 45 | 46 | @JvmStatic 47 | - private fun generateDebugVersionName(): String { 48 | + private fun generateDebugVersionName(project: Project): String { 49 | val today = Date() 50 | // Append the year (2 digits) and week in year (2 digits). This will make it easier to distinguish versions and 51 | // identify ancient versions when debugging issues. However this will still keep the same version number during 52 | // the week so that we do not end up with a lot of versions in tools like Sentry. As an extra this matches the 53 | // sections we use in the changelog (weeks). 54 | - return SimpleDateFormat("1.0.yyww", Locale.US).format(today) 55 | + return if (project.hasProperty("versionName")) project.property("versionName") as String else SimpleDateFormat("1.0.yyww", Locale.US).format(today) 56 | } 57 | 58 | @JvmStatic 59 | -- 60 | 2.39.2 (Apple Git-143) 61 | 62 | -------------------------------------------------------------------------------- /patches/0001-Ghostery-Logo-Added.patch: -------------------------------------------------------------------------------- 1 | From ebb45e5dbe1efe7a876a7f5db8a0b064ed235242 Mon Sep 17 00:00:00 2001 2 | From: Sam Macbeth 3 | Date: Mon, 24 Aug 2020 16:19:12 +0200 4 | Subject: Ghostery Logo Added 5 | 6 | --- 7 | fenix/app/build.gradle | 21 +++++++++++++++++-- 8 | .../res/mipmap-anydpi-v26/ic_launcher.xml | 2 +- 9 | .../mipmap-anydpi-v26/ic_launcher_round.xml | 2 +- 10 | 3 files changed, 21 insertions(+), 4 deletions(-) 11 | 12 | diff --git a/fenix/app/build.gradle b/fenix/app/build.gradle 13 | index ce2174c4d8..d0548811f9 100644 14 | --- a/fenix/app/build.gradle 15 | +++ b/fenix/app/build.gradle 16 | @@ -31,7 +31,7 @@ android { 17 | } 18 | 19 | defaultConfig { 20 | - applicationId "org.mozilla" 21 | + applicationId "com.ghostery.android" 22 | minSdkVersion config.minSdkVersion 23 | compileSdk config.compileSdkVersion 24 | targetSdkVersion config.targetSdkVersion 25 | @@ -111,7 +111,7 @@ android { 26 | debug { 27 | shrinkResources false 28 | minifyEnabled false 29 | - applicationIdSuffix ".fenix.debug" 30 | + applicationIdSuffix ".debug" 31 | resValue "bool", "IS_DEBUG", "true" 32 | pseudoLocalesEnabled true 33 | } 34 | @@ -163,6 +163,16 @@ android { 35 | applicationIdSuffix ".fenix" 36 | debuggable false 37 | } 38 | + ghostery releaseTemplate >> { 39 | + buildConfigField "boolean", "USE_RELEASE_VERSIONING", "true" 40 | + applicationIdSuffix ".ghostery" 41 | + def deepLinkSchemeValue = "ghostery" 42 | + buildConfigField "String", "DEEP_LINK_SCHEME", "\"$deepLinkSchemeValue\"" 43 | + manifestPlaceholders.putAll([ 44 | + "sharedUserId": "com.ghostery.android.ghostery.sharedID", 45 | + "deepLinkScheme": deepLinkSchemeValue, 46 | + ]) 47 | + } 48 | } 49 | 50 | buildFeatures { 51 | 52 | diff --git a/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml 53 | index de34ac4858..9e9d6e7325 100644 54 | --- a/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml 55 | +++ b/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml 56 | @@ -3,7 +3,7 @@ 57 | - License, v. 2.0. If a copy of the MPL was not distributed with this 58 | - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 59 | 60 | - 61 | + 62 | 63 | 64 | 65 | diff --git a/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml 66 | index de34ac4858..9e9d6e7325 100644 67 | --- a/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml 68 | +++ b/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml 69 | @@ -3,7 +3,7 @@ 70 | - License, v. 2.0. If a copy of the MPL was not distributed with this 71 | - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 72 | 73 | - 74 | + 75 | 76 | 77 | 78 | -- 79 | 2.39.2 (Apple Git-143) 80 | 81 | -------------------------------------------------------------------------------- /patches/0006-Disabling-Firefox-onboarding.patch: -------------------------------------------------------------------------------- 1 | From 430ca3ae98a1cea2cff735afb01cd5517b74a29b Mon Sep 17 00:00:00 2001 2 | From: Sam Macbeth 3 | Date: Mon, 3 Aug 2020 15:07:40 +0200 4 | Subject: Disabling Firefox onboarding 5 | 6 | --- 7 | .../fenix/onboarding/FenixOnboarding.kt | 4 +-- 8 | .../java/org/mozilla/fenix/utils/Settings.kt | 27 ++++--------------- 9 | 2 files changed, 6 insertions(+), 25 deletions(-) 10 | 11 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/onboarding/FenixOnboarding.kt b/fenix/app/src/main/java/org/mozilla/fenix/onboarding/FenixOnboarding.kt 12 | index a6f3b77a47..454697168b 100644 13 | --- a/fenix/app/src/main/java/org/mozilla/fenix/onboarding/FenixOnboarding.kt 14 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/onboarding/FenixOnboarding.kt 15 | @@ -46,9 +46,7 @@ class FenixOnboarding(context: Context) : PreferencesHolder { 16 | } 17 | 18 | fun userHasBeenOnboarded(): Boolean { 19 | - return strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { 20 | - onboardedVersion == CURRENT_ONBOARDING_VERSION 21 | - } 22 | + return true 23 | } 24 | 25 | companion object { 26 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 27 | index a36dcede6a..a1d6b70fd2 100644 28 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 29 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 30 | @@ -1033,10 +1033,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 31 | default = false, 32 | ) 33 | 34 | - var shouldShowOpenInAppBanner by booleanPreference( 35 | - appContext.getPreferenceKey(R.string.pref_key_should_show_open_in_app_banner), 36 | - default = true, 37 | - ) 38 | + var shouldShowOpenInAppBanner = false 39 | 40 | val shouldShowOpenInAppCfr: Boolean 41 | get() = canShowCfr && shouldShowOpenInAppBanner 42 | @@ -1074,11 +1071,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 43 | /** 44 | * Indicates if the jump back in CRF should be shown. 45 | */ 46 | - var shouldShowJumpBackInCFR by lazyFeatureFlagPreference( 47 | - appContext.getPreferenceKey(R.string.pref_key_should_show_jump_back_in_tabs_popup), 48 | - featureFlag = true, 49 | - default = { mr2022Sections[Mr2022Section.JUMP_BACK_IN_CFR] == true }, 50 | - ) 51 | + var shouldShowJumpBackInCFR = false 52 | 53 | /** 54 | * Returns a sitePermissions action for the provided [feature]. 55 | @@ -1481,11 +1474,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 56 | /** 57 | * Indicates if home onboarding dialog should be shown. 58 | */ 59 | - var showHomeOnboardingDialog by lazyFeatureFlagPreference( 60 | - appContext.getPreferenceKey(R.string.pref_key_should_show_home_onboarding_dialog), 61 | - featureFlag = true, 62 | - default = { mr2022Sections[Mr2022Section.HOME_ONBOARDING_DIALOG_EXISTING_USERS] == true }, 63 | - ) 64 | + var showHomeOnboardingDialog = false 65 | 66 | /** 67 | * Indicates if the recent tabs functionality should be visible. 68 | @@ -1715,12 +1715,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 69 | * app icon. 70 | */ 71 | fun shouldShowOnboarding(hasUserBeenOnboarded: Boolean, isLauncherIntent: Boolean): Boolean { 72 | - return if (!hasUserBeenOnboarded && isLauncherIntent) { 73 | - FxNimbus.features.junoOnboarding.recordExposure() 74 | - true 75 | - } else { 76 | - false 77 | - } 78 | + return !hasUserBeenOnboarded && isLauncherIntent 79 | } 80 | 81 | val feltPrivateBrowsingEnabled by lazyFeatureFlagPreference( 82 | 83 | -- 84 | 2.39.2 (Apple Git-143) 85 | 86 | -------------------------------------------------------------------------------- /assets/app/src/main/res/drawable/ic_launcher_private_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 14 | 20 | 26 | 32 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /patches/0037-Disable-search-for-synced-tabs.patch: -------------------------------------------------------------------------------- 1 | From 8818c032ce1a8b0eaff871554f9e7634e65ffe87 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Fri, 28 Jul 2023 12:04:04 +0200 4 | Subject: Disable: search for synced tabs 5 | 6 | --- 7 | .../mozilla/fenix/settings/search/SearchEngineFragment.kt | 6 ------ 8 | fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +---- 9 | fenix/app/src/main/res/xml/search_settings_preferences.xml | 5 ----- 10 | 4 files changed, 1 insertion(+), 19 deletions(-) 11 | 12 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt 13 | index 3b2fe6694b..3260c952f1 100644 14 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt 15 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt 16 | @@ -83,11 +83,6 @@ class SearchEngineFragment : PreferenceFragmentCompat() { 17 | isChecked = context.settings().shouldShowBookmarkSuggestions 18 | } 19 | 20 | - val showSyncedTabsSuggestions = 21 | - requirePreference(R.string.pref_key_search_synced_tabs).apply { 22 | - isChecked = context.settings().shouldShowSyncedTabsSuggestions 23 | - } 24 | - 25 | val showClipboardSuggestions = 26 | requirePreference(R.string.pref_key_show_clipboard_suggestions).apply { 27 | isChecked = context.settings().shouldShowClipboardSuggestions 28 | @@ -119,7 +114,6 @@ class SearchEngineFragment : PreferenceFragmentCompat() { 29 | searchSuggestionsPreference.onPreferenceChangeListener = SharedPreferenceUpdater() 30 | showHistorySuggestions.onPreferenceChangeListener = SharedPreferenceUpdater() 31 | showBookmarkSuggestions.onPreferenceChangeListener = SharedPreferenceUpdater() 32 | - showSyncedTabsSuggestions.onPreferenceChangeListener = SharedPreferenceUpdater() 33 | showClipboardSuggestions.onPreferenceChangeListener = SharedPreferenceUpdater() 34 | searchSuggestionsInPrivatePreference.onPreferenceChangeListener = SharedPreferenceUpdater() 35 | showVoiceSearchPreference.onPreferenceChangeListener = object : Preference.OnPreferenceChangeListener { 36 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 37 | index f66b740cf2..f7cf1bc969 100644 38 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 39 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 40 | @@ -377,10 +377,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 41 | default = true, 42 | ) 43 | 44 | - val shouldShowSyncedTabsSuggestions by booleanPreference( 45 | - appContext.getPreferenceKey(R.string.pref_key_search_synced_tabs), 46 | - default = true, 47 | - ) 48 | + val shouldShowSyncedTabsSuggestions = false 49 | 50 | val shouldShowClipboardSuggestions by booleanPreference( 51 | appContext.getPreferenceKey(R.string.pref_key_show_clipboard_suggestions), 52 | diff --git a/fenix/app/src/main/res/xml/search_settings_preferences.xml b/fenix/app/src/main/res/xml/search_settings_preferences.xml 53 | index 1f41a3aa1a..96163602e1 100644 54 | --- a/fenix/app/src/main/res/xml/search_settings_preferences.xml 55 | +++ b/fenix/app/src/main/res/xml/search_settings_preferences.xml 56 | @@ -54,11 +54,6 @@ 57 | android:defaultValue="true" 58 | android:key="@string/pref_key_search_bookmarks" 59 | android:title='@string/preferences_search_bookmarks' /> 60 | - 65 | 3 | Date: Mon, 3 Aug 2020 18:29:03 +0200 4 | Subject: Disabling logins and passwords autosave 5 | 6 | --- 7 | .../mozilla/fenix/settings/SettingsFragment.kt | 7 ------- 8 | .../main/java/org/mozilla/fenix/utils/Settings.kt | 15 +++------------ 9 | fenix/app/src/main/res/xml/preferences.xml | 10 ---------- 10 | 3 files changed, 3 insertions(+), 29 deletions(-) 11 | 12 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 13 | index a44cf3b874..c5b148767d 100644 14 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 15 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 16 | @@ -232,13 +232,6 @@ class SettingsFragment : PreferenceFragmentCompat() { 17 | requirePreference(R.string.pref_key_tabs) 18 | tabSettingsPreference.summary = context?.settings()?.getTabTimeoutString() 19 | 20 | - val autofillPreference = requirePreference(R.string.pref_key_credit_cards) 21 | - autofillPreference.title = if (settings.addressFeature) { 22 | - getString(R.string.preferences_autofill) 23 | - } else { 24 | - getString(R.string.preferences_credit_cards_2) 25 | - } 26 | - 27 | val openLinksInAppsSettingsPreference = 28 | requirePreference(R.string.pref_key_open_links_in_apps) 29 | openLinksInAppsSettingsPreference.summary = context?.settings()?.getOpenLinksInAppsString() 30 | 31 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 32 | index 880e2f000d..f523104813 100644 33 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 34 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 35 | @@ -1231,15 +1231,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { 36 | default = true, 37 | ) 38 | 39 | - var shouldPromptToSaveLogins by booleanPreference( 40 | - appContext.getPreferenceKey(R.string.pref_key_save_logins), 41 | - default = true, 42 | - ) 43 | + var shouldPromptToSaveLogins = false 44 | 45 | - var shouldAutofillLogins by booleanPreference( 46 | - appContext.getPreferenceKey(R.string.pref_key_autofill_logins), 47 | - default = true, 48 | - ) 49 | + var shouldAutofillLogins = false 50 | 51 | /** 52 | * Used in [SearchWidgetProvider] to update when the search widget 53 | @@ -1593,10 +1587,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 54 | * If set to `true` when the user focuses on credit card fields in the webpage an Android prompt letting her 55 | * select the card details to be automatically filled will appear. 56 | */ 57 | - var shouldAutofillCreditCardDetails by booleanPreference( 58 | - appContext.getPreferenceKey(R.string.pref_key_credit_cards_save_and_autofill_cards), 59 | - default = true, 60 | - ) 61 | + var shouldAutofillCreditCardDetails = false 62 | 63 | /** 64 | * Stores the user choice from the "Autofill Addresses" settings for whether 65 | 66 | diff --git a/fenix/app/src/main/res/xml/preferences.xml b/fenix/app/src/main/res/xml/preferences.xml 67 | index 5c5b1a623d..bb711133e6 100644 68 | --- a/fenix/app/src/main/res/xml/preferences.xml 69 | +++ b/fenix/app/src/main/res/xml/preferences.xml 70 | @@ -62,16 +62,6 @@ 71 | app:iconSpaceReserved="false" 72 | android:title="@string/preferences_customize" /> 73 | 74 | - 78 | - 79 | - 83 | - 84 | 3 | Date: Tue, 9 Jun 2020 10:56:17 +0200 4 | Subject: Remove Firefox Sync 5 | 6 | --- 7 | .../mozilla/fenix/library/bookmarks/BookmarkFragment.kt | 4 +--- 8 | .../org/mozilla/fenix/library/bookmarks/DesktopFolders.kt | 3 +-- 9 | .../org/mozilla/fenix/settings/account/AccountUiView.kt | 2 +- 10 | fenix/app/src/main/res/layout/component_tabstray2.xml | 7 ------- 11 | 4 files changed, 3 insertions(+), 13 deletions(-) 12 | 13 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt 14 | index 6306a29deb..fa2893974d 100644 15 | --- a/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt 16 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt 17 | @@ -139,7 +139,6 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan 18 | 19 | requireActivity().addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED) 20 | 21 | - val accountManager = requireComponents.backgroundServices.accountManager 22 | consumeFrom(bookmarkStore) { 23 | bookmarkView.update(it) 24 | 25 | @@ -147,8 +146,7 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan 26 | // Don't want to pester user too much with it, and if there are lots of bookmarks present, 27 | // it'll just get visually lost. Inside of the "Desktop Bookmarks" node, it'll nicely stand-out, 28 | // since there are always only three other items in there. It's also the right place contextually. 29 | - bookmarkView.binding.bookmarkFoldersSignIn.isVisible = 30 | - it.tree?.guid == BookmarkRoot.Root.id && accountManager.authenticatedAccount() == null 31 | + bookmarkView.binding.bookmarkFoldersSignIn.isVisible = false 32 | } 33 | } 34 | 35 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/DesktopFolders.kt b/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/DesktopFolders.kt 36 | index 19f83fa872..035a66eb36 100644 37 | --- a/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/DesktopFolders.kt 38 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/DesktopFolders.kt 39 | @@ -26,8 +26,7 @@ class DesktopFolders( 40 | BookmarkRoot.Mobile.id -> { 41 | // We're going to make a copy of the mobile node, and add-in a synthetic child folder to the top of the 42 | // children's list that contains all of the desktop roots. 43 | - val childrenWithVirtualFolder = 44 | - listOfNotNull(virtualDesktopFolder()) + node.children.orEmpty() 45 | + val childrenWithVirtualFolder = node.children.orEmpty() 46 | 47 | node.copy(children = childrenWithVirtualFolder) 48 | } 49 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/account/AccountUiView.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/account/AccountUiView.kt 50 | index bf6041c6ed..89315f9df0 100644 51 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/account/AccountUiView.kt 52 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/account/AccountUiView.kt 53 | @@ -86,7 +86,7 @@ class AccountUiView( 54 | 55 | // Signed-out. 56 | } else { 57 | - preferenceSignIn.isVisible = true 58 | + preferenceSignIn.isVisible = false 59 | preferenceFirefoxAccount.isVisible = false 60 | preferenceFirefoxAccountAuthError.isVisible = false 61 | accountPreferenceCategory.isVisible = false 62 | diff --git a/fenix/app/src/main/res/layout/component_tabstray2.xml b/fenix/app/src/main/res/layout/component_tabstray2.xml 63 | index 3379510c5a..cc5029796a 100644 64 | --- a/fenix/app/src/main/res/layout/component_tabstray2.xml 65 | +++ b/fenix/app/src/main/res/layout/component_tabstray2.xml 66 | @@ -100,13 +100,6 @@ 67 | android:contentDescription="@string/tabs_header_private_tabs_title" 68 | android:icon="@drawable/ic_private_browsing" /> 69 | 70 | - 76 | - 77 | 78 | 79 | 3 | Date: Mon, 3 Aug 2020 18:21:01 +0200 4 | Subject: Removig "What's new" from the Home menu 5 | 6 | --- 7 | .../java/org/mozilla/fenix/home/HomeMenu.kt | 50 ------------------- 8 | 1 file changed, 50 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt 11 | index 1588f03a84..cdfeb884f8 100644 12 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt 13 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt 14 | @@ -100,12 +100,6 @@ class HomeMenu( 15 | } 16 | } 17 | 18 | - private fun syncSignInMenuItem(): BrowserMenuItem { 19 | - return BrowserMenuSignIn(primaryTextColor) { 20 | - onItemTapped.invoke(Item.SyncAccount(accountManager.accountState)) 21 | - } 22 | - } 23 | - 24 | val desktopItem = BrowserMenuImageSwitch( 25 | imageResource = R.drawable.ic_desktop, 26 | label = context.getString(R.string.browser_menu_desktop_site), 27 | @@ -142,14 +136,6 @@ class HomeMenu( 28 | onItemTapped.invoke(Item.Downloads) 29 | } 30 | 31 | - val extensionsItem = BrowserMenuImageText( 32 | - context.getString(R.string.browser_menu_add_ons), 33 | - R.drawable.ic_addons_extensions, 34 | - primaryTextColor, 35 | - ) { 36 | - onItemTapped.invoke(Item.Extensions) 37 | - } 38 | - 39 | val manageAccountAndDevicesItem = SimpleBrowserMenuItem( 40 | context.getString(R.string.browser_menu_manage_account_and_devices), 41 | textColorResource = primaryTextColor, 42 | @@ -157,26 +143,6 @@ class HomeMenu( 43 | onItemTapped.invoke(Item.ManageAccountAndDevices) 44 | } 45 | 46 | - val whatsNewItem = BrowserMenuHighlightableItem( 47 | - context.getString(R.string.browser_menu_whats_new), 48 | - R.drawable.ic_whats_new, 49 | - iconTintColorResource = primaryTextColor, 50 | - highlight = BrowserMenuHighlight.LowPriority( 51 | - notificationTint = getColor(context, R.color.fx_mobile_icon_color_information), 52 | - ), 53 | - isHighlighted = { WhatsNew.shouldHighlightWhatsNew(context) }, 54 | - ) { 55 | - onItemTapped.invoke(Item.WhatsNew) 56 | - } 57 | - 58 | - val helpItem = BrowserMenuImageText( 59 | - context.getString(R.string.browser_menu_help), 60 | - R.drawable.mozac_ic_help_circle_24, 61 | - primaryTextColor, 62 | - ) { 63 | - onItemTapped.invoke(Item.Help) 64 | - } 65 | - 66 | val customizeHomeItem = BrowserMenuImageText( 67 | context.getString(R.string.browser_menu_customize_home_1), 68 | R.drawable.ic_customize, 69 | @@ -196,36 +162,19 @@ class HomeMenu( 70 | onItemTapped.invoke(Item.Settings) 71 | } 72 | 73 | - // Only query account manager if it has been initialized. 74 | - // We don't want to cause its initialization just for this check. 75 | - val accountAuthItem = 76 | - if (context.components.backgroundServices.accountManagerAvailableQueue.isReady() && 77 | - context.components.backgroundServices.accountManager.accountNeedsReauth() 78 | - ) { 79 | - reconnectToSyncItem 80 | - } else { 81 | - null 82 | - } 83 | - 84 | // Since syncSignIn & accountAuth items take us to the same place -> we won't show them in the same time 85 | // We will show syncSignIn item when the accountAuth item: 86 | // 1. is not needed or 87 | // 2. it is needed, but the account manager is not available yet 88 | - val syncSignInMenuItem = if (accountAuthItem == null) syncSignInMenuItem() else null 89 | 90 | val menuItems = listOfNotNull( 91 | bookmarksItem, 92 | historyItem, 93 | downloadsItem, 94 | - extensionsItem, 95 | - syncSignInMenuItem, 96 | - accountAuthItem, 97 | if (Config.channel.isMozillaOnline) manageAccountAndDevicesItem else null, 98 | BrowserMenuDivider(), 99 | desktopItem, 100 | BrowserMenuDivider(), 101 | - whatsNewItem, 102 | - helpItem, 103 | customizeHomeItem, 104 | settingsItem, 105 | if (settings.shouldDeleteBrowsingDataOnQuit) quitItem else null, 106 | -- 107 | 2.39.2 (Apple Git-143) 108 | 109 | -------------------------------------------------------------------------------- /patches/0041-Disable-Sponsored-suggestions.patch: -------------------------------------------------------------------------------- 1 | From 5378fa6af26655632ce5b0468046b16b46762a68 Mon Sep 17 00:00:00 2001 2 | From: Krzysztof Modras 3 | Date: Thu, 23 May 2024 14:58:35 +0200 4 | Subject: Disable Sponsored suggestions 5 | 6 | --- 7 | .../settings/search/SearchEngineFragment.kt | 16 ---------------- 8 | .../java/org/mozilla/fenix/utils/Settings.kt | 6 +----- 9 | .../main/res/xml/search_settings_preferences.xml | 9 --------- 10 | 3 files changed, 1 insertion(+), 45 deletions(-) 11 | 12 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt 13 | index 5656418f0f..cdc69220f4 100644 14 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt 15 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt 16 | @@ -34,15 +34,9 @@ class SearchEngineFragment : PreferenceFragmentCompat() { 17 | rootKey, 18 | ) 19 | 20 | - requirePreference(R.string.pref_key_show_sponsored_suggestions).apply { 21 | - isVisible = context.settings().enableFxSuggest 22 | - } 23 | requirePreference(R.string.pref_key_show_nonsponsored_suggestions).apply { 24 | isVisible = context.settings().enableFxSuggest 25 | } 26 | - requirePreference(R.string.pref_key_learn_about_fx_suggest).apply { 27 | - isVisible = context.settings().enableFxSuggest 28 | - } 29 | 30 | view?.hideKeyboard() 31 | } 32 | @@ -93,15 +87,6 @@ class SearchEngineFragment : PreferenceFragmentCompat() { 33 | isChecked = context.settings().shouldShowVoiceSearch 34 | } 35 | 36 | - val showSponsoredSuggestionsPreference = 37 | - requirePreference(R.string.pref_key_show_sponsored_suggestions).apply { 38 | - isChecked = context.settings().showSponsoredSuggestions 39 | - summary = getString( 40 | - R.string.preferences_show_sponsored_suggestions_summary, 41 | - getString(R.string.app_name), 42 | - ) 43 | - } 44 | - 45 | val showNonSponsoredSuggestionsPreference = 46 | requirePreference(R.string.pref_key_show_nonsponsored_suggestions).apply { 47 | isChecked = context.settings().showNonSponsoredSuggestions 48 | @@ -136,7 +121,6 @@ class SearchEngineFragment : PreferenceFragmentCompat() { 49 | true 50 | } 51 | 52 | - showSponsoredSuggestionsPreference.onPreferenceChangeListener = SharedPreferenceUpdater() 53 | showNonSponsoredSuggestionsPreference.onPreferenceChangeListener = SharedPreferenceUpdater() 54 | } 55 | 56 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 57 | index 8cfd5604e9..062757c252 100644 58 | --- a/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 59 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt 60 | @@ -1885,11 +1885,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { 61 | * Indicates if the user has chosen to show sponsored search suggestions in the awesomebar. 62 | * The default value is computed lazily, and based on whether Firefox Suggest is enabled. 63 | */ 64 | - var showSponsoredSuggestions by lazyFeatureFlagPreference( 65 | - key = appContext.getPreferenceKey(R.string.pref_key_show_sponsored_suggestions), 66 | - default = { enableFxSuggest }, 67 | - featureFlag = FeatureFlags.fxSuggest, 68 | - ) 69 | + var showSponsoredSuggestions = false 70 | 71 | /** 72 | * Indicates if the user has chosen to show search suggestions for web content in the 73 | diff --git a/fenix/app/src/main/res/xml/search_settings_preferences.xml b/fenix/app/src/main/res/xml/search_settings_preferences.xml 74 | index 7170f1bb07..253c9dde4c 100644 75 | --- a/fenix/app/src/main/res/xml/search_settings_preferences.xml 76 | +++ b/fenix/app/src/main/res/xml/search_settings_preferences.xml 77 | @@ -59,15 +59,6 @@ 78 | android:key="@string/pref_key_show_nonsponsored_suggestions" 79 | android:title="@string/preferences_show_nonsponsored_suggestions" 80 | android:summary="@string/preferences_show_nonsponsored_suggestions_summary" /> 81 | - 86 | - 90 | 91 | 92 | 3 | Date: Mon, 15 Jun 2020 10:40:37 +0200 4 | Subject: Replacing the status logo 5 | 6 | --- 7 | .../src/main/res/drawable/ic_status_logo.xml | 20 +++--- 8 | fenix/ghostery_res/simplified_ghostery.svg | 69 +++++++++++++++++++ 9 | 2 files changed, 79 insertions(+), 10 deletions(-) 10 | create mode 100644 fenix/ghostery_res/simplified_ghostery.svg 11 | 12 | diff --git a/fenix/app/src/main/res/drawable/ic_status_logo.xml b/fenix/app/src/main/res/drawable/ic_status_logo.xml 13 | index 7c8de0a09b..baec060b8b 100644 14 | --- a/fenix/app/src/main/res/drawable/ic_status_logo.xml 15 | +++ b/fenix/app/src/main/res/drawable/ic_status_logo.xml 16 | @@ -1,12 +1,12 @@ 17 | - 18 | - 21 | 26 | - 28 | + android:width="20dp" 29 | + android:height="20dp" 30 | + android:viewportWidth="5.2916665" 31 | + android:viewportHeight="5.291667"> 32 | + 38 | 39 | diff --git a/fenix/ghostery_res/simplified_ghostery.svg b/fenix/ghostery_res/simplified_ghostery.svg 40 | new file mode 100644 41 | index 0000000000..3eefd4af11 42 | --- /dev/null 43 | +++ b/fenix/ghostery_res/simplified_ghostery.svg 44 | @@ -0,0 +1,69 @@ 45 | + 46 | + 61 | + 63 | + 84 | + 86 | + 87 | + 89 | + image/svg+xml 90 | + 92 | + 93 | + 94 | + 95 | + 96 | + 101 | + 105 | + 111 | + 112 | + 113 | + 114 | -- 115 | 2.39.2 (Apple Git-143) 116 | 117 | -------------------------------------------------------------------------------- /patches/0015-Help-resources-point-to-Ghostery-domain.patch: -------------------------------------------------------------------------------- 1 | From 2bbb0730e2aa61093fdf0f1ecb67586b57f014c3 Mon Sep 17 00:00:00 2001 2 | From: Sam Macbeth 3 | Date: Mon, 3 Aug 2020 18:24:11 +0200 4 | Subject: Help resources point to Ghostery domain 5 | 6 | --- 7 | .../mozilla/fenix/settings/SupportUtils.kt | 19 +++++++++---------- 8 | .../fenix/settings/about/AboutFragment.kt | 16 ---------------- 9 | .../src/main/res/layout/fragment_about.xml | 17 +---------------- 10 | 3 files changed, 10 insertions(+), 42 deletions(-) 11 | 12 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt 13 | index e867be39f2..3fb43a9596 100644 14 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt 15 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt 16 | @@ -59,24 +59,23 @@ object SupportUtils { 17 | } 18 | 19 | enum class MozillaPage(internal val path: String) { 20 | - PRIVATE_NOTICE("privacy/firefox/"), 21 | - MANIFESTO("about/manifesto/"), 22 | + PRIVATE_NOTICE("privacy/privacy/"), 23 | + MANIFESTO("ghostery-manifesto/"), 24 | } 25 | 26 | /** 27 | * Gets a support page URL for the corresponding topic. 28 | */ 29 | + @Suppress("UNUSED_PARAMETER") 30 | fun getSumoURLForTopic( 31 | context: Context, 32 | topic: SumoTopic, 33 | locale: Locale = Locale.getDefault(), 34 | ): String { 35 | - val escapedTopic = getEncodedTopicUTF8(topic.topicStr) 36 | - // Remove the whitespace so a search is not triggered: 37 | - val appVersion = context.appVersionName.replace(" ", "") 38 | - val osTarget = "Android" 39 | - val langTag = getLanguageTag(locale) 40 | - return "https://support.mozilla.org/1/mobile/$appVersion/$osTarget/$langTag/$escapedTopic" 41 | + return when (topic) { 42 | + SumoTopic.HELP -> "https://www.ghostery.com/support/" 43 | + else -> "This topic is unsupported" 44 | + } 45 | } 46 | 47 | /** 48 | @@ -93,10 +92,10 @@ object SupportUtils { 49 | return "https://support.mozilla.org/kb/access-mozilla-services-firefox-account" 50 | } 51 | 52 | + @Suppress("UNUSED_PARAMETER") 53 | fun getMozillaPageUrl(page: MozillaPage, locale: Locale = Locale.getDefault()): String { 54 | val path = page.path 55 | - val langTag = getLanguageTag(locale) 56 | - return "https://www.mozilla.org/$langTag/$path" 57 | + return "https://www.ghostery.com/$path" 58 | } 59 | 60 | fun createCustomTabIntent(context: Context, url: String): Intent = CustomTabsIntent.Builder() 61 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt 62 | index 49254f5c18..2b94edd8da 100644 63 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt 64 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt 65 | @@ -119,11 +119,9 @@ class AboutFragment : Fragment(), AboutPageListener { 66 | "" 67 | } 68 | 69 | - val content = getString(R.string.about_content, appName) 70 | val buildDate = BuildConfig.BUILD_DATE 71 | 72 | binding.aboutText.text = aboutText 73 | - binding.aboutContent.text = content 74 | binding.buildDate.text = buildDate 75 | } 76 | 77 | @@ -131,14 +129,6 @@ class AboutFragment : Fragment(), AboutPageListener { 78 | val context = requireContext() 79 | 80 | return listOf( 81 | - AboutPageItem( 82 | - AboutItem.ExternalLink( 83 | - WHATS_NEW, 84 | - SupportUtils.WHATS_NEW_URL, 85 | - ), 86 | - // Note: Fenix only has release notes for 'Release' versions, NOT 'Beta' & 'Nightly'. 87 | - getString(R.string.about_whats_new, getString(R.string.firefox)), 88 | - ), 89 | AboutPageItem( 90 | AboutItem.ExternalLink( 91 | SUPPORT, 92 | @@ -157,13 +147,6 @@ class AboutFragment : Fragment(), AboutPageListener { 93 | ), 94 | getString(R.string.about_privacy_notice), 95 | ), 96 | - AboutPageItem( 97 | - AboutItem.ExternalLink( 98 | - RIGHTS, 99 | - SupportUtils.getSumoURLForTopic(context, SupportUtils.SumoTopic.YOUR_RIGHTS), 100 | - ), 101 | - getString(R.string.about_know_your_rights), 102 | - ), 103 | AboutPageItem( 104 | AboutItem.ExternalLink(LICENSING_INFO, ABOUT_LICENSE_URL), 105 | getString(R.string.about_licensing_information), 106 | 107 | diff --git a/fenix/app/src/main/res/layout/fragment_about.xml b/fenix/app/src/main/res/layout/fragment_about.xml 108 | index f9a150768e..6ebf4150f9 100644 109 | --- a/fenix/app/src/main/res/layout/fragment_about.xml 110 | +++ b/fenix/app/src/main/res/layout/fragment_about.xml 111 | @@ -33,21 +33,6 @@ 112 | app:layout_constraintTop_toTopOf="parent" 113 | app:layout_constraintWidth_percent="0.75" /> 114 | 115 | - 129 | - 130 | 141 | 142 | -- 143 | 2.39.2 (Apple Git-143) 144 | 145 | -------------------------------------------------------------------------------- /patches/0021-Browser-action-integration-4.patch: -------------------------------------------------------------------------------- 1 | From fb855030fb7469ef08bd16800c460cf273ed3836 Mon Sep 17 00:00:00 2001 2 | From: Sam Macbeth 3 | Date: Mon, 29 Jun 2020 16:29:21 +0200 4 | Subject: Browser action integration (#4) 5 | 6 | * Replace tracking protection logo with Ghosty 7 | 8 | * Remove Addon browser action menu 9 | 10 | * Open ghostery action when Ghosty icon is clicked 11 | --- 12 | .../mozilla/fenix/browser/BrowserFragment.kt | 17 +++++++++++++++++ 13 | .../QuickSettingsSheetDialogFragment.kt | 4 ---- 14 | .../app/src/main/res/drawable/ic_ghostery.xml | 19 +++++++++++++++++++ 15 | .../fragment_quick_settings_dialog_sheet.xml | 17 +---------------- 16 | 4 files changed, 37 insertions(+), 20 deletions(-) 17 | create mode 100644 fenix/app/src/main/res/drawable/ic_ghostery.xml 18 | 19 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt 20 | index 3acba253b2..d0849d7440 100644 21 | --- a/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt 22 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt 23 | @@ -116,6 +116,23 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { 24 | ) 25 | } 26 | 27 | + val ghosteryAction = BrowserToolbar.Button( 28 | + imageDrawable = AppCompatResources.getDrawable( 29 | + context, 30 | + R.drawable.ic_ghostery 31 | + )!!, 32 | + contentDescription = "Ghostery", 33 | + iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context), 34 | + listener = { 35 | + val globalAction = requireComponents.core.store.state.extensions.get("firefox@ghostery.com")?.browserAction 36 | + if (globalAction != null) { 37 | + globalAction.onClick() 38 | + } 39 | + } 40 | + ) 41 | + 42 | + browserToolbarView.view.addPageAction(ghosteryAction) 43 | + 44 | val isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate 45 | 46 | if (!IncompleteRedesignToolbarFeature(context.settings()).isEnabled) { 47 | 48 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt 49 | index 3f5c19f39a..82b8b88910 100644 50 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt 51 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt 52 | @@ -116,13 +116,6 @@ class QuickSettingsSheetDialogFragment : FenixDialogFragment() { 53 | websiteInfoView = WebsiteInfoView(binding.websiteInfoLayout, interactor = interactor) 54 | websitePermissionsView = 55 | WebsitePermissionsView(binding.websitePermissionsLayout, interactor) 56 | - protectionsView = 57 | - ProtectionsView( 58 | - binding.trackingProtectionLayout, 59 | - binding.trackingProtectionDivider, 60 | - interactor, 61 | - context.settings(), 62 | - ) 63 | clearSiteDataView = ClearSiteDataView( 64 | context = context, 65 | ioScope = viewLifecycleOwner.lifecycleScope + Dispatchers.IO, 66 | @@ -137,11 +130,9 @@ class QuickSettingsSheetDialogFragment : FenixDialogFragment() { 67 | 68 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 69 | super.onViewCreated(view, savedInstanceState) 70 | - observeTrackersChange(requireComponents.core.store) 71 | consumeFrom(quickSettingsStore) { 72 | websiteInfoView.update(it.webInfoState) 73 | websitePermissionsView.update(it.websitePermissionsState) 74 | - protectionsView.update(it.protectionsState) 75 | clearSiteDataView.update(it.webInfoState) 76 | } 77 | } 78 | 79 | diff --git a/fenix/app/src/main/res/drawable/ic_ghostery.xml b/fenix/app/src/main/res/drawable/ic_ghostery.xml 80 | new file mode 100644 81 | index 0000000000..7770c40930 82 | --- /dev/null 83 | +++ b/fenix/app/src/main/res/drawable/ic_ghostery.xml 84 | @@ -0,0 +1,19 @@ 85 | + 86 | + 89 | + 94 | + 96 | + 102 | + 103 | + 104 | \ No newline at end of file 105 | diff --git a/fenix/app/src/main/res/layout/fragment_quick_settings_dialog_sheet.xml b/fenix/app/src/main/res/layout/fragment_quick_settings_dialog_sheet.xml 106 | index 0087457062..25f811f305 100644 107 | --- a/fenix/app/src/main/res/layout/fragment_quick_settings_dialog_sheet.xml 108 | +++ b/fenix/app/src/main/res/layout/fragment_quick_settings_dialog_sheet.xml 109 | @@ -26,7 +26,7 @@ 110 | android:id="@+id/websitePermissionsLayout" 111 | android:layout_width="match_parent" 112 | android:layout_height="wrap_content" 113 | - app:layout_constraintBottom_toTopOf="@id/trackingProtectionDivider" /> 114 | + app:layout_constraintBottom_toTopOf="@id/clearSiteDataLayout" /> 115 | 116 | 121 | 122 | - 127 | - 128 | - 136 | - 137 | 3 | Date: Mon, 3 Aug 2020 16:46:47 +0200 4 | Subject: Disabling Telemetry & CrashReports 5 | 6 | --- 7 | .../org/mozilla/fenix/FenixApplication.kt | 6 +-- 8 | .../org/mozilla/fenix/components/Analytics.kt | 38 ++++--------------- 9 | .../fenix/crashes/DummyCrashReporter.kt | 19 ++++++++++ 10 | .../fenix/settings/SettingsFragment.kt | 1 - 11 | fenix/app/src/main/res/xml/preferences.xml | 10 ----- 12 | 5 files changed, 28 insertions(+), 46 deletions(-) 13 | create mode 100644 fenix/app/src/main/java/org/mozilla/fenix/crashes/DummyCrashReporter.kt 14 | 15 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt 16 | index 0208c135b5..0ca6ccb759 100644 17 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt 18 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt 19 | @@ -29,6 +29,7 @@ import org.mozilla.fenix.components.metrics.InstallReferrerMetricsService 20 | import org.mozilla.fenix.components.metrics.MetricController 21 | import org.mozilla.fenix.components.metrics.MetricsStorage 22 | import org.mozilla.fenix.crashes.CrashFactCollector 23 | +import org.mozilla.fenix.crashes.DummyCrashReporter 24 | import org.mozilla.fenix.ext.components 25 | import org.mozilla.fenix.ext.settings 26 | import org.mozilla.fenix.perf.lazyMonitored 27 | @@ -46,10 +47,6 @@ class Analytics( 28 | ) { 29 | val crashReporter: CrashReporter by lazyMonitored { 30 | val services = mutableListOf() 31 | - val distributionId = when (Config.channel.isMozillaOnline) { 32 | - true -> "MozillaOnline" 33 | - false -> "Mozilla" 34 | - } 35 | 36 | if (isSentryEnabled()) { 37 | // We treat caught exceptions similar to debug logging. 38 | @@ -80,21 +77,10 @@ class Analytics( 39 | } 40 | 41 | services.add(sentryService) 42 | + } else { 43 | + services.add(DummyCrashReporter()) 44 | } 45 | 46 | - // The name "Fenix" here matches the product name on Socorro and is unrelated to the actual app name: 47 | - // https://bugzilla.mozilla.org/show_bug.cgi?id=1523284 48 | - val socorroService = MozillaSocorroService( 49 | - context, 50 | - appName = "Fenix", 51 | - version = MOZ_APP_VERSION, 52 | - buildId = MOZ_APP_BUILDID, 53 | - vendor = MOZ_APP_VENDOR, 54 | - releaseChannel = MOZ_UPDATE_CHANNEL, 55 | - distributionId = distributionId, 56 | - ) 57 | - services.add(socorroService) 58 | - 59 | val intent = Intent(context, HomeActivity::class.java).apply { 60 | flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP 61 | } 62 | @@ -113,11 +99,11 @@ class Analytics( 63 | CrashReporter( 64 | context = context, 65 | services = services, 66 | - telemetryServices = listOf(GleanCrashReporterService(context)), 67 | + telemetryServices = listOf(), 68 | shouldPrompt = CrashReporter.Prompt.ALWAYS, 69 | promptConfiguration = CrashReporter.PromptConfiguration( 70 | appName = context.getString(R.string.app_name), 71 | - organizationName = "Mozilla", 72 | + organizationName = "Ghostery", 73 | ), 74 | enabled = true, 75 | nonFatalCrashIntent = pendingIntent, 76 | @@ -139,17 +125,9 @@ class Analytics( 77 | 78 | val metrics: MetricController by lazyMonitored { 79 | MetricController.create( 80 | - listOf( 81 | - GleanMetricsService(context), 82 | - AdjustMetricsService( 83 | - application = context as Application, 84 | - storage = metricsStorage, 85 | - crashReporter = crashReporter, 86 | - ), 87 | - InstallReferrerMetricsService(context), 88 | - ), 89 | - isDataTelemetryEnabled = { context.settings().isTelemetryEnabled }, 90 | - isMarketingDataTelemetryEnabled = { context.settings().isMarketingTelemetryEnabled }, 91 | + listOf(), 92 | + isDataTelemetryEnabled = { false }, 93 | + isMarketingDataTelemetryEnabled = { false }, 94 | context.settings(), 95 | ) 96 | } 97 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/crashes/DummyCrashReporter.kt b/fenix/app/src/main/java/org/mozilla/fenix/crashes/DummyCrashReporter.kt 98 | new file mode 100644 99 | index 0000000000..de5b53ff5a 100 | --- /dev/null 101 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/crashes/DummyCrashReporter.kt 102 | @@ -0,0 +1,19 @@ 103 | +package org.mozilla.fenix.crashes 104 | + 105 | +import mozilla.components.lib.crash.Crash 106 | +import mozilla.components.lib.crash.service.CrashReporterService 107 | +import mozilla.components.concept.base.crash.Breadcrumb 108 | + 109 | +class DummyCrashReporter : CrashReporterService { 110 | + override val id: String = "dummy" 111 | + 112 | + override val name: String = "dummy" 113 | + 114 | + override fun createCrashReportUrl(identifier: String): String? = null 115 | + 116 | + override fun report(throwable: Throwable, breadcrumbs: ArrayList): String? = null 117 | + 118 | + override fun report(crash: Crash.NativeCodeCrash): String? = null 119 | + 120 | + override fun report(crash: Crash.UncaughtExceptionCrash): String? = null 121 | +} 122 | \ No newline at end of file 123 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 124 | index bb1e1fd1f9..765524168e 100644 125 | --- a/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 126 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt 127 | @@ -491,7 +491,6 @@ class SettingsFragment : PreferenceFragmentCompat() { 128 | setupGeckoLogsPreference(requireContext().settings()) 129 | setupAllowDomesticChinaFxaServerPreference() 130 | setupHttpsOnlyPreferences() 131 | - setupNotificationPreference() 132 | setupSearchPreference() 133 | setupHomepagePreference() 134 | setupTrackingProtectionPreference() 135 | diff --git a/fenix/app/src/main/res/xml/preferences.xml b/fenix/app/src/main/res/xml/preferences.xml 136 | index 2e0366e11b..59e338c53c 100644 137 | --- a/fenix/app/src/main/res/xml/preferences.xml 138 | +++ b/fenix/app/src/main/res/xml/preferences.xml 139 | @@ -128,16 +128,6 @@ 140 | app:iconSpaceReserved="false" 141 | android:title="@string/preferences_delete_browsing_data_on_quit" /> 142 | 143 | - 147 | - 148 | - 152 | - 153 | 154 | 155 | 3 | Date: Mon, 8 Jun 2020 14:56:58 +0200 4 | Subject: Adding Ghostery Icon resources 5 | 6 | --- 7 | fenix/ghostery_res/ghostery_logo_white.svg | 67 ++++++++++++ 8 | .../ghostery_logo_white_private.svg | 103 ++++++++++++++++++ 9 | 2 files changed, 170 insertions(+) 10 | create mode 100644 fenix/ghostery_res/ghostery_logo_white.svg 11 | create mode 100644 fenix/ghostery_res/ghostery_logo_white_private.svg 12 | 13 | diff --git a/fenix/ghostery_res/ghostery_logo_white.svg b/fenix/ghostery_res/ghostery_logo_white.svg 14 | new file mode 100644 15 | index 0000000000..7482e57629 16 | --- /dev/null 17 | +++ b/fenix/ghostery_res/ghostery_logo_white.svg 18 | @@ -0,0 +1,67 @@ 19 | + 20 | + 35 | + 37 | + 58 | + 60 | + 61 | + 63 | + image/svg+xml 64 | + 66 | + 67 | + 68 | + 69 | + 70 | + 74 | + 78 | + 83 | + 84 | + 85 | + 86 | diff --git a/fenix/ghostery_res/ghostery_logo_white_private.svg b/fenix/ghostery_res/ghostery_logo_white_private.svg 87 | new file mode 100644 88 | index 0000000000..bb3c2179ca 89 | --- /dev/null 90 | +++ b/fenix/ghostery_res/ghostery_logo_white_private.svg 91 | @@ -0,0 +1,103 @@ 92 | + 93 | + 108 | + 110 | + 133 | + 137 | + 141 | + 142 | + 144 | + 145 | + 147 | + image/svg+xml 148 | + 150 | + 151 | + 152 | + 153 | + 154 | + 158 | + 162 | + 166 | + 171 | + 176 | + 181 | + 186 | + 191 | + 192 | + 193 | + 194 | + 195 | -- 196 | 2.39.2 (Apple Git-143) 197 | 198 | -------------------------------------------------------------------------------- /patches/0008-Ghostery-Private-Search-as-default-search-engine.patch: -------------------------------------------------------------------------------- 1 | From 25604ee7e62173642316827447c5bae18b117757 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Mon, 8 Jun 2020 16:28:41 +0200 4 | Subject: Ghostery Private Search as default search engine 5 | 6 | --- 7 | .../search/storage/SearchEngineReader.kt | 2 ++ 8 | fenix/app/src/main/assets/search/list.json | 11 +++++++++++ 9 | .../src/main/assets/searchplugins/brave.xml | 19 +++++++++++++++++++ 10 | .../main/assets/searchplugins/ghostery.xml | 18 ++++++++++++++++++ 11 | .../java/org/mozilla/fenix/components/Core.kt | 11 ++++++++++- 12 | 5 files changed, 60 insertions(+), 1 deletion(-) 13 | create mode 100644 fenix/app/src/main/assets/search/list.json 14 | create mode 100644 fenix/app/src/main/assets/searchplugins/brave.xml 15 | create mode 100644 fenix/app/src/main/assets/searchplugins/ghostery.xml 16 | 17 | diff --git a/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt b/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt 18 | index 3f623ae701..04218c42b6 100644 19 | --- a/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt 20 | +++ b/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt 21 | @@ -31,6 +31,8 @@ internal val GENERAL_SEARCH_ENGINE_IDS = setOf( 22 | "ddg", 23 | "bing", 24 | "baidu", 25 | + "brave", 26 | + "ghostery", 27 | "ecosia", 28 | "qwant", 29 | "yahoo-jp", 30 | diff --git a/fenix/app/src/main/assets/search/list.json b/fenix/app/src/main/assets/search/list.json 31 | new file mode 100644 32 | index 0000000000..d224a75269 33 | --- /dev/null 34 | +++ b/fenix/app/src/main/assets/search/list.json 35 | @@ -0,0 +1,11 @@ 36 | +{ 37 | + "default": { 38 | + "searchDefault": "Ghostery Private Search", 39 | + "searchOrder": ["Ghostery Private Search", "Brave", "Bing", "DuckDuckGo", "Google"], 40 | + "visibleDefaultEngines": [ 41 | + "ghostery", "brave", "google-b-m", "bing", "ddg" 42 | + ] 43 | + }, 44 | + "regionOverrides": {}, 45 | + "locales": {} 46 | +} 47 | diff --git a/fenix/app/src/main/assets/searchplugins/brave.xml b/fenix/app/src/main/assets/searchplugins/brave.xml 48 | new file mode 100644 49 | index 0000000000..2c594b1a7b 50 | --- /dev/null 51 | +++ b/fenix/app/src/main/assets/searchplugins/brave.xml 52 | @@ -0,0 +1,19 @@ 53 | + 54 | + 57 | + 58 | + Brave 59 | + Brave Search: private, independent, open 60 | + Brave Search 61 | + UTF-8 62 | + data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAnFBMVEVHcEwXBgA3DQl/HBF5HBLeMCmwKBLXMyC6KQ3dMBLbMxjuOijgLgviKwHwOiryOyXwMAv5PST0LwnuLQD7QiXwLQD1LQD7LwjxNQr4Myf5OR/yPxf4OS3/Pyb/QivxTCj+SjD/VT7xXT35alL6d2L8iHb4loX5o5f7sKX0w73/zMb00s//1M754uH76+z18PT39ff/9fT8+vz///96nB6rAAAAFXRSTlMAAw0ZJDRIWGV2kKSuwcLT1e3v+/wkomRQAAABoklEQVR42nWT2WKCMBBFi6DgUpUlasUgCGGPIPz/v3WSkECV3hce7snMnUz4mkhT+pqVfnQGHfVZ/3BVOizeTG1pGvvbRPuludQm/vZ2+/nQVhv9IMDX6xmEk8Rj3ytyXXcniTX4OHq+6rzsurYpsuJJ7wi0HoAVAEHdcwHAVV0AWA3Awg5w1r9oTQVQFRVtMoQcOYsZBHHflyTEUd61+R1d4qJpHgiZKqNo8Moj0rXEzyhvgtBOU0ApEuSsQipSFAxQLSLKgaTu2uouUvoIWUMGA6bgRIlfEPKSg8/mdA05xYHfQ9+T8Nm11I+Fj45yCm0DAI4hZYqj8JRQNgJoo+7aZEDUsyaRxxo0/CLNcdMeACmPmREeMQXf1cdt7iWQ43Mqge/JvjcAhHVPSUiIHxcwo4wg14UDIOIwgzGfqf+4ILkqtS4MCoZlUfDVqsYQbJCSAQXUHyPIN4OFsq7NTuCOr0Xetj0QhJwE4Bh/n7XlDcRZAK6lvT38lT0FnJX0x9/O2I3Azpj7+xaWLQDH4hN+CoowQB2fL6KO/1NE19+O/wIwPEoAZi8ATQAAAABJRU5ErkJggg== 63 | + 64 | + 65 | + 66 | + 67 | + 68 | + 69 | + 70 | + 71 | + 72 | diff --git a/fenix/app/src/main/assets/searchplugins/ghostery.xml b/fenix/app/src/main/assets/searchplugins/ghostery.xml 73 | new file mode 100644 74 | index 0000000000..815963c75a 75 | --- /dev/null 76 | +++ b/fenix/app/src/main/assets/searchplugins/ghostery.xml 77 | @@ -0,0 +1,18 @@ 78 | + 79 | + 82 | + 83 | + Ghostery Private Search 84 | + Private Search Engine 85 | + Ghostery Search 86 | + data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAAEgBckRAAAABGdBTUEAALGPC/xhBQAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAAD4/042AAANw0lEQVRoBe1Ze3BU5RU/9+4rC0k2CQkJSQgoEAsKBEFgoHVM5Y1R86QURVFEx7EqDlXrq9FqS+ujPketWjtOdRIg0TgagtomNBQFaTEQX0BIAAUCIcmy2ST7vD3nfPe7u5vdJOC/9s7c/e79Huf8fuec73zfdxdgkEuR9b+sKNScyhg4q2RCY9lDikoNqzavWHrD7HuhWxkLP0m/jPua6bczmDXt0T2N8O/S++FMvxdqq78exQ1dStZqEpNdtR1FjQGXKXM1N3Qr2VNINjW6lVSAoPYMy4v1w6jWVC7a69Qy8lxqJriUzPs/K73zj4yqG7LynGo2WOwXQSdkbSQJokHJhvWzV8OMMXkIOZsl68rHwl17DjI5pzo2vCEbnCBY+8HGDYZJ+A1/bt2ycJLLN+KAR0kAL96jRqfb/5Zf3i/bI8qVFcVaUeWNGl37Th3mcvbmF7Spm/6qyY4Mll4KK2++j2ybMWouvNr8L1jTsBWO9rigBzESzqzqXaOoH5Oghy41BzzaCPisS4GGrmPgxU7zt+0BuzUHunx27JFA3UIDurXMjR41ATzY0A/xXHrxvd2fAD4ljvp24B3FGVKqmrpHVLV8Tj3gXedpqHZu5ecf+hOl4obKZcF+LV4hs/Yr8Wfqyp7DsAhdEQNWVyzXGD92Ji48CPl8Wnav0c94uL6igDs/nF8O6fFpYDfHwUdHv4Un9u4Cn8nR3ly8MoP0GH7og0SEkAhTR+dC2YcvwKKal6F4Yh7WOaBPS0iXoAw/eLAzwaGLBhIkuqieoMnLGECd+rHTnM3Pwacld4E3GOQ+pFkOpgpjgGzwKPEwpboaOwnnmS1JcDYwUioIDegnSdI6ZCEc0E/v/niOWjmCSa/b86rFg+TEIEFeQCQhDgiE5Aor7Wwd4eUOyIOtxRZzMOGgNGS1009aDD9IlYlVX2uqmpHcbTJngT/QDEVJEX0iXuSgwcrbN5XGd4Ploty03Kby/HLWOFhfWT+kgpsrF+7waZb5NP8DYAU/3gHFxiU/Y71fsYIGtt80lD3E6UYKlmVMBTdVLFzkA9s2IQQFo9Clk5ZAyeTlkBSXACd7OuH5L+pgx4m2CKUTpqTYNl9c5pXCqYxSUF5fbv62vdlHwunOdIyHF5f8Fk66O+G6D59iZcTmzUVrYaIjDWZteR18YGEmfs0KB0pLImQac0FqbT7Vco/0OIVE4eQCbvpF7Us8Lzx6BNyyvY7rL067ECODsowIoey6nSlSFpVGZMtKFKD4CRExQNM8trsW5mVdAg2lD8PXnadg56kTsCD7AhgXnwhdHi80dniwH8WmYGzpdUQwiFLQj3nOFww5kwb+9L03DQHk5D80t0EQ8+D4BAccLl4KTV1u+Hl9C4MiNuFXtAJISvUpZhEtaFMZNQGMFuEXjCh6xnu/ywwp1fuFcpxE5AOw2NJQwRmpJEpBH8RvkEJJCD9rFhRC4SnCkljxu6FUvAcVE2CK347CjfwVYa+8Ta/XoN2vJqRsU1LAgiV6K5pGzgOdCfbV5HSXsEG9FooSa+g1IoowGTq8Zseyb0pXKAdLCxWPmvwkRQdFFUUUJyCZT7D0QZwQbjHncYqgNKHAraAE1xu6flwPqytW5K6qWiW2MudIPcLJscasqVhcgU5fIUJUOJsii5wfVK0btpY+/XSscbJuUAVra65M9/dZTgrBMkyFAppklH9IURCswfqycozP2FdEFMkuG7YtGunrNbNwQhrAaKG0EUDBdPswNHlOYBtGkjp30zPGhkvKkGVMBjdULNX8NLlQGDGwWhzwWP69MCE5BwLBADSdboP1299mBtJ0QdXWsrfklolSsCyjGKypWHaNmLECqd2WAm8XvcjCD3efgGOuM3Bp+gSoK7pfn9k6K802oVzTouRFpQov2N6UqMjGv7/yAdxiB+Hq6kegN6Aw6qyEMfDOkpvhmZ8Vwe07PmaWZMp3qmqeQuT3SPRURmlE9Mlkb75xUDZui7Yf24fCVRREJrNBS48bWs92QV7qGDYj+wjrvZptRbhweo5iQA4Mzz/Uye33o0ISLqMJHY5u9Qc1VshJERVgeyb1D79iMRCDEC0ha3d3w4KcaXrkkF9sYLck4HKZDF92d4MPUzSxEpHFe+Vw+dEMZDiKKLLB+sZKtPetUF94NzQcb4MEqx3mZ2SxkG3ft7OJwllHSMeXGAzQFDoqQtba0wtFdX+Hjv5eWJIzkYV/2dUFTZ3dUD5jKqzNnSBMyvNEHG/ClUT5gITK1YsXG/RJq6sPltW9xxFEJuF2LN+/ci48OHUCVB7rhWP9KteHC6fnaAWEBJWQ44gJ5x25chEzfRGi+sX//AqKxmWgcBP6QfQfVoGcvdIH4XOCnoVyBMAzHWP/qJuFM1sEMPCKYiBMIBiIZZPCT7IJC2FmqjPU24ndwCtCwdwtzxd4jQUehUrEVKoCNfuIBJIZ9Xa5fg8UTu8RUeQN2t7wazQQbz0qGD2+i3gXM1kEAgWDUEJ9jKvaGXF0j1CAFNOMNMGKSKAQysJIIN844fR2Qh95aRELvqFg2pa37pTCJAOjZKQh9MwK68KPMhFKPtYc8t1Q4FMs7oAa92xm6ih7S0mBcqRkscJo2dYhs4m6OFzJdPcpisfYslis2aAo74C7L1EqiLngyMbRNfunef1KE5kH89K63qKxr3FbdfeTWG7g5xyHFWYpPjnm/+X5WmBIF5yPsHWbCnI8WqAgoJmu1hTzvKCmxFMcaLjhDgLfWlAzfaeZLHVBUN6P0+z/2Fz2577z0RGr7w8msG7POov/0OE/BUC9QwOzGcHpYM0IWOUgJvBIKJwE1xMhTZDC0nxMMVlv+7ikvDYWwOHqzpvA2qql2UFfYGdAU8YyELYwgSZQomQCeAaLRYra0EPcpnuG39EQOEEtr+0o/fW64UCHt58XgZsqFm1BRcUCGB4SCQyCDugWZWD4HGceCeOSxkGSPQUSbQnQ0euC73q74IizA3ce6B32CpEVnpKlPl4DxXTVnpLbzskj50SgXCtXWyt37cVwmCZjWgKXXogzx8PGBQ9C+shUsJos4UaKeD7T54Latn3wl+YdTFyMRyMYoUbewfRrsq7fV3zdsxGDY7ycE4HVFQVv+TXT9QZ4OqKjEhkKN81YCcsmXgEm1QS93n7c2LfA6/vqoB3B9voD+G3GAZNTcuCBOdfASIvYNZ3pd0P57k/g0/bj7AnpPZr4IrRUUC1xl3917bWNMXAbVcMSuK6icLofTF+wpfSJF0QCchIuuOByuH3mCgbfigeH9fWvgsvnFeT0eUGhJsabYd6YifDonMUQj0SO9jjhjsaPoM3dK9p5buh96Vkxfd5SXDDbQBvjwVgqY7RxlV+1zxK7Bn251LcptE7TDntOVh6Dp85bW/8LTp+Guwy5bovTEb3Ls0PDieN4pnCy7Jx4B+Qmj+HdC/WhHQvJpCMCl5rt0lINY2uIa3gCmjWVNxU6YHH+EOBJ6b6OI4b4y8dOxyOzBE+EacMX/m6D3JRMyBopPiUd7enBo0WP2H6hfF7yeeMijIUkTDvf3Z1kKIjxELFhjNHOluAQ0BckmSpljn/7m9147hwH+WOnwCWp2VBTcDfsPNEKj/+nAecJHhX1DDV6RCI8PHMeXJaWgbBM+BHOA098sR8O9vj4w5AMMfrSRFmKStJlxm88Q13DzoHllb+6D2N+o5y0VAJNYpoPYYrGJaZhbC+HSUn0GW3wy4cf2y2qcHwn/lv1ysE2eOXAd5ETmTOSSBR2NS71+6LJxne5gZKH9YAf7GxJyhKhVCesE8C/1kQ6VeHgWTes/KSKJyN9pJ0+KgMuTEyBERYLtJztgUMuN3ze0QmdOEcuSEiEp2dNg+kpDnhgai7cMmk8vHTgOLx86DSPF1lIeOHsgC+X502ATqUyfUrAMiOxFyhEOHugQj3rfOl0Q7PzCL6TZamd2ig9ioXrW5cPltc3QWqcHRoWzgAreuSK9BR46dBZnA8CuCQx5AxGNsN6AA9LKlleKuf0yYD1dQAVyvCSxCjN0mJkeA3ViFVbEJHz57hHgYkf7NdDkVIzfdIiAqHxKuCEGeIaloBPi7sUd48sWK6+RILBkTK0KntA1iHw0FZB9gutA4YhCKS+PjBgHo/yyFg8t6gdD9yKZSbi3zoYhyEJLK19PrGzRyukjGDEP3sDgRlWFYqk1dgLDI7IiVt4Qic6yHjpFTFejNP/L7lxKAJDrgOne0xP+BSbSR4uxSJj5GiR4428jWdxejbeRT9jHeB6vQ+vKdFrBI2ltUCcJ/UEqWllUOOeMZgHBk2jsza/ht8alfekFWXJ4SLjmyyMFpWT3DjAcAiQFUWYkLfkeFlKOfyOHov+QyAcsnIKkhOzIB//6xlwxSQwo+aNzKDXfBQJmEi5dG9EKOjhQQAEwNBcEIuXAC9JhYcgy9Hjf8C3kQHwwl+VD6HIcVV4DT3HnAM+rxVPWiYGL7KHpR9U8y7MNk1Y7Q8ETbkI/CoGKueHTsRIrQMJUio1PEOJZYDtFOjCE00luqoPFPquocwHTbsoBFhbDjWufLgmoT5UFyUlvGno5/H1rXG9nR3NSGoCh4Oe4ylD6cQ8mmZuxMl9Ej04Ez0wmbJOzEtRfgeFjkditg1TOcAMw/SO0ZxSdTA7oARW4VciM8bxB+6iC5tidAtV1eI3K69rGQSDc5DPXpjkeBcuViL+qw11/hE8/Q+aknbZDzhdAgAAAABJRU5ErkJggg== 87 | + 88 | + 89 | + 90 | + 91 | + 92 | + 93 | + 94 | + 95 | + 96 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 97 | index b620c393fe..027a0418b0 100644 98 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 99 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt 100 | @@ -8,6 +8,7 @@ import android.content.Context 101 | import android.content.res.Configuration 102 | import android.os.Build 103 | import android.os.StrictMode 104 | +import android.util.Log 105 | import androidx.appcompat.content.res.AppCompatResources.getDrawable 106 | import androidx.core.content.ContextCompat 107 | import androidx.core.graphics.drawable.toBitmap 108 | @@ -160,6 +161,14 @@ class Core( 109 | if (Config.channel.isNightlyOrDebug || Config.channel.isBeta) { 110 | WebCompatReporterFeature.install(it, "fenix") 111 | } 112 | + 113 | + it.installBuiltInWebExtension("ghostery-search", "resource://android/assets/extensions/ghostery-search/", 114 | + onSuccess = { 115 | + Log.d("GHOSTERY", "Installed Ghostery Search webextension: ${it.id}") 116 | + }, 117 | + onError = { throwable -> 118 | + Log.e("GHOSTERY", "Failed to install Ghostery Search webextension", throwable) 119 | + }) 120 | } 121 | } 122 | 123 | @@ -270,7 +277,7 @@ class Core( 124 | RegionMiddleware(context, locationService), 125 | SearchMiddleware( 126 | context = context, 127 | - additionalBundledSearchEngineIds = listOf("reddit", "youtube"), 128 | + additionalBundledSearchEngineIds = listOf("ghostery", "brave", "reddit", "youtube"), 129 | migration = SearchMigration(context), 130 | searchExtraParams = searchExtraParams, 131 | ), 132 | -- 133 | 2.39.2 (Apple Git-143) 134 | 135 | -------------------------------------------------------------------------------- /patches/0020-Removing-Collections-again.patch: -------------------------------------------------------------------------------- 1 | From 331fec151cd627c51fae4c1b2c34d4d81cb31403 Mon Sep 17 00:00:00 2001 2 | From: Stefano Pacifici 3 | Date: Fri, 26 Jun 2020 16:18:32 +0200 4 | Subject: Removing Collections (again) 5 | 6 | --- 7 | .../components/toolbar/DefaultToolbarMenu.kt | 23 --------------- 8 | .../sessioncontrol/SessionControlAdapter.kt | 21 -------------- 9 | .../home/sessioncontrol/SessionControlView.kt | 28 ++----------------- 10 | .../fenix/tabstray/TabsTrayFragment.kt | 1 - 11 | .../fenix/tabstray/TabsTrayBanner.kt | 15 ---------- 12 | .../browser/SelectionBannerBinding.kt | 4 --- 13 | .../main/res/layout/component_tabstray2.xml | 2 +- 14 | .../res/layout/tabstray_multiselect_items.xml | 13 --------- 15 | 8 files changed, 3 insertions(+), 104 deletions(-) 16 | 17 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt 18 | index 8428377562..d2df2f5042 100644 19 | --- a/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt 20 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt 21 | @@ -245,10 +245,6 @@ open class DefaultToolbarMenu( 22 | onItemTapped.invoke(ToolbarMenu.Item.Downloads) 23 | } 24 | 25 | - private val extensionsItem = WebExtensionPlaceholderMenuItem( 26 | - id = WebExtensionPlaceholderMenuItem.MAIN_EXTENSIONS_MENU_ID, 27 | - ) 28 | - 29 | private val findInPageItem = BrowserMenuImageText( 30 | label = context.getString(R.string.browser_menu_find_in_page), 31 | imageResource = R.drawable.mozac_ic_search_24, 32 | @@ -335,14 +331,6 @@ open class DefaultToolbarMenu( 33 | }, 34 | ) 35 | 36 | - private val saveToCollectionItem = BrowserMenuImageText( 37 | - label = context.getString(R.string.browser_menu_save_to_collection_2), 38 | - imageResource = R.drawable.ic_tab_collection, 39 | - iconTintColorResource = primaryTextColor(), 40 | - ) { 41 | - onItemTapped.invoke(ToolbarMenu.Item.SaveToCollection) 42 | - } 43 | - 44 | private val printPageItem = BrowserMenuImageText( 45 | label = context.getString(R.string.menu_print), 46 | imageResource = R.drawable.ic_print, 47 | @@ -400,14 +388,6 @@ open class DefaultToolbarMenu( 48 | onItemTapped.invoke(ToolbarMenu.Item.Quit) 49 | } 50 | 51 | - private fun syncMenuItem(): BrowserMenuItem { 52 | - return BrowserMenuSignIn(primaryTextColor()) { 53 | - onItemTapped.invoke( 54 | - ToolbarMenu.Item.SyncAccount(accountManager.accountState), 55 | - ) 56 | - } 57 | - } 58 | - 59 | @VisibleForTesting(otherwise = PRIVATE) 60 | val coreMenuItems by lazy { 61 | val menuItems = 62 | @@ -418,8 +398,6 @@ open class DefaultToolbarMenu( 63 | bookmarksItem, 64 | historyItem, 65 | downloadsItem, 66 | - extensionsItem, 67 | - syncMenuItem(), 68 | BrowserMenuDivider(), 69 | findInPageItem, 70 | translationsItem.apply { visible = ::shouldShowTranslations }, 71 | @@ -432,7 +410,6 @@ open class DefaultToolbarMenu( 72 | addToHomeScreenItem.apply { visible = ::canAddToHomescreen }, 73 | installToHomescreen.apply { visible = ::canInstall }, 74 | if (shouldShowTopSites) addRemoveTopSitesItem else null, 75 | - saveToCollectionItem, 76 | if (FxNimbus.features.print.value().browserPrintEnabled) printPageItem else null, 77 | BrowserMenuDivider(), 78 | settingsItem, 79 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt 80 | index 4dd98bfd57..91b7473b06 100644 81 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt 82 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt 83 | @@ -99,23 +99,6 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) { 84 | object PrivateBrowsingDescription : AdapterItem(PrivateBrowsingDescriptionViewHolder.LAYOUT_ID) 85 | object NoCollectionsMessage : AdapterItem(NoCollectionsMessageViewHolder.LAYOUT_ID) 86 | 87 | - object CollectionHeader : AdapterItem(CollectionHeaderViewHolder.LAYOUT_ID) 88 | - data class CollectionItem( 89 | - val collection: TabCollection, 90 | - val expanded: Boolean, 91 | - ) : AdapterItem(CollectionViewHolder.LAYOUT_ID) { 92 | - override fun sameAs(other: AdapterItem) = 93 | - other is CollectionItem && collection.id == other.collection.id 94 | - 95 | - override fun contentsSameAs(other: AdapterItem): Boolean { 96 | - (other as? CollectionItem)?.let { 97 | - return it.expanded == this.expanded && 98 | - it.collection.title == this.collection.title && 99 | - it.collection.tabs == this.collection.tabs 100 | - } ?: return false 101 | - } 102 | - } 103 | - 104 | data class TabInCollectionItem( 105 | val collection: TabCollection, 106 | val tab: ComponentTab, 107 | @@ -373,10 +356,6 @@ class SessionControlAdapter( 108 | is MessageCardViewHolder -> { 109 | holder.bind((item as AdapterItem.NimbusMessageCard).message) 110 | } 111 | - is CollectionViewHolder -> { 112 | - val (collection, expanded) = item as AdapterItem.CollectionItem 113 | - holder.bindSession(collection, expanded) 114 | - } 115 | is TabInCollectionViewHolder -> { 116 | val (collection, tab, isLastTab) = item as AdapterItem.TabInCollectionItem 117 | holder.bindSession(collection, tab, isLastTab) 118 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt 119 | index 2f50a9494b..728208237d 100644 120 | --- a/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt 121 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt 122 | @@ -28,7 +28,8 @@ import org.mozilla.fenix.utils.Settings 123 | 124 | // This method got a little complex with the addition of the tab tray feature flag 125 | // When we remove the tabs from the home screen this will get much simpler again. 126 | -@Suppress("ComplexMethod", "LongParameterList") 127 | +@Suppress("UNUSED_PARAMETER") 128 | +@SuppressWarnings("UNUSED_PARAMETER", "ComplexMethod") 129 | @VisibleForTesting 130 | internal fun normalModeAdapterItems( 131 | settings: Settings, 132 | @@ -79,14 +80,6 @@ internal fun normalModeAdapterItems( 133 | items.add(AdapterItem.RecentVisitsItems) 134 | } 135 | 136 | - if (collections.isEmpty()) { 137 | - if (showCollectionsPlaceholder) { 138 | - items.add(AdapterItem.NoCollectionsMessage) 139 | - } 140 | - } else { 141 | - showCollections(collections, expandedCollections, items) 142 | - } 143 | - 144 | // When Pocket is enabled and the initial layout of the app is done, then we can add these items 145 | // to render to the home screen. 146 | // This is only useful while we have a RecyclerView + Compose implementation. We can remove this 147 | @@ -107,23 +100,6 @@ internal fun normalModeAdapterItems( 148 | return items 149 | } 150 | 151 | -private fun showCollections( 152 | - collections: List, 153 | - expandedCollections: Set, 154 | - items: MutableList, 155 | -) { 156 | - // If the collection is expanded, we want to add all of its tabs beneath it in the adapter 157 | - items.add(AdapterItem.CollectionHeader) 158 | - collections.map { 159 | - AdapterItem.CollectionItem(it, expandedCollections.contains(it.id)) 160 | - }.forEach { 161 | - items.add(it) 162 | - if (it.expanded) { 163 | - items.addAll(collectionTabItems(it.collection)) 164 | - } 165 | - } 166 | -} 167 | - 168 | private fun privateModeAdapterItems() = listOf(AdapterItem.PrivateBrowsingDescription) 169 | 170 | private fun AppState.toAdapterList(settings: Settings): List = when (mode) { 171 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt b/fenix/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt 172 | index f15acf5997..c310ebcdca 100644 173 | --- a/fenix/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt 174 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt 175 | @@ -466,7 +466,6 @@ class TabsTrayFragment : AppCompatDialogFragment() { 176 | interactor = tabsTrayInteractor, 177 | backgroundView = tabsTrayBinding.topBar, 178 | showOnSelectViews = VisibilityModifier( 179 | - tabsTrayMultiselectItemsBinding.collectMultiSelect, 180 | tabsTrayMultiselectItemsBinding.shareMultiSelect, 181 | tabsTrayMultiselectItemsBinding.menuMultiSelect, 182 | tabsTrayBinding.multiselectTitle, 183 | diff --git a/fenix/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt b/fenix/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt 184 | index da2ee01c80..5796659bbc 100644 185 | --- a/fenix/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt 186 | +++ b/fenix/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt 187 | @@ -89,12 +89,6 @@ class SelectionBannerBinding( 188 | interactor.onShareSelectedTabs() 189 | } 190 | 191 | - tabsTrayMultiselectItemsBinding.collectMultiSelect.setOnClickListener { 192 | - if (store.state.mode.selectedTabs.isNotEmpty()) { 193 | - interactor.onAddSelectedTabsToCollectionClicked() 194 | - } 195 | - } 196 | - 197 | binding.exitMultiSelect.setOnClickListener { 198 | store.dispatch(ExitSelectMode) 199 | } 200 | diff --git a/fenix/app/src/main/res/layout/component_tabstray2.xml b/fenix/app/src/main/res/layout/component_tabstray2.xml 201 | index cc5029796a..5678832636 100644 202 | --- a/fenix/app/src/main/res/layout/component_tabstray2.xml 203 | +++ b/fenix/app/src/main/res/layout/component_tabstray2.xml 204 | @@ -65,7 +65,7 @@ 205 | android:textColor="@color/fx_mobile_text_color_oncolor_primary" 206 | android:importantForAccessibility="no" 207 | app:layout_constraintBottom_toBottomOf="@id/topBar" 208 | - app:layout_constraintEnd_toStartOf="@id/collect_multi_select" 209 | + app:layout_constraintEnd_toStartOf="@id/share_multi_select" 210 | app:layout_constraintHorizontal_bias="0.0" 211 | app:layout_constraintHorizontal_chainStyle="packed" 212 | app:layout_constraintStart_toEndOf="@+id/exit_multi_select" 213 | diff --git a/fenix/app/src/main/res/layout/tabstray_multiselect_items.xml b/fenix/app/src/main/res/layout/tabstray_multiselect_items.xml 214 | index 67d2eee9e2..01b3348b22 100644 215 | --- a/fenix/app/src/main/res/layout/tabstray_multiselect_items.xml 216 | +++ b/fenix/app/src/main/res/layout/tabstray_multiselect_items.xml 217 | @@ -9,19 +9,6 @@ 218 | android:layout_height="wrap_content" 219 | tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> 220 | 221 | - 233 | - 234 | 3 | Date: Wed, 22 Jul 2020 17:33:44 +0200 4 | Subject: Renamig private tab(s) to Ghost Tab(s) (#5) 5 | 6 | --- 7 | fenix/app/src/main/res/values/strings.xml | 52 +++++++++++------------ 8 | 1 file changed, 26 insertions(+), 26 deletions(-) 9 | 10 | diff --git a/fenix/app/src/main/res/values/strings.xml b/fenix/app/src/main/res/values/strings.xml 11 | index e3278f5fdc..4622161f58 100644 12 | --- a/fenix/app/src/main/res/values/strings.xml 13 | +++ b/fenix/app/src/main/res/values/strings.xml 14 | @@ -3,17 +3,17 @@ 15 | - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 16 | 17 | 18 | - Private %s 19 | + Ghost Tabs %s 20 | 21 | - %s (Private) 22 | + %s (Ghost Tabs) 23 | 24 | 25 | 26 | More options 27 | 28 | - Enable private browsing 29 | + Enable Ghost Tab 30 | 31 | - Disable private browsing 32 | + Disable Ghost Tab 33 | 34 | Search or enter address 35 | 36 | @@ -29,7 +29,7 @@ 37 | 38 | Your open tabs will be shown here. 39 | 40 | - Your private tabs will be shown here. 41 | + Your Ghost Tabs will be shown here. 42 | 43 | %1$d selected 44 | 45 | @@ -60,7 +60,7 @@ 46 | 48 | 49 | - %1$s clears your search and browsing history from private tabs when you close them or quit the app. While this doesn’t make you anonymous to websites or your internet service provider, it makes it easier to keep what you do online private from anyone else who uses this device. 50 | + %1$s clears your search and browsing history from Ghost Tabs when you close them or quit the app. While this doesn’t make you anonymous to websites or your internet service provider, it makes it easier to keep what you do online private from anyone else who uses this device. 51 | 52 | Common myths about private browsing 53 | 54 | @@ -72,7 +72,7 @@ 55 | private mode in our new Total Private Browsing mode. 56 | The first parameter is the name of the app defined in app_name (for example: Firefox Nightly) 57 | The second parameter is the clickable link text in felt_privacy_info_card_subtitle_link_text --> 58 | - %1$s deletes your cookies, history, and site data when you close all your private tabs. %2$s 59 | + %1$s deletes your cookies, history, and site data when you close all your Ghost Tabs. %2$s 60 | 63 | @@ -80,7 +80,7 @@ 64 | 65 | 66 | 67 | - Launch your next private tab in one tap. 68 | + Launch your next Ghost Tab tab in one tap. 69 | 70 | Add to Home screen 71 | 72 | @@ -102,7 +102,7 @@ 73 | 74 | 75 | 76 | - Tap here to start a fresh private session. Delete your history, cookies — everything. 77 | + Tap here to start a fresh Ghost Mode. Delete your history, cookies — everything. 78 | 79 | 80 | 81 | @@ -138,7 +138,7 @@ 82 | 83 | New tab 84 | 85 | - New private tab 86 | + New Ghost Tab 87 | 88 | Passwords shortcut 89 | 90 | @@ -267,7 +267,7 @@ 91 | 92 | Don’t allow 93 | 94 | - Allow search suggestions in private sessions? 95 | + Allow search suggestions in Ghost Tab sessions? 96 | 97 | %s will share everything you type in the address bar with your default search engine. 98 | 99 | @@ -426,15 +426,15 @@ 100 | 101 | Site permissions 102 | 103 | - Private browsing 104 | + Ghost Tab 105 | 106 | - Open links in a private tab 107 | + Open links in a Ghost Tab 108 | 109 | - Allow screenshots in private browsing 110 | + Allow screenshots in Ghost Tab 111 | 112 | - If allowed, private tabs will also be visible when multiple apps are open 113 | + If allowed, Ghost Tabs will also be visible when multiple apps are open 114 | 115 | - Add private browsing shortcut 116 | + Add Ghost Tab shortcut 117 | 118 | HTTPS-Only Mode 119 | 120 | @@ -480,13 +480,13 @@ 121 | 122 | On in all tabs 123 | 124 | - On in private tabs 125 | + On in Ghost Tabs 126 | 127 | Learn more 128 | 129 | Enable in all tabs 130 | 131 | - Enable only in private tabs 132 | + Enable only in Ghost Tabs 133 | 134 | Secure site not available 135 | 136 | @@ -532,7 +532,7 @@ 137 | 138 | Show voice search 139 | 140 | - Show in private sessions 141 | + Show in Ghost Mode 142 | 143 | Show clipboard suggestions 144 | 145 | @@ -906,15 +906,15 @@ 146 | 147 | Open tabs 148 | 149 | - Private tabs 150 | + Ghost Tabs 151 | 152 | Synced tabs 153 | 154 | Add tab 155 | 156 | - Add private tab 157 | + Add Ghost Tab 158 | 159 | - Private 160 | + Ghost Tab 161 | 162 | Sync 163 | 164 | @@ -964,7 +964,7 @@ 165 | 166 | Delete from history 167 | 168 | - %1$s (Private Mode) 169 | + %1$s (Ghost Tabs) 170 | 171 | 172 | 173 | @@ -1039,11 +1039,11 @@ 174 | 175 | Open in new tab 176 | 177 | - Open in private tab 178 | + Open in Ghost Tab 179 | 180 | Open all in new tabs 181 | 182 | - Open all in private tabs 183 | + Open all in Ghost Tabs 184 | 185 | Delete 186 | 187 | @@ -1269,11 +1269,11 @@ 188 | 189 | 190 | 191 | - Close private tabs 192 | + Close Ghost Tabs 193 | 194 | 195 | - Close private tabs? 196 | - Tap or swipe this notification to close private tabs. 197 | + Close Ghost Tabs? 198 | + Tap or swipe this notification to close Ghost Tabs. 199 | 200 | 201 | Marketing 202 | @@ -1321,11 +1321,11 @@ 203 | 204 | Added to shortcuts! 205 | 206 | - Private tab closed 207 | + Ghost Tab closed 208 | 209 | - Private tabs closed 210 | + Ghost Tabs closed 211 | 212 | - Private browsing data deleted 213 | + Ghost Mode data deleted 214 | 215 | UNDO 216 | 217 | @@ -1514,7 +1514,7 @@ 218 | 219 | In all tabs 220 | 221 | - Only in Private tabs 222 | + Only in Ghost Tabs 223 | 224 | Cryptominers 225 | 226 | @@ -2531,7 +2531,7 @@ 227 | 228 | Inactive 229 | 230 | - Private 231 | + Ghost Tabs 232 | 233 | Total 234 | 235 | @@ -2543,5 +2543,5 @@ 236 | 237 | Add to inactive tabs 238 | 239 | - Add to private tabs 240 | + Add to Ghost Tabs 241 | 242 | 243 | -- 244 | 2.39.2 (Apple Git-143) 245 | 246 | --------------------------------------------------------------------------------