diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/EnhancedTrackingProtectionTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/StrictEnhancedTrackingProtectionTest.kt similarity index 97% rename from app/src/androidTest/java/org/mozilla/fenix/ui/EnhancedTrackingProtectionTest.kt rename to app/src/androidTest/java/org/mozilla/fenix/ui/StrictEnhancedTrackingProtectionTest.kt index 7953301f1..5ac044f6c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/EnhancedTrackingProtectionTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/StrictEnhancedTrackingProtectionTest.kt @@ -10,6 +10,7 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityTestRule import org.mozilla.fenix.helpers.TestAssetHelper @@ -32,7 +33,7 @@ import org.mozilla.fenix.ui.robots.settingsSubMenuEnhancedTrackingProtection * - Verifying Enhanced Tracking Protection site exceptions */ -class EnhancedTrackingProtectionTest { +class StrictEnhancedTrackingProtectionTest { private lateinit var mockWebServer: MockWebServer @get:Rule @@ -45,6 +46,8 @@ class EnhancedTrackingProtectionTest { start() } + InstrumentationRegistry.getInstrumentation().context.settings().setStrictETP() + // Reset on-boarding notification for each test TestHelper.setPreference( InstrumentationRegistry.getInstrumentation().context, diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuEnhancedTrackingProtectionRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuEnhancedTrackingProtectionRobot.kt index ad4ac835d..082acce1c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuEnhancedTrackingProtectionRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuEnhancedTrackingProtectionRobot.kt @@ -124,7 +124,7 @@ private fun assertEnhancedTrackingProtectionOptions() { onView(withText(stdText)) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - onView(withText("Strict (Default)")) + onView(withText("Strict")) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) val strictText = @@ -152,13 +152,13 @@ private fun assertEnhancedTrackingProtectionDefaults() { } private fun assertRadioButtonDefaults() { - onView(withText("Standard") + onView(withText("Strict") ).assertIsChecked(false) onView( allOf( withId(org.mozilla.fenix.R.id.radio_button), - hasSibling(withText("Strict (Default)")) + hasSibling(withText("Standard")) ) ).assertIsChecked(true) diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index f7caa06c0..d588ad799 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -30,6 +30,7 @@ import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.components.metrics.MozillaProductDetector +import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.getPreferenceKey import org.mozilla.fenix.settings.PhoneFeature import org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataOnQuitType @@ -332,7 +333,7 @@ class Settings private constructor( val useStrictTrackingProtection by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_tracking_protection_strict_default), - true + false ) val useCustomTrackingProtection by booleanPreference( @@ -340,6 +341,24 @@ class Settings private constructor( false ) + @VisibleForTesting(otherwise = PRIVATE) + fun setStrictETP() { + preferences.edit().putBoolean( + appContext.getPreferenceKey(R.string.pref_key_tracking_protection_strict_default), + true + ).apply() + preferences.edit().putBoolean( + appContext.getPreferenceKey(R.string.pref_key_tracking_protection_standard_option), + false + ).apply() + appContext?.components?.let { + val policy = it.core.trackingProtectionPolicyFactory + .createTrackingProtectionPolicy() + it.useCases.settingsUseCases.updateTrackingProtection.invoke(policy) + it.useCases.sessionUseCases.reload.invoke() + } + } + val blockCookiesInCustomTrackingProtection by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_tracking_protection_custom_cookies), true diff --git a/app/src/main/res/layout/onboarding_tracking_protection.xml b/app/src/main/res/layout/onboarding_tracking_protection.xml index 7bad8a3f8..5bdacb8ce 100644 --- a/app/src/main/res/layout/onboarding_tracking_protection.xml +++ b/app/src/main/res/layout/onboarding_tracking_protection.xml @@ -62,6 +62,7 @@ android:layout_marginBottom="16dp" android:paddingStart="0dp" android:paddingEnd="8dp" + android:checked="true" android:theme="@style/Checkable.Colored" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/description_text" @@ -105,7 +106,7 @@ android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:layout_marginBottom="16dp" - android:checked="true" + android:checked="false" android:paddingStart="0dp" android:paddingEnd="8dp" android:theme="@style/Checkable.Colored" @@ -118,7 +119,7 @@ android:id="@+id/protection_strict_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/onboarding_tracking_protection_strict_button" + android:text="@string/onboarding_tracking_protection_strict_option" android:textColor="@color/primary_state_list_text_color" android:textSize="16sp" app:layout_constraintStart_toEndOf="@+id/tracking_protection_strict_default" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1ded5605b..59ce7aef2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -937,6 +937,8 @@ Blocks fewer trackers but allows pages to load normally Strict (recommended) + + Strict Blocks more trackers for better protection and performance, but may cause some sites to not work properly