Skip to content

Commit

Permalink
Fix failing privacy tests (#5010)
Browse files Browse the repository at this point in the history
Task/Issue URL:
https://app.asana.com/0/1202552961248957/1208263793923549/f

### Description

### Steps to test this PR

_Feature 1_
- [ ]
- [ ]

### UI changes
| Before  | After |
| ------ | ----- |
!(Upload before screenshot)|(Upload after screenshot)|
  • Loading branch information
CrisBarreiro authored and joshliebe committed Sep 13, 2024
1 parent e088309 commit ab3f4e2
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4828,7 +4828,7 @@ class BrowserTabViewModelTest {
"webShare",
"myId",
JSONObject("""{ "my":"object"}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.WebShareRequest> {
assertEquals("object", this.data.params.getString("my"))
Expand All @@ -4848,7 +4848,7 @@ class BrowserTabViewModelTest {
"permissionsQuery",
"myId",
JSONObject("""{ "name":"somePermission"}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToJs> {
assertEquals("granted", this.data.params.getString("state"))
Expand All @@ -4866,7 +4866,7 @@ class BrowserTabViewModelTest {
"screenLock",
"myId",
JSONObject("""{ "my":"object"}"""),
"someUrl",
{ "someUrl" },
)
assertCommandNotIssued<Command.ScreenLock>()
}
Expand All @@ -4879,7 +4879,7 @@ class BrowserTabViewModelTest {
"screenLock",
"myId",
JSONObject("""{ "my":"object"}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.ScreenLock> {
assertEquals("object", this.data.params.getString("my"))
Expand All @@ -4897,7 +4897,7 @@ class BrowserTabViewModelTest {
"screenUnlock",
"myId",
JSONObject("""{ "my":"object"}"""),
"someUrl",
{ "someUrl" },
)
assertCommandNotIssued<Command.ScreenUnlock>()
}
Expand All @@ -4910,7 +4910,7 @@ class BrowserTabViewModelTest {
"screenUnlock",
"myId",
JSONObject("""{ "my":"object"}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.ScreenUnlock>()
}
Expand All @@ -4924,7 +4924,7 @@ class BrowserTabViewModelTest {
"getUserValues",
"id",
data = null,
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToJs>()
}
Expand All @@ -4938,7 +4938,7 @@ class BrowserTabViewModelTest {
"setUserValues",
"id",
JSONObject("""{ overlayInteracted: "true", privatePlayerMode: {disabled: {} }}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToJs>()
verify(mockDuckPlayer).setUserPreferences(any(), any())
Expand All @@ -4954,7 +4954,7 @@ class BrowserTabViewModelTest {
"setUserValues",
"id",
JSONObject("""{ overlayInteracted: "true", privatePlayerMode: {enabled: {} }}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToJs>()
verify(mockDuckPlayer).setUserPreferences(any(), any())
Expand All @@ -4970,7 +4970,7 @@ class BrowserTabViewModelTest {
"setUserValues",
"id",
JSONObject("""{ overlayInteracted: "true", privatePlayerMode: {enabled: {} }}"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToDuckPlayer>()
verify(mockDuckPlayer).setUserPreferences(true, "enabled")
Expand All @@ -4986,7 +4986,7 @@ class BrowserTabViewModelTest {
"sendDuckPlayerPixel",
"id",
JSONObject("""{ pixelName: "pixel", params: {}}"""),
"someUrl",
{ "someUrl" },
)
verify(mockDuckPlayer).sendDuckPlayerPixel("pixel", mapOf())
}
Expand All @@ -5000,7 +5000,7 @@ class BrowserTabViewModelTest {
"openDuckPlayer",
"id",
JSONObject("""{ href: "duck://player/1234" }"""),
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Navigate>()
}
Expand All @@ -5014,7 +5014,7 @@ class BrowserTabViewModelTest {
"openDuckPlayer",
"id",
null,
"someUrl",
{ "someUrl" },
)
assertCommandNotIssued<Navigate>()
}
Expand All @@ -5028,7 +5028,7 @@ class BrowserTabViewModelTest {
"initialSetup",
"id",
null,
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToJs>()
}
Expand All @@ -5042,7 +5042,7 @@ class BrowserTabViewModelTest {
"initialSetup",
"id",
null,
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.SendResponseToDuckPlayer>()
}
Expand All @@ -5055,7 +5055,7 @@ class BrowserTabViewModelTest {
"openSettings",
"id",
null,
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.OpenDuckPlayerSettings>()
}
Expand All @@ -5070,7 +5070,7 @@ class BrowserTabViewModelTest {
"openInfo",
"id",
null,
"someUrl",
{ "someUrl" },
)
assertCommandIssued<Command.OpenDuckPlayerPageInfo>()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2429,7 +2429,9 @@ class BrowserTabFragment :
id: String?,
data: JSONObject?,
) {
viewModel.processJsCallbackMessage(featureName, method, id, data, it.url)
viewModel.processJsCallbackMessage(featureName, method, id, data) {
it.url
}
}
},
)
Expand All @@ -2442,7 +2444,9 @@ class BrowserTabFragment :
id: String?,
data: JSONObject?,
) {
viewModel.processJsCallbackMessage(featureName, method, id, data, it.url)
viewModel.processJsCallbackMessage(featureName, method, id, data) {
it.url
}
}
},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3172,7 +3172,7 @@ class BrowserTabViewModel @Inject constructor(
method: String,
id: String?,
data: JSONObject?,
url: String?,
getWebViewUrl: () -> String?,
) {
when (method) {
"webShare" -> if (id != null && data != null) {
Expand Down Expand Up @@ -3201,7 +3201,8 @@ class BrowserTabViewModel @Inject constructor(
when (featureName) {
DUCK_PLAYER_FEATURE_NAME, DUCK_PLAYER_PAGE_FEATURE_NAME -> {
viewModelScope.launch(dispatchers.io()) {
val response = duckPlayerJSHelper.processJsCallbackMessage(featureName, method, id, data, url)
val webViewUrl = withContext(dispatchers.main()) { getWebViewUrl() }
val response = duckPlayerJSHelper.processJsCallbackMessage(featureName, method, id, data, webViewUrl)
withContext(dispatchers.main()) {
response?.let {
command.value = it
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ class SharedPreferencesDuckPlayerDataStore @Inject constructor(
private val duckPlayerRC: Flow<String>
get() = store.data
.map { prefs ->
prefs[DUCK_PLAYER_RC] ?: ""
prefs[DUCK_PLAYER_RC] ?: "{}"
}
.distinctUntilChanged()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
package com.duckduckgo.duckplayer.impl

import com.duckduckgo.app.di.AppCoroutineScope
import com.duckduckgo.app.di.IsMainProcess
import com.duckduckgo.common.utils.DispatcherProvider
import com.duckduckgo.di.scopes.AppScope
import com.duckduckgo.duckplayer.api.DuckPlayer.UserPreferences
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.AlwaysAsk
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.Disabled
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.Enabled
import com.squareup.anvil.annotations.ContributesBinding
import dagger.SingleInstanceIn
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
Expand Down Expand Up @@ -68,17 +70,21 @@ interface DuckPlayerFeatureRepository {
suspend fun setUserOnboarded()
}

@SingleInstanceIn(AppScope::class)
@ContributesBinding(AppScope::class)
class RealDuckPlayerFeatureRepository @Inject constructor(
private val duckPlayerDataStore: DuckPlayerDataStore,
@AppCoroutineScope private val appCoroutineScope: CoroutineScope,
private val dispatcherProvider: DispatcherProvider,
@IsMainProcess isMainProcess: Boolean,
) : DuckPlayerFeatureRepository {

private var duckPlayerRC = ""
private var duckPlayerRC = "{}"

init {
loadToMemory()
if (isMainProcess) {
loadToMemory()
}
}

private fun loadToMemory() {
Expand Down

0 comments on commit ab3f4e2

Please sign in to comment.