From cb4817a1ea5d86c2e3a0b3b6e635b274cb504788 Mon Sep 17 00:00:00 2001 From: ekager Date: Tue, 4 Aug 2020 10:42:29 -0400 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/13221 - Update global ETP to include PBM --- .../fenix/components/TrackingProtectionPolicyFactory.kt | 2 +- .../onboarding/OnboardingTrackingProtectionViewHolder.kt | 3 +-- .../mozilla/fenix/settings/TrackingProtectionFragment.kt | 3 +-- .../components/TrackingProtectionPolicyFactoryTest.kt | 16 +++++++++++++++- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactory.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactory.kt index 16a68787d8a8..d101c16d1bfd 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactory.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactory.kt @@ -24,7 +24,7 @@ class TrackingProtectionPolicyFactory(private val settings: Settings) { @Suppress("ComplexMethod") fun createTrackingProtectionPolicy( normalMode: Boolean = settings.shouldUseTrackingProtection, - privateMode: Boolean = true + privateMode: Boolean = settings.shouldUseTrackingProtection ): TrackingProtectionPolicy { val trackingProtectionPolicy = when { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingTrackingProtectionViewHolder.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingTrackingProtectionViewHolder.kt index eee57c7451f6..9d2e00013bbf 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingTrackingProtectionViewHolder.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingTrackingProtectionViewHolder.kt @@ -77,8 +77,7 @@ class OnboardingTrackingProtectionViewHolder(view: View) : RecyclerView.ViewHold private fun updateTrackingProtectionSetting(enabled: Boolean) { itemView.context.settings().shouldUseTrackingProtection = enabled with(itemView.context.components) { - val policy = core.trackingProtectionPolicyFactory - .createTrackingProtectionPolicy(enabled) + val policy = core.trackingProtectionPolicyFactory.createTrackingProtectionPolicy() useCases.settingsUseCases.updateTrackingProtection.invoke(policy) useCases.sessionUseCases.reload.invoke() } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt index e984b00131b5..029183ac5b5c 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt @@ -64,8 +64,7 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() { preference.context.settings().shouldUseTrackingProtection = trackingProtectionOn with(preference.context.components) { - val policy = core.trackingProtectionPolicyFactory - .createTrackingProtectionPolicy(trackingProtectionOn) + val policy = core.trackingProtectionPolicyFactory.createTrackingProtectionPolicy() useCases.settingsUseCases.updateTrackingProtection(policy) useCases.sessionUseCases.reload() } diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactoryTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactoryTest.kt index 94f1ae5f29c1..2344bf4b82e3 100644 --- a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactoryTest.kt +++ b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/TrackingProtectionPolicyFactoryTest.kt @@ -199,6 +199,18 @@ class TrackingProtectionPolicyFactoryTest { } @Test + fun `factory should follow global ETP settings by default`() { + var useETPFactory = TrackingProtectionPolicyFactory(mockSettings(useTrackingProtection = true)) + var policy = useETPFactory.createTrackingProtectionPolicy() + assertTrue(policy.useForPrivateSessions) + assertTrue(policy.useForRegularSessions) + + useETPFactory = TrackingProtectionPolicyFactory(mockSettings(useTrackingProtection = false)) + policy = useETPFactory.createTrackingProtectionPolicy() + assertEquals(policy, EngineSession.TrackingProtectionPolicy.none()) + } + + @Test fun `custom tabs should respect their privacy rules`() { val allSettings = listOf( settingsForCustom(shouldBlockCookiesInCustom = false, blockTrackingContentInCustom = "all"), @@ -315,10 +327,12 @@ class TrackingProtectionPolicyFactoryTest { private fun mockSettings( useStrict: Boolean = false, - useCustom: Boolean = false + useCustom: Boolean = false, + useTrackingProtection: Boolean = false ): Settings = mockk { every { useStrictTrackingProtection } returns useStrict every { useCustomTrackingProtection } returns useCustom + every { shouldUseTrackingProtection } returns useTrackingProtection } @Suppress("LongParameterList") -- 2.11.4.GIT