Bug 1813788 - Split deleting site data from browsing history

fenix/118.0
iTrooz 1 year ago committed by mergify[bot]
parent 8a77e2bc41
commit 4ebf1e1614

@ -120,7 +120,35 @@ class ComposeSettingsDeleteBrowsingDataOnQuitTest {
} }
@Test @Test
fun deleteHistoryAndSiteStorageOnQuitTest() { fun deleteHistoryOnQuitTest() {
val genericPage =
getStorageTestAsset(mockWebServer, "generic1.html")
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
navigationToolbar {
}.enterURLAndEnterToBrowser(genericPage.url) {
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
restartApp(composeTestRule.activityRule)
}
homeScreen {
}.openThreeDotMenu {
}.openHistory {
verifyEmptyHistoryView()
exitMenu()
}
}
@Test
fun deleteCookiesAndSiteDataOnQuitTest() {
val storageWritePage = val storageWritePage =
getStorageTestAsset(mockWebServer, "storage_write.html") getStorageTestAsset(mockWebServer, "storage_write.html")
val storageCheckPage = val storageCheckPage =
@ -143,12 +171,6 @@ class ComposeSettingsDeleteBrowsingDataOnQuitTest {
restartApp(composeTestRule.activityRule) restartApp(composeTestRule.activityRule)
} }
homeScreen {
}.openThreeDotMenu {
}.openHistory {
verifyEmptyHistoryView()
exitMenu()
}
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage.url) { }.enterURLAndEnterToBrowser(storageCheckPage.url) {
verifyPageContent("Session storage empty") verifyPageContent("Session storage empty")

@ -167,20 +167,15 @@ class ComposeSettingsDeleteBrowsingDataTest {
@SmokeTest @SmokeTest
@Test @Test
fun deleteBrowsingHistoryAndSiteDataTest() { fun deleteBrowsingHistoryTest() {
val storageWritePage = getStorageTestAsset(mockWebServer, "storage_write.html").url val genericPage = getStorageTestAsset(mockWebServer, "generic1.html").url
val storageCheckPage = getStorageTestAsset(mockWebServer, "storage_check.html").url
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(storageWritePage) { }.enterURLAndEnterToBrowser(genericPage) {
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage) {
verifyPageContent("Session storage has value")
verifyPageContent("Local storage has value")
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openSettingsSubMenuDeleteBrowsingData { }.openSettingsSubMenuDeleteBrowsingData {
verifyBrowsingHistoryDetails("2") verifyBrowsingHistoryDetails("1")
selectOnlyBrowsingHistoryCheckBox() selectOnlyBrowsingHistoryCheckBox()
clickDeleteBrowsingDataButton() clickDeleteBrowsingDataButton()
verifyDeleteBrowsingDataDialog() verifyDeleteBrowsingDataDialog()
@ -198,27 +193,27 @@ class ComposeSettingsDeleteBrowsingDataTest {
verifyEmptyHistoryView() verifyEmptyHistoryView()
mDevice.pressBack() mDevice.pressBack()
} }
navigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage) {
verifyPageContent("Session storage empty")
verifyPageContent("Local storage empty")
}
} }
@SmokeTest @SmokeTest
@Test @Test
fun deleteCookiesTest() { fun deleteCookiesAndSiteDataTest() {
val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
val cookiesTestPage = getStorageTestAsset(mockWebServer, "storage_write.html").url val storageWritePage = getStorageTestAsset(mockWebServer, "storage_write.html").url
val storageCheckPage = getStorageTestAsset(mockWebServer, "storage_check.html").url
// Browsing a generic page to allow GV to load on a fresh run // Browsing a generic page to allow GV to load on a fresh run
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(genericPage.url) { }.enterURLAndEnterToBrowser(genericPage.url) {
}.openNavigationToolbar { }.openNavigationToolbar {
}.enterURLAndEnterToBrowser(cookiesTestPage) { }.enterURLAndEnterToBrowser(storageWritePage) {
verifyPageContent("No cookies set") verifyPageContent("No cookies set")
clickPageObject(itemWithResId("setCookies")) clickPageObject(itemWithResId("setCookies"))
verifyPageContent("user=android") verifyPageContent("user=android")
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage) {
verifyPageContent("Session storage has value")
verifyPageContent("Local storage has value")
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openSettingsSubMenuDeleteBrowsingData { }.openSettingsSubMenuDeleteBrowsingData {
@ -228,9 +223,12 @@ class ComposeSettingsDeleteBrowsingDataTest {
confirmDeletionAndAssertSnackbar() confirmDeletionAndAssertSnackbar()
exitMenu() exitMenu()
} }
browserScreen { navigationToolbar {
}.openThreeDotMenu { }.enterURLAndEnterToBrowser(storageCheckPage) {
}.refreshPage { verifyPageContent("Session storage empty")
verifyPageContent("Local storage empty")
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageWritePage) {
verifyPageContent("No cookies set") verifyPageContent("No cookies set")
} }
} }

@ -113,7 +113,35 @@ class SettingsDeleteBrowsingDataOnQuitTest {
} }
@Test @Test
fun deleteHistoryAndSiteStorageOnQuitTest() { fun deleteHistoryOnQuitTest() {
val genericPage =
getStorageTestAsset(mockWebServer, "generic1.html")
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
navigationToolbar {
}.enterURLAndEnterToBrowser(genericPage.url) {
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
restartApp(activityTestRule)
}
homeScreen {
}.openThreeDotMenu {
}.openHistory {
verifyEmptyHistoryView()
exitMenu()
}
}
@Test
fun deleteCookiesAndSiteDataOnQuitTest() {
val storageWritePage = val storageWritePage =
getStorageTestAsset(mockWebServer, "storage_write.html") getStorageTestAsset(mockWebServer, "storage_write.html")
val storageCheckPage = val storageCheckPage =
@ -136,12 +164,6 @@ class SettingsDeleteBrowsingDataOnQuitTest {
restartApp(activityTestRule) restartApp(activityTestRule)
} }
homeScreen {
}.openThreeDotMenu {
}.openHistory {
verifyEmptyHistoryView()
exitMenu()
}
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage.url) { }.enterURLAndEnterToBrowser(storageCheckPage.url) {
verifyPageContent("Session storage empty") verifyPageContent("Session storage empty")

@ -160,20 +160,15 @@ class SettingsDeleteBrowsingDataTest {
@SmokeTest @SmokeTest
@Test @Test
fun deleteBrowsingHistoryAndSiteDataTest() { fun deleteBrowsingHistoryTest() {
val storageWritePage = getStorageTestAsset(mockWebServer, "storage_write.html").url val genericPage = getStorageTestAsset(mockWebServer, "generic1.html").url
val storageCheckPage = getStorageTestAsset(mockWebServer, "storage_check.html").url
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(storageWritePage) { }.enterURLAndEnterToBrowser(genericPage) {
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage) {
verifyPageContent("Session storage has value")
verifyPageContent("Local storage has value")
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openSettingsSubMenuDeleteBrowsingData { }.openSettingsSubMenuDeleteBrowsingData {
verifyBrowsingHistoryDetails("2") verifyBrowsingHistoryDetails("1")
selectOnlyBrowsingHistoryCheckBox() selectOnlyBrowsingHistoryCheckBox()
clickDeleteBrowsingDataButton() clickDeleteBrowsingDataButton()
verifyDeleteBrowsingDataDialog() verifyDeleteBrowsingDataDialog()
@ -191,27 +186,27 @@ class SettingsDeleteBrowsingDataTest {
verifyEmptyHistoryView() verifyEmptyHistoryView()
mDevice.pressBack() mDevice.pressBack()
} }
navigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage) {
verifyPageContent("Session storage empty")
verifyPageContent("Local storage empty")
}
} }
@SmokeTest @SmokeTest
@Test @Test
fun deleteCookiesTest() { fun deleteCookiesAndSiteDataTest() {
val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
val cookiesTestPage = getStorageTestAsset(mockWebServer, "storage_write.html").url val storageWritePage = getStorageTestAsset(mockWebServer, "storage_write.html").url
val storageCheckPage = getStorageTestAsset(mockWebServer, "storage_check.html").url
// Browsing a generic page to allow GV to load on a fresh run // Browsing a generic page to allow GV to load on a fresh run
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(genericPage.url) { }.enterURLAndEnterToBrowser(genericPage.url) {
}.openNavigationToolbar { }.openNavigationToolbar {
}.enterURLAndEnterToBrowser(cookiesTestPage) { }.enterURLAndEnterToBrowser(storageWritePage) {
verifyPageContent("No cookies set") verifyPageContent("No cookies set")
clickPageObject(itemWithResId("setCookies")) clickPageObject(itemWithResId("setCookies"))
verifyPageContent("user=android") verifyPageContent("user=android")
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage) {
verifyPageContent("Session storage has value")
verifyPageContent("Local storage has value")
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openSettingsSubMenuDeleteBrowsingData { }.openSettingsSubMenuDeleteBrowsingData {
@ -221,9 +216,12 @@ class SettingsDeleteBrowsingDataTest {
confirmDeletionAndAssertSnackbar() confirmDeletionAndAssertSnackbar()
exitMenu() exitMenu()
} }
browserScreen { navigationToolbar {
}.openThreeDotMenu { }.enterURLAndEnterToBrowser(storageCheckPage) {
}.refreshPage { verifyPageContent("Session storage empty")
verifyPageContent("Local storage empty")
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageWritePage) {
verifyPageContent("No cookies set") verifyPageContent("No cookies set")
} }
} }

@ -51,10 +51,10 @@ class SettingsSubMenuDeleteBrowsingDataOnQuitRobot {
openTabsCheckbox openTabsCheckbox
.check(matches(withEffectiveVisibility(Visibility.VISIBLE))) .check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
browsingDataCheckbox browsingHistoryCheckbox
.check(matches(withEffectiveVisibility(Visibility.VISIBLE))) .check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cookiesCheckbox cookiesAndSiteDataCheckbox
.check(matches(withEffectiveVisibility(Visibility.VISIBLE))) .check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
onView(withText(R.string.preferences_delete_browsing_data_cookies_subtitle)) onView(withText(R.string.preferences_delete_browsing_data_cookies_subtitle))
@ -107,10 +107,10 @@ private val deleteBrowsingOnQuitButton =
private val openTabsCheckbox = private val openTabsCheckbox =
onView(withText(R.string.preferences_delete_browsing_data_tabs_title_2)) onView(withText(R.string.preferences_delete_browsing_data_tabs_title_2))
private val browsingDataCheckbox = private val browsingHistoryCheckbox =
onView(withText(R.string.preferences_delete_browsing_data_browsing_data_title)) onView(withText(R.string.preferences_delete_browsing_data_browsing_history_title))
private val cookiesCheckbox = onView(withText(R.string.preferences_delete_browsing_data_cookies)) private val cookiesAndSiteDataCheckbox = onView(withText(R.string.preferences_delete_browsing_data_cookies_and_site_data))
private val cachedFilesCheckbox = private val cachedFilesCheckbox =
onView(withText(R.string.preferences_delete_browsing_data_cached_files)) onView(withText(R.string.preferences_delete_browsing_data_cached_files))

@ -183,15 +183,15 @@ private fun browsingHistorySubsection() =
private fun browsingHistoryDescription(addresses: String) = mDevice.findObject(UiSelector().textContains("$addresses addresses")) private fun browsingHistoryDescription(addresses: String) = mDevice.findObject(UiSelector().textContains("$addresses addresses"))
private fun browsingHistoryCheckBox() = private fun browsingHistoryCheckBox() =
onView(allOf(withId(R.id.checkbox), hasSibling(withText("Browsing history and site data")))) onView(allOf(withId(R.id.checkbox), hasSibling(withText("Browsing history"))))
private fun cookiesSubsection() = private fun cookiesSubsection() =
onView(withText(R.string.preferences_delete_browsing_data_cookies)) onView(withText(R.string.preferences_delete_browsing_data_cookies))
private fun cookiesDescription() = onView(withText(R.string.preferences_delete_browsing_data_cookies_subtitle)) private fun cookiesAndSiteDataDescription() = onView(withText(R.string.preferences_delete_browsing_data_cookies_subtitle))
private fun cookiesCheckBox() = private fun cookiesAndSiteDataCheckBox() =
onView(allOf(withId(R.id.checkbox), hasSibling(withText("Cookies")))) onView(allOf(withId(R.id.checkbox), hasSibling(withText("Cookies and site data"))))
private fun cachedFilesSubsection() = private fun cachedFilesSubsection() =
onView(withText(R.string.preferences_delete_browsing_data_cached_files)) onView(withText(R.string.preferences_delete_browsing_data_cached_files))
@ -226,8 +226,8 @@ private fun assertAllOptionsAndCheckBoxes() {
assertTrue(browsingHistoryDescription("0").waitForExists(waitingTime)) assertTrue(browsingHistoryDescription("0").waitForExists(waitingTime))
browsingHistoryCheckBox().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) browsingHistoryCheckBox().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cookiesSubsection().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) cookiesSubsection().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cookiesDescription().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) cookiesAndSiteDataDescription().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cookiesCheckBox().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) cookiesAndSiteDataCheckBox().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cachedFilesSubsection().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) cachedFilesSubsection().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cachedFilesDescription().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) cachedFilesDescription().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
cachedFilesCheckBox().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) cachedFilesCheckBox().check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
@ -240,7 +240,7 @@ private fun assertAllOptionsAndCheckBoxes() {
private fun assertAllCheckBoxesAreChecked() { private fun assertAllCheckBoxesAreChecked() {
openTabsCheckBox().assertIsChecked(true) openTabsCheckBox().assertIsChecked(true)
browsingHistoryCheckBox().assertIsChecked(true) browsingHistoryCheckBox().assertIsChecked(true)
cookiesCheckBox().assertIsChecked(true) cookiesAndSiteDataCheckBox().assertIsChecked(true)
cachedFilesCheckBox().assertIsChecked(true) cachedFilesCheckBox().assertIsChecked(true)
sitePermissionsCheckBox().assertIsChecked(true) sitePermissionsCheckBox().assertIsChecked(true)
downloadsCheckBox().assertIsChecked(true) downloadsCheckBox().assertIsChecked(true)
@ -264,8 +264,8 @@ private fun clickOpenTabsCheckBox() = openTabsCheckBox().click()
private fun assertOpenTabsCheckBox(status: Boolean) = openTabsCheckBox().assertIsChecked(status) private fun assertOpenTabsCheckBox(status: Boolean) = openTabsCheckBox().assertIsChecked(status)
private fun clickBrowsingHistoryCheckBox() = browsingHistoryCheckBox().click() private fun clickBrowsingHistoryCheckBox() = browsingHistoryCheckBox().click()
private fun assertBrowsingHistoryCheckBox(status: Boolean) = browsingHistoryCheckBox().assertIsChecked(status) private fun assertBrowsingHistoryCheckBox(status: Boolean) = browsingHistoryCheckBox().assertIsChecked(status)
private fun clickCookiesCheckBox() = cookiesCheckBox().click() private fun clickCookiesCheckBox() = cookiesAndSiteDataCheckBox().click()
private fun assertCookiesCheckBox(status: Boolean) = cookiesCheckBox().assertIsChecked(status) private fun assertCookiesCheckBox(status: Boolean) = cookiesAndSiteDataCheckBox().assertIsChecked(status)
private fun clickCachedFilesCheckBox() = cachedFilesCheckBox().click() private fun clickCachedFilesCheckBox() = cachedFilesCheckBox().click()
private fun assertCachedFilesCheckBox(status: Boolean) = cachedFilesCheckBox().assertIsChecked(status) private fun assertCachedFilesCheckBox(status: Boolean) = cachedFilesCheckBox().assertIsChecked(status)
private fun clickSitePermissionsCheckBox() = sitePermissionsCheckBox().click() private fun clickSitePermissionsCheckBox() = sitePermissionsCheckBox().click()

@ -56,8 +56,8 @@ fun deleteAndQuit(activity: Activity, coroutineScope: CoroutineScope, snackbar:
private suspend fun DeleteBrowsingDataController.deleteType(type: DeleteBrowsingDataOnQuitType) { private suspend fun DeleteBrowsingDataController.deleteType(type: DeleteBrowsingDataOnQuitType) {
when (type) { when (type) {
DeleteBrowsingDataOnQuitType.TABS -> deleteTabs() DeleteBrowsingDataOnQuitType.TABS -> deleteTabs()
DeleteBrowsingDataOnQuitType.HISTORY -> deleteBrowsingData() DeleteBrowsingDataOnQuitType.HISTORY -> deleteBrowsingHistory()
DeleteBrowsingDataOnQuitType.COOKIES -> deleteCookies() DeleteBrowsingDataOnQuitType.COOKIES -> deleteCookiesAndSiteData()
DeleteBrowsingDataOnQuitType.CACHE -> deleteCachedFiles() DeleteBrowsingDataOnQuitType.CACHE -> deleteCachedFiles()
DeleteBrowsingDataOnQuitType.PERMISSIONS -> withContext(IO) { DeleteBrowsingDataOnQuitType.PERMISSIONS -> withContext(IO) {
deleteSitePermissions() deleteSitePermissions()

@ -19,8 +19,8 @@ import kotlin.coroutines.CoroutineContext
interface DeleteBrowsingDataController { interface DeleteBrowsingDataController {
suspend fun deleteTabs() suspend fun deleteTabs()
suspend fun deleteBrowsingData() suspend fun deleteBrowsingHistory()
suspend fun deleteCookies() suspend fun deleteCookiesAndSiteData()
suspend fun deleteCachedFiles() suspend fun deleteCachedFiles()
suspend fun deleteSitePermissions() suspend fun deleteSitePermissions()
suspend fun deleteDownloads() suspend fun deleteDownloads()
@ -44,9 +44,8 @@ class DefaultDeleteBrowsingDataController(
} }
} }
override suspend fun deleteBrowsingData() { override suspend fun deleteBrowsingHistory() {
withContext(coroutineContext) { withContext(coroutineContext) {
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
historyStorage.deleteEverything() historyStorage.deleteEverything()
store.dispatch(EngineAction.PurgeHistoryAction) store.dispatch(EngineAction.PurgeHistoryAction)
iconsStorage.clear() iconsStorage.clear()
@ -54,7 +53,7 @@ class DefaultDeleteBrowsingDataController(
} }
} }
override suspend fun deleteCookies() { override suspend fun deleteCookiesAndSiteData() {
withContext(coroutineContext) { withContext(coroutineContext) {
engine.clearData( engine.clearData(
Engine.BrowsingData.select( Engine.BrowsingData.select(
@ -62,6 +61,7 @@ class DefaultDeleteBrowsingDataController(
Engine.BrowsingData.AUTH_SESSIONS, Engine.BrowsingData.AUTH_SESSIONS,
), ),
) )
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
} }
} }

@ -67,8 +67,8 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
getCheckboxes().iterator().forEach { getCheckboxes().iterator().forEach {
it.isChecked = when (it.id) { it.isChecked = when (it.id) {
R.id.open_tabs_item -> settings.deleteOpenTabs R.id.open_tabs_item -> settings.deleteOpenTabs
R.id.browsing_data_item -> settings.deleteBrowsingHistory R.id.browsing_history_item -> settings.deleteBrowsingHistory
R.id.cookies_item -> settings.deleteCookies R.id.cookies_and_site_data_item -> settings.deleteCookies
R.id.cached_files_item -> settings.deleteCache R.id.cached_files_item -> settings.deleteCache
R.id.site_permissions_item -> settings.deleteSitePermissions R.id.site_permissions_item -> settings.deleteSitePermissions
R.id.downloads_item -> settings.deleteDownloads R.id.downloads_item -> settings.deleteDownloads
@ -85,8 +85,8 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
private fun updatePreference(it: DeleteBrowsingDataItem) { private fun updatePreference(it: DeleteBrowsingDataItem) {
when (it.id) { when (it.id) {
R.id.open_tabs_item -> settings.deleteOpenTabs = it.isChecked R.id.open_tabs_item -> settings.deleteOpenTabs = it.isChecked
R.id.browsing_data_item -> settings.deleteBrowsingHistory = it.isChecked R.id.browsing_history_item -> settings.deleteBrowsingHistory = it.isChecked
R.id.cookies_item -> settings.deleteCookies = it.isChecked R.id.cookies_and_site_data_item -> settings.deleteCookies = it.isChecked
R.id.cached_files_item -> settings.deleteCache = it.isChecked R.id.cached_files_item -> settings.deleteCache = it.isChecked
R.id.site_permissions_item -> settings.deleteSitePermissions = it.isChecked R.id.site_permissions_item -> settings.deleteSitePermissions = it.isChecked
R.id.downloads_item -> settings.deleteDownloads = it.isChecked R.id.downloads_item -> settings.deleteDownloads = it.isChecked
@ -163,8 +163,8 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
if (v.isChecked) { if (v.isChecked) {
when (i) { when (i) {
OPEN_TABS_INDEX -> controller.deleteTabs() OPEN_TABS_INDEX -> controller.deleteTabs()
HISTORY_INDEX -> controller.deleteBrowsingData() HISTORY_INDEX -> controller.deleteBrowsingHistory()
COOKIES_INDEX -> controller.deleteCookies() COOKIES_INDEX -> controller.deleteCookiesAndSiteData()
CACHED_INDEX -> controller.deleteCachedFiles() CACHED_INDEX -> controller.deleteCachedFiles()
PERMS_INDEX -> controller.deleteSitePermissions() PERMS_INDEX -> controller.deleteSitePermissions()
DOWNLOADS_INDEX -> controller.deleteDownloads() DOWNLOADS_INDEX -> controller.deleteDownloads()
@ -251,12 +251,12 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
} }
private fun updateHistoryCount() { private fun updateHistoryCount() {
binding.browsingDataItem.subtitleView.text = "" binding.browsingHistoryItem.subtitleView.text = ""
viewLifecycleOwner.lifecycleScope.launch(IO) { viewLifecycleOwner.lifecycleScope.launch(IO) {
val historyCount = requireComponents.core.historyStorage.getVisited().size val historyCount = requireComponents.core.historyStorage.getVisited().size
launch(Main) { launch(Main) {
binding.browsingDataItem.apply { binding.browsingHistoryItem.apply {
subtitleView.text = subtitleView.text =
resources.getString( resources.getString(
R.string.preferences_delete_browsing_data_browsing_data_subtitle, R.string.preferences_delete_browsing_data_browsing_data_subtitle,
@ -282,8 +282,8 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
private fun getCheckboxes(): List<DeleteBrowsingDataItem> { private fun getCheckboxes(): List<DeleteBrowsingDataItem> {
return listOf( return listOf(
binding.openTabsItem, binding.openTabsItem,
binding.browsingDataItem, binding.browsingHistoryItem,
binding.cookiesItem, binding.cookiesAndSiteDataItem,
binding.cachedFilesItem, binding.cachedFilesItem,
binding.sitePermissionsItem, binding.sitePermissionsItem,
binding.downloadsItem, binding.downloadsItem,

@ -12,7 +12,7 @@ import org.mozilla.fenix.ext.getPreferenceKey
enum class DeleteBrowsingDataOnQuitType(@StringRes private val prefKey: Int) { enum class DeleteBrowsingDataOnQuitType(@StringRes private val prefKey: Int) {
TABS(R.string.pref_key_delete_open_tabs_on_quit), TABS(R.string.pref_key_delete_open_tabs_on_quit),
HISTORY(R.string.pref_key_delete_browsing_history_on_quit), HISTORY(R.string.pref_key_delete_browsing_history_on_quit),
COOKIES(R.string.pref_key_delete_cookies_on_quit), COOKIES(R.string.pref_key_delete_cookies_and_site_data_on_quit),
CACHE(R.string.pref_key_delete_caches_on_quit), CACHE(R.string.pref_key_delete_caches_on_quit),
PERMISSIONS(R.string.pref_key_delete_permissions_on_quit), PERMISSIONS(R.string.pref_key_delete_permissions_on_quit),
DOWNLOADS(R.string.pref_key_delete_downloads_on_quit), DOWNLOADS(R.string.pref_key_delete_downloads_on_quit),

@ -39,23 +39,23 @@
app:deleteBrowsingDataItemTitle="@string/preferences_delete_browsing_data_tabs_title_2" app:deleteBrowsingDataItemTitle="@string/preferences_delete_browsing_data_tabs_title_2"
app:deleteBrowsingDataItemSubtitle="@string/preferences_delete_browsing_data_tabs_subtitle" /> app:deleteBrowsingDataItemSubtitle="@string/preferences_delete_browsing_data_tabs_subtitle" />
<org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem
android:id="@+id/browsing_data_item" android:id="@+id/browsing_history_item"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
app:deleteBrowsingDataItemTitle="@string/preferences_delete_browsing_data_browsing_data_title" app:deleteBrowsingDataItemTitle="@string/preferences_delete_browsing_data_browsing_history_title"
app:deleteBrowsingDataItemSubtitle="@string/preferences_delete_browsing_data_browsing_data_subtitle" /> app:deleteBrowsingDataItemSubtitle="@string/preferences_delete_browsing_data_browsing_data_subtitle" />
<org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem
android:id="@+id/cookies_item" android:id="@+id/cookies_and_site_data_item"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:visibility="gone" android:visibility="gone"
app:deleteBrowsingDataItemTitle="@string/preferences_delete_browsing_data_cookies" app:deleteBrowsingDataItemTitle="@string/preferences_delete_browsing_data_cookies_and_site_data"
app:deleteBrowsingDataItemSubtitle="@string/preferences_delete_browsing_data_cookies_subtitle" /> app:deleteBrowsingDataItemSubtitle="@string/preferences_delete_browsing_data_cookies_subtitle" />
<org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem
android:id="@+id/cached_files_item" android:id="@+id/cached_files_item"

@ -25,7 +25,7 @@
<string name="pref_key_delete_browsing_data_on_quit" translatable="false">pref_key_delete_browsing_data_on_quit</string> <string name="pref_key_delete_browsing_data_on_quit" translatable="false">pref_key_delete_browsing_data_on_quit</string>
<string name="pref_key_delete_open_tabs_on_quit" translatable="false">pref_key_delete_open_tabs_on_quit</string> <string name="pref_key_delete_open_tabs_on_quit" translatable="false">pref_key_delete_open_tabs_on_quit</string>
<string name="pref_key_delete_browsing_history_on_quit" translatable="false">pref_key_delete_browsing_history_on_quit</string> <string name="pref_key_delete_browsing_history_on_quit" translatable="false">pref_key_delete_browsing_history_on_quit</string>
<string name="pref_key_delete_cookies_on_quit" translatable="false">pref_key_delete_cookies_on_quit</string> <string name="pref_key_delete_cookies_and_site_data_on_quit" translatable="false">pref_key_delete_cookies_and_site_data_on_quit</string>
<string name="pref_key_delete_caches_on_quit" translatable="false">pref_key_delete_caches_on_quit</string> <string name="pref_key_delete_caches_on_quit" translatable="false">pref_key_delete_caches_on_quit</string>
<string name="pref_key_delete_permissions_on_quit" translatable="false">pref_key_delete_permissions_on_quit</string> <string name="pref_key_delete_permissions_on_quit" translatable="false">pref_key_delete_permissions_on_quit</string>
<string name="pref_key_delete_downloads_on_quit" translatable="false">pref_key_delete_downloads_on_quit</string> <string name="pref_key_delete_downloads_on_quit" translatable="false">pref_key_delete_downloads_on_quit</string>

@ -1307,12 +1307,16 @@
<!-- Subtitle for the tabs item in Delete browsing data, parameter will be replaced with the number of open tabs --> <!-- Subtitle for the tabs item in Delete browsing data, parameter will be replaced with the number of open tabs -->
<string name="preferences_delete_browsing_data_tabs_subtitle">%d tabs</string> <string name="preferences_delete_browsing_data_tabs_subtitle">%d tabs</string>
<!-- Title for the data and history items in Delete browsing data --> <!-- Title for the data and history items in Delete browsing data -->
<string name="preferences_delete_browsing_data_browsing_data_title">Browsing history and site data</string> <string name="preferences_delete_browsing_data_browsing_data_title" moz:removedIn="118">Browsing history and site data</string>
<!-- Title for the history item in Delete browsing data -->
<string name="preferences_delete_browsing_data_browsing_history_title">Browsing history</string>
<!-- Subtitle for the data and history items in delete browsing data, parameter will be replaced with the <!-- Subtitle for the data and history items in delete browsing data, parameter will be replaced with the
number of history items the user has --> number of history items the user has -->
<string name="preferences_delete_browsing_data_browsing_data_subtitle">%d addresses</string> <string name="preferences_delete_browsing_data_browsing_data_subtitle">%d addresses</string>
<!-- Title for the cookies item in Delete browsing data --> <!-- Title for the cookies item in Delete browsing data -->
<string name="preferences_delete_browsing_data_cookies">Cookies</string> <string name="preferences_delete_browsing_data_cookies" moz:removedIn="118">Cookies</string>
<!-- Title for the cookies and site data items in Delete browsing data -->
<string name="preferences_delete_browsing_data_cookies_and_site_data">Cookies and site data</string>
<!-- Subtitle for the cookies item in Delete browsing data --> <!-- Subtitle for the cookies item in Delete browsing data -->
<string name="preferences_delete_browsing_data_cookies_subtitle">Youll be logged out of most sites</string> <string name="preferences_delete_browsing_data_cookies_subtitle">Youll be logged out of most sites</string>
<!-- Title for the cached images and files item in Delete browsing data --> <!-- Title for the cached images and files item in Delete browsing data -->

@ -22,12 +22,12 @@
<CheckBoxPreference <CheckBoxPreference
android:key="@string/pref_key_delete_browsing_history_on_quit" android:key="@string/pref_key_delete_browsing_history_on_quit"
android:layout="@layout/checkbox_left_preference" android:layout="@layout/checkbox_left_preference"
android:title="@string/preferences_delete_browsing_data_browsing_data_title" /> android:title="@string/preferences_delete_browsing_data_browsing_history_title" />
<CheckBoxPreference <CheckBoxPreference
android:key="@string/pref_key_delete_cookies_on_quit" android:key="@string/pref_key_delete_cookies_and_site_data_on_quit"
android:layout="@layout/checkbox_left_preference" android:layout="@layout/checkbox_left_preference"
android:summary="@string/preferences_delete_browsing_data_cookies_subtitle" android:summary="@string/preferences_delete_browsing_data_cookies_subtitle"
android:title="@string/preferences_delete_browsing_data_cookies" /> android:title="@string/preferences_delete_browsing_data_cookies_and_site_data" />
<CheckBoxPreference <CheckBoxPreference
android:key="@string/pref_key_delete_caches_on_quit" android:key="@string/pref_key_delete_caches_on_quit"
android:layout="@layout/checkbox_left_preference" android:layout="@layout/checkbox_left_preference"

@ -65,12 +65,11 @@ class DefaultDeleteBrowsingDataControllerTest {
} }
@Test @Test
fun deleteBrowsingData() = runTestOnMain { fun deleteBrowsingHistory() = runTestOnMain {
controller = spyk(controller) controller = spyk(controller)
controller.deleteBrowsingData() controller.deleteBrowsingHistory()
coVerify { coVerify {
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
historyStorage.deleteEverything() historyStorage.deleteEverything()
store.dispatch(EngineAction.PurgeHistoryAction) store.dispatch(EngineAction.PurgeHistoryAction)
store.dispatch(RecentlyClosedAction.RemoveAllClosedTabAction) store.dispatch(RecentlyClosedAction.RemoveAllClosedTabAction)
@ -79,8 +78,8 @@ class DefaultDeleteBrowsingDataControllerTest {
} }
@Test @Test
fun deleteCookies() = runTestOnMain { fun deleteCookiesAndSiteData() = runTestOnMain {
controller.deleteCookies() controller.deleteCookiesAndSiteData()
verify { verify {
engine.clearData( engine.clearData(
@ -89,6 +88,7 @@ class DefaultDeleteBrowsingDataControllerTest {
Engine.BrowsingData.AUTH_SESSIONS, Engine.BrowsingData.AUTH_SESSIONS,
), ),
) )
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
} }
} }

@ -587,9 +587,9 @@
<ID>UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun canInstall(): Boolean</ID> <ID>UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun canInstall(): Boolean</ID>
<ID>UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun shouldShowOpenInApp(): Boolean</ID> <ID>UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun shouldShowOpenInApp(): Boolean</ID>
<ID>UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun shouldShowReaderViewCustomization(): Boolean</ID> <ID>UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun shouldShowReaderViewCustomization(): Boolean</ID>
<ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteBrowsingData()</ID> <ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteBrowsingHistory()</ID>
<ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteCachedFiles()</ID> <ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteCachedFiles()</ID>
<ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteCookies()</ID> <ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteCookiesAndSiteData()</ID>
<ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteDownloads()</ID> <ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteDownloads()</ID>
<ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteSitePermissions()</ID> <ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteSitePermissions()</ID>
<ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteTabs()</ID> <ID>UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteTabs()</ID>

Loading…
Cancel
Save