Bug 1900928 - Disable suggest reingestion. r=lina,android-reviewers,jonalmeida

- Don't schedule WorkManager task and cancel any in-progress tasks
- Make FxSuggestIngestionWorker.doWork a no-op.  This will make it so
  any previously scheduled tasks that run at startup don't do anything.
- Remove the secret debug menu item for this, since it will no longer
  have any effect.

Differential Revision: https://phabricator.services.mozilla.com/D212758
This commit is contained in:
Ben Dean-Kawamura 2024-06-06 18:40:56 +00:00
parent 44623f25b8
commit 1c11f7e473
5 changed files with 17 additions and 56 deletions

View file

@ -22,16 +22,10 @@ internal class FxSuggestIngestionWorker(
private val logger = Logger("FxSuggestIngestionWorker")
override suspend fun doWork(): Result {
logger.info("Ingesting new suggestions")
val storage = GlobalFxSuggestDependencyProvider.requireStorage()
val success = storage.ingest()
return if (success) {
logger.info("Successfully ingested new suggestions")
Result.success()
} else {
logger.error("Failed to ingest new suggestions")
Result.retry()
}
// Disable periodic ingestion until we figure out
// https://bugzilla.mozilla.org/show_bug.cgi?id=1900837
logger.info("Skipping ingesting new suggestions")
return Result.success()
}
internal companion object {

View file

@ -18,6 +18,7 @@ import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.never
import org.mockito.Mockito.verify
@RunWith(AndroidJUnit4::class)
@ -43,19 +44,9 @@ class FxSuggestIngestionWorkerTest {
val result = worker.startWork().await()
verify(storage).ingest(any())
// Ingestion is disabled until we figure out
// https://bugzilla.mozilla.org/show_bug.cgi?id=1900837
verify(storage, never()).ingest(any())
assertEquals(ListenableWorker.Result.success(), result)
}
@Test
fun workShouldRetry() = runTest {
whenever(storage.ingest(any())).thenReturn(false)
val worker = TestListenableWorkerBuilder<FxSuggestIngestionWorker>(testContext).build()
val result = worker.startWork().await()
verify(storage).ingest(any())
assertEquals(ListenableWorker.Result.retry(), result)
}
}

View file

@ -380,11 +380,15 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
// new search suggestions. The worker requires us to have called
// `GlobalFxSuggestDependencyProvider.initialize`, which we did before
// scheduling these tasks. When disabled we stop the periodic work.
if (settings().enableFxSuggest) {
components.fxSuggest.ingestionScheduler.startPeriodicIngestion()
} else {
components.fxSuggest.ingestionScheduler.stopPeriodicIngestion()
}
// Disable periodic ingestion until we figure out
// https://bugzilla.mozilla.org/show_bug.cgi?id=1900837
//
// Note: we will still ingest once for a fresh DB because of
// the `runStartupIngestion()` call below. This should be okay, the
// performance issues only happen when reingesting after a successful
// initial ingestion.
components.fxSuggest.ingestionScheduler.stopPeriodicIngestion()
}
components.core.fileUploadsDirCleaner.cleanUploadsDirectory()
}

View file

@ -5,7 +5,6 @@
package org.mozilla.fenix.settings
import android.os.Bundle
import androidx.core.content.edit
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.preference.EditTextPreference
@ -16,7 +15,6 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import org.mozilla.fenix.BuildConfig
import org.mozilla.fenix.Config
import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.R
import org.mozilla.fenix.debugsettings.data.DefaultDebugSettingsRepository
import org.mozilla.fenix.ext.components
@ -82,27 +80,6 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
onPreferenceChangeListener = SharedPreferenceUpdater()
}
requirePreference<SwitchPreference>(R.string.pref_key_enable_fxsuggest).apply {
isVisible = FeatureFlags.fxSuggest
isChecked = context.settings().enableFxSuggest
onPreferenceChangeListener = object : Preference.OnPreferenceChangeListener {
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
val newBooleanValue = newValue as? Boolean ?: return false
val ingestionScheduler =
requireContext().components.fxSuggest.ingestionScheduler
if (newBooleanValue) {
ingestionScheduler.startPeriodicIngestion()
} else {
ingestionScheduler.stopPeriodicIngestion()
}
requireContext().settings().preferences.edit {
putBoolean(preference.key, newBooleanValue)
}
return true
}
}
}
requirePreference<SwitchPreference>(R.string.pref_key_should_enable_felt_privacy).apply {
isVisible = true
isChecked = context.settings().feltPrivateBrowsingEnabled

View file

@ -35,11 +35,6 @@
android:key="@string/pref_key_toolbar_use_redesign_incomplete"
android:title="@string/preferences_debug_settings_toolbar_redesign"
app:iconSpaceReserved="false" />
<SwitchPreference
android:defaultValue="false"
android:key="@string/pref_key_enable_fxsuggest"
android:title="@string/preferences_debug_settings_fxsuggest"
app:iconSpaceReserved="false" />
<SwitchPreference
android:key="@string/pref_key_should_enable_felt_privacy"
app:iconSpaceReserved="false"