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