mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-15 18:12:54 +00:00
Close #26948: Enable custom extension collections in Beta.
Similar to how Nightly functions, custom extension collections are enabled to be used in Firefox Beta as well.
This commit is contained in:
parent
90fb56a251
commit
f9efa5e8bb
@ -12,6 +12,14 @@ import mozilla.components.support.locale.LocaleManager.getSystemDefault
|
|||||||
* A single source for setting feature flags that are mostly based on build type.
|
* A single source for setting feature flags that are mostly based on build type.
|
||||||
*/
|
*/
|
||||||
object FeatureFlags {
|
object FeatureFlags {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables custom extension collection feature,
|
||||||
|
* This feature does not only depend on this flag. It requires the AMO collection override to
|
||||||
|
* be enabled which is behind the Secret Settings.
|
||||||
|
* */
|
||||||
|
val customExtensionCollectionFeature = Config.channel.isNightlyOrDebug || Config.channel.isBeta
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pull-to-refresh allows you to pull the web content down far enough to have the page to
|
* Pull-to-refresh allows you to pull the web content down far enough to have the page to
|
||||||
* reload.
|
* reload.
|
||||||
|
@ -22,6 +22,7 @@ import mozilla.components.lib.publicsuffixlist.PublicSuffixList
|
|||||||
import mozilla.components.support.base.worker.Frequency
|
import mozilla.components.support.base.worker.Frequency
|
||||||
import org.mozilla.fenix.BuildConfig
|
import org.mozilla.fenix.BuildConfig
|
||||||
import org.mozilla.fenix.Config
|
import org.mozilla.fenix.Config
|
||||||
|
import org.mozilla.fenix.FeatureFlags
|
||||||
import org.mozilla.fenix.HomeActivity
|
import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.autofill.AutofillConfirmActivity
|
import org.mozilla.fenix.autofill.AutofillConfirmActivity
|
||||||
@ -105,8 +106,8 @@ class Components(private val context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val addonCollectionProvider by lazyMonitored {
|
val addonCollectionProvider by lazyMonitored {
|
||||||
// Check if we have a customized (overridden) AMO collection (only supported in Nightly)
|
// Check if we have a customized (overridden) AMO collection (supported in Nightly & Beta)
|
||||||
if (Config.channel.isNightlyOrDebug && context.settings().amoCollectionOverrideConfigured()) {
|
if (FeatureFlags.customExtensionCollectionFeature && context.settings().amoCollectionOverrideConfigured()) {
|
||||||
AddonCollectionProvider(
|
AddonCollectionProvider(
|
||||||
context,
|
context,
|
||||||
core.client,
|
core.client,
|
||||||
|
@ -38,6 +38,7 @@ import mozilla.components.service.glean.private.NoExtras
|
|||||||
import mozilla.components.support.ktx.android.view.showKeyboard
|
import mozilla.components.support.ktx.android.view.showKeyboard
|
||||||
import org.mozilla.fenix.BrowserDirection
|
import org.mozilla.fenix.BrowserDirection
|
||||||
import org.mozilla.fenix.Config
|
import org.mozilla.fenix.Config
|
||||||
|
import org.mozilla.fenix.FeatureFlags
|
||||||
import org.mozilla.fenix.GleanMetrics.Addons
|
import org.mozilla.fenix.GleanMetrics.Addons
|
||||||
import org.mozilla.fenix.GleanMetrics.Events
|
import org.mozilla.fenix.GleanMetrics.Events
|
||||||
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
||||||
@ -522,7 +523,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||||||
findPreference<Preference>(getPreferenceKey(R.string.pref_key_override_amo_collection))
|
findPreference<Preference>(getPreferenceKey(R.string.pref_key_override_amo_collection))
|
||||||
|
|
||||||
val show = (
|
val show = (
|
||||||
Config.channel.isNightlyOrDebug && (
|
FeatureFlags.customExtensionCollectionFeature && (
|
||||||
settings.amoCollectionOverrideConfigured() || settings.showSecretDebugMenuThisSession
|
settings.amoCollectionOverrideConfigured() || settings.showSecretDebugMenuThisSession
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -9,11 +9,13 @@ import androidx.preference.Preference
|
|||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import io.mockk.mockkObject
|
import io.mockk.mockkObject
|
||||||
|
import io.mockk.unmockkObject
|
||||||
import kotlinx.coroutines.test.advanceUntilIdle
|
import kotlinx.coroutines.test.advanceUntilIdle
|
||||||
import mozilla.components.concept.fetch.Client
|
import mozilla.components.concept.fetch.Client
|
||||||
import mozilla.components.support.test.robolectric.testContext
|
import mozilla.components.support.test.robolectric.testContext
|
||||||
import mozilla.components.support.test.rule.MainCoroutineRule
|
import mozilla.components.support.test.rule.MainCoroutineRule
|
||||||
import mozilla.components.support.test.rule.runTestOnMain
|
import mozilla.components.support.test.rule.runTestOnMain
|
||||||
|
import org.junit.After
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Assert.assertFalse
|
import org.junit.Assert.assertFalse
|
||||||
import org.junit.Assert.assertNotNull
|
import org.junit.Assert.assertNotNull
|
||||||
@ -22,9 +24,8 @@ import org.junit.Before
|
|||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mozilla.fenix.Config
|
import org.mozilla.fenix.FeatureFlags
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ReleaseChannel
|
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.getPreferenceKey
|
import org.mozilla.fenix.ext.getPreferenceKey
|
||||||
import org.mozilla.fenix.ext.settings
|
import org.mozilla.fenix.ext.settings
|
||||||
@ -51,8 +52,8 @@ class SettingsFragmentTest {
|
|||||||
every { testContext.components.settings } returns mockk(relaxed = true)
|
every { testContext.components.settings } returns mockk(relaxed = true)
|
||||||
every { testContext.components.analytics } returns mockk(relaxed = true)
|
every { testContext.components.analytics } returns mockk(relaxed = true)
|
||||||
every { testContext.components.backgroundServices } returns mockk(relaxed = true)
|
every { testContext.components.backgroundServices } returns mockk(relaxed = true)
|
||||||
mockkObject(Config)
|
|
||||||
every { Config.channel } returns ReleaseChannel.Nightly
|
mockkObject(FeatureFlags)
|
||||||
|
|
||||||
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
||||||
activity.supportFragmentManager.beginTransaction()
|
activity.supportFragmentManager.beginTransaction()
|
||||||
@ -61,7 +62,7 @@ class SettingsFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Add-on collection override pref is visible if debug menu active`() = runTestOnMain {
|
fun `Add-on collection override pref is visible if debug menu active and feature is enabled`() = runTestOnMain {
|
||||||
val settingsFragment = SettingsFragment()
|
val settingsFragment = SettingsFragment()
|
||||||
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
||||||
|
|
||||||
@ -71,6 +72,8 @@ class SettingsFragmentTest {
|
|||||||
|
|
||||||
advanceUntilIdle()
|
advanceUntilIdle()
|
||||||
|
|
||||||
|
every { FeatureFlags.customExtensionCollectionFeature } returns true
|
||||||
|
|
||||||
val preferenceAmoCollectionOverride = settingsFragment.findPreference<Preference>(
|
val preferenceAmoCollectionOverride = settingsFragment.findPreference<Preference>(
|
||||||
settingsFragment.getPreferenceKey(R.string.pref_key_override_amo_collection),
|
settingsFragment.getPreferenceKey(R.string.pref_key_override_amo_collection),
|
||||||
)
|
)
|
||||||
@ -86,7 +89,7 @@ class SettingsFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `Add-on collection override pref is visible if already configured`() = runTestOnMain {
|
fun `Add-on collection override pref is visible if already configured and feature is enabled`() = runTestOnMain {
|
||||||
val settingsFragment = SettingsFragment()
|
val settingsFragment = SettingsFragment()
|
||||||
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
||||||
|
|
||||||
@ -96,6 +99,8 @@ class SettingsFragmentTest {
|
|||||||
|
|
||||||
advanceUntilIdle()
|
advanceUntilIdle()
|
||||||
|
|
||||||
|
every { FeatureFlags.customExtensionCollectionFeature } returns true
|
||||||
|
|
||||||
val preferenceAmoCollectionOverride = settingsFragment.findPreference<Preference>(
|
val preferenceAmoCollectionOverride = settingsFragment.findPreference<Preference>(
|
||||||
settingsFragment.getPreferenceKey(R.string.pref_key_override_amo_collection),
|
settingsFragment.getPreferenceKey(R.string.pref_key_override_amo_collection),
|
||||||
)
|
)
|
||||||
@ -116,6 +121,34 @@ class SettingsFragmentTest {
|
|||||||
assertTrue(preferenceAmoCollectionOverride.isVisible)
|
assertTrue(preferenceAmoCollectionOverride.isVisible)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Add-on collection override pref is not visible if feature is disabled`() = runTestOnMain {
|
||||||
|
val settingsFragment = SettingsFragment()
|
||||||
|
val activity = Robolectric.buildActivity(FragmentActivity::class.java).create().get()
|
||||||
|
|
||||||
|
activity.supportFragmentManager.beginTransaction()
|
||||||
|
.add(settingsFragment, "test")
|
||||||
|
.commitNow()
|
||||||
|
|
||||||
|
advanceUntilIdle()
|
||||||
|
|
||||||
|
every { FeatureFlags.customExtensionCollectionFeature } returns false
|
||||||
|
|
||||||
|
val preferenceAmoCollectionOverride = settingsFragment.findPreference<Preference>(
|
||||||
|
settingsFragment.getPreferenceKey(R.string.pref_key_override_amo_collection),
|
||||||
|
)
|
||||||
|
|
||||||
|
val settings: Settings = mockk(relaxed = true)
|
||||||
|
settingsFragment.setupAmoCollectionOverridePreference(settings)
|
||||||
|
assertNotNull(preferenceAmoCollectionOverride)
|
||||||
|
assertFalse(preferenceAmoCollectionOverride!!.isVisible)
|
||||||
|
|
||||||
|
every { settings.showSecretDebugMenuThisSession } returns true
|
||||||
|
every { settings.amoCollectionOverrideConfigured() } returns true
|
||||||
|
settingsFragment.setupAmoCollectionOverridePreference(settings)
|
||||||
|
assertFalse(preferenceAmoCollectionOverride.isVisible)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `GIVEN the HttpsOnly is enabled THEN set the appropriate preference summary`() {
|
fun `GIVEN the HttpsOnly is enabled THEN set the appropriate preference summary`() {
|
||||||
val httpsOnlyPreference = settingsFragment.findPreference<Preference>(
|
val httpsOnlyPreference = settingsFragment.findPreference<Preference>(
|
||||||
@ -143,4 +176,9 @@ class SettingsFragmentTest {
|
|||||||
|
|
||||||
assertEquals(summary, httpsOnlyPreference.summary)
|
assertEquals(summary, httpsOnlyPreference.summary)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
fun tearDown() {
|
||||||
|
unmockkObject(FeatureFlags)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user