Skip to content

Commit f23bf2f

Browse files
committed
Don't expose domains
1 parent d86b06f commit f23bf2f

3 files changed

Lines changed: 3 additions & 57 deletions

File tree

ad-blocking/ad-blocking-impl/src/main/java/com/duckduckgo/adblocking/impl/di/AdBlockingExtensionModule.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@
1717
package com.duckduckgo.adblocking.impl.di
1818

1919
import com.duckduckgo.adblocking.impl.remoteconfig.AdBlockingExtensionSettings
20-
import com.duckduckgo.adblocking.impl.remoteconfig.DomainJsonAdapter
2120
import com.duckduckgo.adblocking.impl.remoteconfig.ScriptletsSettings
2221
import com.duckduckgo.adblocking.impl.store.AD_BLOCKING_EXTENSION_MIGRATIONS
2322
import com.duckduckgo.adblocking.impl.store.AdBlockingExtensionDao
2423
import com.duckduckgo.adblocking.impl.store.AdBlockingExtensionDatabase
25-
import com.duckduckgo.app.browser.Domain
2624
import com.duckduckgo.data.store.api.DatabaseProvider
2725
import com.duckduckgo.data.store.api.RoomDatabaseConfig
2826
import com.duckduckgo.di.scopes.AppScope
@@ -59,7 +57,6 @@ object AdBlockingExtensionModule {
5957
@Provides
6058
fun provideAdBlockingExtensionSettingsAdapter(): JsonAdapter<AdBlockingExtensionSettings> =
6159
Moshi.Builder()
62-
.add(Domain::class.java, DomainJsonAdapter().nullSafe())
6360
.add(KotlinJsonAdapterFactory())
6461
.build()
6562
.adapter(AdBlockingExtensionSettings::class.java)

ad-blocking/ad-blocking-impl/src/main/java/com/duckduckgo/adblocking/impl/remoteconfig/AdBlockingExtensionConfigProvider.kt

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@
1616

1717
package com.duckduckgo.adblocking.impl.remoteconfig
1818

19-
import com.duckduckgo.app.browser.Domain
2019
import com.duckduckgo.di.scopes.AppScope
2120
import com.duckduckgo.privacy.config.api.PrivacyConfigCallbackPlugin
2221
import com.squareup.anvil.annotations.ContributesBinding
2322
import com.squareup.anvil.annotations.ContributesMultibinding
2423
import com.squareup.moshi.JsonAdapter
25-
import com.squareup.moshi.JsonReader
26-
import com.squareup.moshi.JsonWriter
2724
import dagger.SingleInstanceIn
2825
import kotlinx.coroutines.flow.MutableStateFlow
2926
import kotlinx.coroutines.flow.StateFlow
@@ -36,7 +33,6 @@ import javax.inject.Inject
3633
data class AdBlockingExtensionSettings(
3734
val version: String,
3835
val scriptlets: Map<String, ScriptletEntry>,
39-
val domains: List<Domain> = emptyList(),
4036
)
4137

4238
data class ScriptletEntry(
@@ -49,13 +45,8 @@ data class ScriptletsSettings(
4945
val scriptlets: Map<String, ScriptletEntry>,
5046
)
5147

52-
data class DomainsSettings(
53-
val domains: List<Domain>,
54-
)
55-
5648
interface AdBlockingExtensionConfigProvider {
5749
val scriptletsSettings: StateFlow<ScriptletsSettings?>
58-
val domainsSettings: StateFlow<DomainsSettings?>
5950
}
6051

6152
@SingleInstanceIn(AppScope::class)
@@ -67,14 +58,12 @@ class RealAdBlockingExtensionConfigProvider @Inject constructor(
6758
) : AdBlockingExtensionConfigProvider, PrivacyConfigCallbackPlugin {
6859

6960
private val scriptletsFlow = MutableStateFlow<ScriptletsSettings?>(null)
70-
private val domainsFlow = MutableStateFlow<DomainsSettings?>(null)
7161

7262
init {
7363
refresh()
7464
}
7565

7666
override val scriptletsSettings: StateFlow<ScriptletsSettings?> = scriptletsFlow.asStateFlow()
77-
override val domainsSettings: StateFlow<DomainsSettings?> = domainsFlow.asStateFlow()
7867

7968
override fun onPrivacyConfigDownloaded() {
8069
logcat { "onPrivacyConfigDownloaded" }
@@ -84,7 +73,6 @@ class RealAdBlockingExtensionConfigProvider @Inject constructor(
8473
private fun refresh() {
8574
val raw = parseSettings()
8675
scriptletsFlow.value = raw?.let { ScriptletsSettings(it.version, it.scriptlets) }
87-
domainsFlow.value = raw?.let { DomainsSettings(it.domains) }
8876
}
8977

9078
private fun parseSettings(): AdBlockingExtensionSettings? {
@@ -95,10 +83,3 @@ class RealAdBlockingExtensionConfigProvider @Inject constructor(
9583
?.takeIf { it.version.isNotEmpty() }
9684
}
9785
}
98-
99-
internal class DomainJsonAdapter : JsonAdapter<Domain>() {
100-
override fun fromJson(reader: JsonReader): Domain = Domain(reader.nextString())
101-
override fun toJson(writer: JsonWriter, value: Domain?) {
102-
writer.value(value?.value)
103-
}
104-
}

ad-blocking/ad-blocking-impl/src/test/java/com/duckduckgo/adblocking/impl/AdBlockingExtensionConfigProviderTest.kt

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
2121
import app.cash.turbine.test
2222
import com.duckduckgo.adblocking.impl.remoteconfig.AdBlockingExtensionFeature
2323
import com.duckduckgo.adblocking.impl.remoteconfig.AdBlockingExtensionSettings
24-
import com.duckduckgo.adblocking.impl.remoteconfig.DomainJsonAdapter
2524
import com.duckduckgo.adblocking.impl.remoteconfig.RealAdBlockingExtensionConfigProvider
2625
import com.duckduckgo.adblocking.impl.remoteconfig.ScriptletEntry
27-
import com.duckduckgo.app.browser.Domain
2826
import com.duckduckgo.feature.toggles.api.FakeFeatureToggleFactory
2927
import com.duckduckgo.feature.toggles.api.Toggle
3028
import com.squareup.moshi.Moshi
@@ -42,7 +40,6 @@ class AdBlockingExtensionConfigProviderTest {
4240

4341
private val feature = FakeFeatureToggleFactory.create(AdBlockingExtensionFeature::class.java)
4442
private val settingsAdapter = Moshi.Builder()
45-
.add(Domain::class.java, DomainJsonAdapter().nullSafe())
4643
.add(KotlinJsonAdapterFactory())
4744
.build()
4845
.adapter(AdBlockingExtensionSettings::class.java)
@@ -54,8 +51,7 @@ class AdBlockingExtensionConfigProviderTest {
5451
"scriptlets": {
5552
"scriptlets/isolated/ublock-filters.js": { "url": "https://cdn.example/isolated.js", "signature": "iso-sig" },
5653
"scriptlets/main/ublock-filters.js": { "url": "https://cdn.example/main.js", "signature": "main-sig" }
57-
},
58-
"domains": ["youtube.com", "m.youtube.com"]
54+
}
5955
}
6056
""".trimIndent()
6157

@@ -65,7 +61,6 @@ class AdBlockingExtensionConfigProviderTest {
6561
provider.onPrivacyConfigDownloaded()
6662

6763
assertNull(provider.scriptletsSettings.value)
68-
assertNull(provider.domainsSettings.value)
6964
}
7065

7166
@Test
@@ -74,29 +69,26 @@ class AdBlockingExtensionConfigProviderTest {
7469
provider.onPrivacyConfigDownloaded()
7570

7671
assertNull(provider.scriptletsSettings.value)
77-
assertNull(provider.domainsSettings.value)
7872
}
7973

8074
@Test
8175
fun whenVersionIsMissingThenSettingsAreNull() = runTest {
8276
feature.self().setRawStoredState(
83-
Toggle.State(remoteEnableState = true, settings = """{"scriptlets": {}, "domains": []}"""),
77+
Toggle.State(remoteEnableState = true, settings = """{"scriptlets": {}}"""),
8478
)
8579
provider.onPrivacyConfigDownloaded()
8680

8781
assertNull(provider.scriptletsSettings.value)
88-
assertNull(provider.domainsSettings.value)
8982
}
9083

9184
@Test
9285
fun whenScriptletsIsMissingThenSettingsAreNull() = runTest {
9386
feature.self().setRawStoredState(
94-
Toggle.State(remoteEnableState = true, settings = """{"version": "1.0", "domains": []}"""),
87+
Toggle.State(remoteEnableState = true, settings = """{"version": "1.0"}"""),
9588
)
9689
provider.onPrivacyConfigDownloaded()
9790

9891
assertNull(provider.scriptletsSettings.value)
99-
assertNull(provider.domainsSettings.value)
10092
}
10193

10294
@Test
@@ -117,30 +109,6 @@ class AdBlockingExtensionConfigProviderTest {
117109
)
118110
}
119111

120-
@Test
121-
fun whenSettingsAreValidThenDomainsSettingsReflectsParsedConfig() = runTest {
122-
feature.self().setRawStoredState(Toggle.State(remoteEnableState = true, settings = validSettingsJson))
123-
provider.onPrivacyConfigDownloaded()
124-
125-
assertEquals(
126-
listOf(Domain("youtube.com"), Domain("m.youtube.com")),
127-
provider.domainsSettings.value?.domains,
128-
)
129-
}
130-
131-
@Test
132-
fun whenDomainsFieldIsAbsentThenDomainsSettingsHasEmptyDomains() = runTest {
133-
feature.self().setRawStoredState(
134-
Toggle.State(
135-
remoteEnableState = true,
136-
settings = """{"version": "1.0", "scriptlets": {}}""",
137-
),
138-
)
139-
provider.onPrivacyConfigDownloaded()
140-
141-
assertEquals(emptyList<Domain>(), provider.domainsSettings.value?.domains)
142-
}
143-
144112
@Test
145113
fun whenSettingsAreValidAtConstructionThenScriptletsSettingsEmitsInitialValue() = runTest {
146114
feature.self().setRawStoredState(Toggle.State(remoteEnableState = true, settings = validSettingsJson))

0 commit comments

Comments
 (0)