Dan Ballard pushed to branch firefox-android-115.2.1-13.0-1 at The Tor Project / Applications / firefox-android
Commits:
-
8456bbb8
by clairehurst at 2023-09-21T16:13:32+00:00
13 changed files:
- android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/cookiebanners/GeckoCookieBannersStorage.kt
- android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/cookiebanners/ReportSiteDomainsRepository.kt
- android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/cookiehandling/CookieBannersStorage.kt
- fenix/app/metrics.yaml
- fenix/app/pings.yaml
- fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
- fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/ProtectionsView.kt
- fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerDetailsController.kt
- fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerDetailsInteractor.kt
- fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerHandlingDetailsView.kt
- fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannersStorageExt.kt
- fenix/app/src/main/java/org/mozilla/fenix/trackingprotection/ProtectionsStore.kt
- fenix/app/src/main/res/layout/component_cookie_banner_details_panel.xml
Changes:
... | ... | @@ -21,7 +21,7 @@ import org.mozilla.geckoview.StorageController |
21 | 21 | */
|
22 | 22 | class GeckoCookieBannersStorage(
|
23 | 23 | runtime: GeckoRuntime,
|
24 | - private val reportSiteDomainsRepository: ReportSiteDomainsRepository,
|
|
24 | +// private val reportSiteDomainsRepository: ReportSiteDomainsRepository,
|
|
25 | 25 | ) : CookieBannersStorage {
|
26 | 26 | |
27 | 27 | private val geckoStorage: StorageController = runtime.storageController
|
... | ... | @@ -34,13 +34,13 @@ class GeckoCookieBannersStorage( |
34 | 34 | setGeckoException(uri, DISABLED, privateBrowsing)
|
35 | 35 | }
|
36 | 36 | |
37 | - override suspend fun isSiteDomainReported(siteDomain: String): Boolean {
|
|
38 | - return reportSiteDomainsRepository.isSiteDomainReported(siteDomain)
|
|
39 | - }
|
|
40 | - |
|
41 | - override suspend fun saveSiteDomain(siteDomain: String) {
|
|
42 | - reportSiteDomainsRepository.saveSiteDomain(siteDomain)
|
|
43 | - }
|
|
37 | +// override suspend fun isSiteDomainReported(siteDomain: String): Boolean {
|
|
38 | +// return reportSiteDomainsRepository.isSiteDomainReported(siteDomain)
|
|
39 | +// }
|
|
40 | +//
|
|
41 | +// override suspend fun saveSiteDomain(siteDomain: String) {
|
|
42 | +// reportSiteDomainsRepository.saveSiteDomain(siteDomain)
|
|
43 | +// }
|
|
44 | 44 | |
45 | 45 | override suspend fun addPersistentExceptionInPrivateMode(uri: String) {
|
46 | 46 | setPersistentPrivateGeckoException(uri, DISABLED)
|
... | ... | @@ -12,64 +12,64 @@ import androidx.datastore.preferences.core.stringPreferencesKey |
12 | 12 | import kotlinx.coroutines.flow.catch
|
13 | 13 | import kotlinx.coroutines.flow.first
|
14 | 14 | import kotlinx.coroutines.flow.map
|
15 | -import mozilla.components.browser.engine.gecko.cookiebanners.ReportSiteDomainsRepository.PreferencesKeys.REPORT_SITE_DOMAINS
|
|
15 | +//import mozilla.components.browser.engine.gecko.cookiebanners.ReportSiteDomainsRepository.PreferencesKeys.REPORT_SITE_DOMAINS
|
|
16 | 16 | import mozilla.components.support.base.log.logger.Logger
|
17 | 17 | import java.io.IOException
|
18 | 18 | |
19 | 19 | /**
|
20 | 20 | * A repository to save reported site domains with the datastore API.
|
21 | 21 | */
|
22 | -class ReportSiteDomainsRepository(
|
|
23 | - private val dataStore: DataStore<Preferences>,
|
|
24 | -) {
|
|
25 | - |
|
26 | - companion object {
|
|
27 | - const val SEPARATOR = "@<;>@"
|
|
28 | - const val REPORT_SITE_DOMAINS_REPOSITORY_NAME = "report_site_domains_preferences"
|
|
29 | - const val PREFERENCE_KEY_NAME = "report_site_domains"
|
|
30 | - }
|
|
31 | - |
|
32 | - private object PreferencesKeys {
|
|
33 | - val REPORT_SITE_DOMAINS = stringPreferencesKey(PREFERENCE_KEY_NAME)
|
|
34 | - }
|
|
35 | - |
|
36 | - /**
|
|
37 | - * Check if the given site's domain url is saved locally.
|
|
38 | - * @param siteDomain the [siteDomain] that will be checked.
|
|
39 | - */
|
|
40 | - suspend fun isSiteDomainReported(siteDomain: String): Boolean {
|
|
41 | - return dataStore.data
|
|
42 | - .catch { exception ->
|
|
43 | - if (exception is IOException) {
|
|
44 | - Logger.error("Error reading preferences.", exception)
|
|
45 | - emit(emptyPreferences())
|
|
46 | - } else {
|
|
47 | - throw exception
|
|
48 | - }
|
|
49 | - }.map { preferences ->
|
|
50 | - val reportSiteDomainsString = preferences[REPORT_SITE_DOMAINS] ?: ""
|
|
51 | - val reportSiteDomainsList =
|
|
52 | - reportSiteDomainsString.split(SEPARATOR).filter { it.isNotEmpty() }
|
|
53 | - reportSiteDomainsList.contains(siteDomain)
|
|
54 | - }.first()
|
|
55 | - }
|
|
56 | - |
|
57 | - /**
|
|
58 | - * Save the given site's domain url in datastore to keep it persistent locally.
|
|
59 | - * This method gets called after the site domain was reported with Nimbus.
|
|
60 | - * @param siteDomain the [siteDomain] that will be saved.
|
|
61 | - */
|
|
62 | - suspend fun saveSiteDomain(siteDomain: String) {
|
|
63 | - dataStore.edit { preferences ->
|
|
64 | - val siteDomainsPreferences = preferences[REPORT_SITE_DOMAINS] ?: ""
|
|
65 | - val siteDomainsList = siteDomainsPreferences.split(SEPARATOR).filter { it.isNotEmpty() }
|
|
66 | - if (siteDomainsList.contains(siteDomain)) {
|
|
67 | - return@edit
|
|
68 | - }
|
|
69 | - val domains = mutableListOf<String>()
|
|
70 | - domains.addAll(siteDomainsList)
|
|
71 | - domains.add(siteDomain)
|
|
72 | - preferences[REPORT_SITE_DOMAINS] = domains.joinToString(SEPARATOR)
|
|
73 | - }
|
|
74 | - }
|
|
75 | -} |
|
22 | +//class ReportSiteDomainsRepository(
|
|
23 | +// private val dataStore: DataStore<Preferences>,
|
|
24 | +//) {
|
|
25 | +//
|
|
26 | +// companion object {
|
|
27 | +// const val SEPARATOR = "@<;>@"
|
|
28 | +// const val REPORT_SITE_DOMAINS_REPOSITORY_NAME = "report_site_domains_preferences"
|
|
29 | +// const val PREFERENCE_KEY_NAME = "report_site_domains"
|
|
30 | +// }
|
|
31 | +//
|
|
32 | +// private object PreferencesKeys {
|
|
33 | +// val REPORT_SITE_DOMAINS = stringPreferencesKey(PREFERENCE_KEY_NAME)
|
|
34 | +// }
|
|
35 | +//
|
|
36 | +// /**
|
|
37 | +// * Check if the given site's domain url is saved locally.
|
|
38 | +// * @param siteDomain the [siteDomain] that will be checked.
|
|
39 | +// */
|
|
40 | +// suspend fun isSiteDomainReported(siteDomain: String): Boolean {
|
|
41 | +// return dataStore.data
|
|
42 | +// .catch { exception ->
|
|
43 | +// if (exception is IOException) {
|
|
44 | +// Logger.error("Error reading preferences.", exception)
|
|
45 | +// emit(emptyPreferences())
|
|
46 | +// } else {
|
|
47 | +// throw exception
|
|
48 | +// }
|
|
49 | +// }.map { preferences ->
|
|
50 | +// val reportSiteDomainsString = preferences[REPORT_SITE_DOMAINS] ?: ""
|
|
51 | +// val reportSiteDomainsList =
|
|
52 | +// reportSiteDomainsString.split(SEPARATOR).filter { it.isNotEmpty() }
|
|
53 | +// reportSiteDomainsList.contains(siteDomain)
|
|
54 | +// }.first()
|
|
55 | +// }
|
|
56 | +//
|
|
57 | +// /**
|
|
58 | +// * Save the given site's domain url in datastore to keep it persistent locally.
|
|
59 | +// * This method gets called after the site domain was reported with Nimbus.
|
|
60 | +// * @param siteDomain the [siteDomain] that will be saved.
|
|
61 | +// */
|
|
62 | +// suspend fun saveSiteDomain(siteDomain: String) {
|
|
63 | +// dataStore.edit { preferences ->
|
|
64 | +// val siteDomainsPreferences = preferences[REPORT_SITE_DOMAINS] ?: ""
|
|
65 | +// val siteDomainsList = siteDomainsPreferences.split(SEPARATOR).filter { it.isNotEmpty() }
|
|
66 | +// if (siteDomainsList.contains(siteDomain)) {
|
|
67 | +// return@edit
|
|
68 | +// }
|
|
69 | +// val domains = mutableListOf<String>()
|
|
70 | +// domains.addAll(siteDomainsList)
|
|
71 | +// domains.add(siteDomain)
|
|
72 | +// preferences[REPORT_SITE_DOMAINS] = domains.joinToString(SEPARATOR)
|
|
73 | +// }
|
|
74 | +// }
|
|
75 | +//} |
... | ... | @@ -24,14 +24,14 @@ interface CookieBannersStorage { |
24 | 24 | * Check if the given site's domain url is saved locally.
|
25 | 25 | * @param siteDomain the [siteDomain] that will be checked.
|
26 | 26 | */
|
27 | - suspend fun isSiteDomainReported(siteDomain: String): Boolean
|
|
27 | +// suspend fun isSiteDomainReported(siteDomain: String): Boolean
|
|
28 | 28 | |
29 | 29 | /**
|
30 | 30 | * Save the given site's domain url in datastore to keep it persistent locally.
|
31 | 31 | * This method gets called after the site domain was reported with Nimbus.
|
32 | 32 | * @param siteDomain the [siteDomain] that will be saved.
|
33 | 33 | */
|
34 | - suspend fun saveSiteDomain(siteDomain: String)
|
|
34 | +// suspend fun saveSiteDomain(siteDomain: String)
|
|
35 | 35 | |
36 | 36 | /**
|
37 | 37 | * Set persistently the [CookieBannerHandlingMode.DISABLED] mode for the given [uri] in
|
... | ... | @@ -7738,62 +7738,62 @@ cookie_banners: |
7738 | 7738 | metadata:
|
7739 | 7739 | tags:
|
7740 | 7740 | - Privacy&Security
|
7741 | - report_site_domain:
|
|
7742 | - type: url
|
|
7743 | - description: |
|
|
7744 | - A user can report a site domain(Ex. for https://edition.cnn.com/
|
|
7745 | - site domain will be cnn.com) when the cookie banner reducer is not
|
|
7746 | - working from the cookie banner details panel.
|
|
7747 | - lifetime: ping
|
|
7748 | - send_in_pings:
|
|
7749 | - - cookie-banner-report-site
|
|
7750 | - bugs:
|
|
7751 | - - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
7752 | - data_reviews:
|
|
7753 | - - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
7754 | - data_sensitivity:
|
|
7755 | - - technical
|
|
7756 | - - interaction
|
|
7757 | - notification_emails:
|
|
7758 | - - android-probes@mozilla.com
|
|
7759 | - expires: 119
|
|
7760 | - metadata:
|
|
7761 | - tags:
|
|
7762 | - - Privacy&Security
|
|
7763 | - report_site_cancel_button:
|
|
7764 | - type: event
|
|
7765 | - description: |
|
|
7766 | - The user has pressed the report site domain cancel button
|
|
7767 | - from the cookie banner reducer details panel.
|
|
7768 | - bugs:
|
|
7769 | - - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
7770 | - data_reviews:
|
|
7771 | - - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
7772 | - data_sensitivity:
|
|
7773 | - - interaction
|
|
7774 | - notification_emails:
|
|
7775 | - - android-probes@mozilla.com
|
|
7776 | - expires: 119
|
|
7777 | - metadata:
|
|
7778 | - tags:
|
|
7779 | - - Privacy&Security
|
|
7780 | - report_domain_site_button:
|
|
7781 | - type: event
|
|
7782 | - description: |
|
|
7783 | - The user has pressed the report site domain button
|
|
7784 | - from the cookie banner reducer details panel.
|
|
7785 | - bugs:
|
|
7786 | - - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
7787 | - data_reviews:
|
|
7788 | - - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
7789 | - data_sensitivity:
|
|
7790 | - - interaction
|
|
7791 | - notification_emails:
|
|
7792 | - - android-probes@mozilla.com
|
|
7793 | - expires: 119
|
|
7794 | - metadata:
|
|
7795 | - tags:
|
|
7796 | - - Privacy&Security
|
|
7741 | +# report_site_domain:
|
|
7742 | +# type: url
|
|
7743 | +# description: |
|
|
7744 | +# A user can report a site domain(Ex. for https://edition.cnn.com/
|
|
7745 | +# site domain will be cnn.com) when the cookie banner reducer is not
|
|
7746 | +# working from the cookie banner details panel.
|
|
7747 | +# lifetime: ping
|
|
7748 | +# send_in_pings:
|
|
7749 | +# - cookie-banner-report-site
|
|
7750 | +# bugs:
|
|
7751 | +# - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
7752 | +# data_reviews:
|
|
7753 | +# - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
7754 | +# data_sensitivity:
|
|
7755 | +# - technical
|
|
7756 | +# - interaction
|
|
7757 | +# notification_emails:
|
|
7758 | +# - android-probes@mozilla.com
|
|
7759 | +# expires: 119
|
|
7760 | +# metadata:
|
|
7761 | +# tags:
|
|
7762 | +# - Privacy&Security
|
|
7763 | +# report_site_cancel_button:
|
|
7764 | +# type: event
|
|
7765 | +# description: |
|
|
7766 | +# The user has pressed the report site domain cancel button
|
|
7767 | +# from the cookie banner reducer details panel.
|
|
7768 | +# bugs:
|
|
7769 | +# - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
7770 | +# data_reviews:
|
|
7771 | +# - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
7772 | +# data_sensitivity:
|
|
7773 | +# - interaction
|
|
7774 | +# notification_emails:
|
|
7775 | +# - android-probes@mozilla.com
|
|
7776 | +# expires: 119
|
|
7777 | +# metadata:
|
|
7778 | +# tags:
|
|
7779 | +# - Privacy&Security
|
|
7780 | +# report_domain_site_button:
|
|
7781 | +# type: event
|
|
7782 | +# description: |
|
|
7783 | +# The user has pressed the report site domain button
|
|
7784 | +# from the cookie banner reducer details panel.
|
|
7785 | +# bugs:
|
|
7786 | +# - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
7787 | +# data_reviews:
|
|
7788 | +# - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
7789 | +# data_sensitivity:
|
|
7790 | +# - interaction
|
|
7791 | +# notification_emails:
|
|
7792 | +# - android-probes@mozilla.com
|
|
7793 | +# expires: 119
|
|
7794 | +# metadata:
|
|
7795 | +# tags:
|
|
7796 | +# - Privacy&Security
|
|
7797 | 7797 | |
7798 | 7798 | site_permissions:
|
7799 | 7799 | prompt_shown:
|
... | ... | @@ -65,15 +65,15 @@ spoc: |
65 | 65 | notification_emails:
|
66 | 66 | - android-probes@mozilla.com
|
67 | 67 | |
68 | -cookie-banner-report-site:
|
|
69 | - description: |
|
|
70 | - This ping is needed when the cookie banner reducer doesn't work on
|
|
71 | - a website, and the user wants to report the site.
|
|
72 | - This ping doesn't include a client id.
|
|
73 | - include_client_id: false
|
|
74 | - bugs:
|
|
75 | - - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
76 | - data_reviews:
|
|
77 | - - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
78 | - notification_emails:
|
|
79 | - - android-probes@mozilla.com |
|
68 | +#cookie-banner-report-site:
|
|
69 | +# description: |
|
|
70 | +# This ping is needed when the cookie banner reducer doesn't work on
|
|
71 | +# a website, and the user wants to report the site.
|
|
72 | +# This ping doesn't include a client id.
|
|
73 | +# include_client_id: false
|
|
74 | +# bugs:
|
|
75 | +# - https://bugzilla.mozilla.org/show_bug.cgi?id=1805450
|
|
76 | +# data_reviews:
|
|
77 | +# - https://github.com/mozilla-mobile/firefox-android/pull/1298#pullrequestreview-1350344223
|
|
78 | +# notification_emails:
|
|
79 | +# - android-probes@mozilla.com |
... | ... | @@ -16,7 +16,7 @@ import mozilla.components.browser.domains.autocomplete.BaseDomainAutocompletePro |
16 | 16 | import mozilla.components.browser.domains.autocomplete.ShippedDomainsProvider
|
17 | 17 | import mozilla.components.browser.engine.gecko.GeckoEngine
|
18 | 18 | import mozilla.components.browser.engine.gecko.cookiebanners.GeckoCookieBannersStorage
|
19 | -import mozilla.components.browser.engine.gecko.cookiebanners.ReportSiteDomainsRepository
|
|
19 | +//import mozilla.components.browser.engine.gecko.cookiebanners.ReportSiteDomainsRepository
|
|
20 | 20 | import mozilla.components.browser.engine.gecko.fetch.GeckoViewFetchClient
|
21 | 21 | import mozilla.components.browser.engine.gecko.permission.GeckoSitePermissionsStorage
|
22 | 22 | import mozilla.components.browser.icons.BrowserIcons
|
... | ... | @@ -197,14 +197,14 @@ class Core( |
197 | 197 | )
|
198 | 198 | }
|
199 | 199 | |
200 | - private val Context.dataStore by preferencesDataStore(
|
|
201 | - name = ReportSiteDomainsRepository.REPORT_SITE_DOMAINS_REPOSITORY_NAME,
|
|
202 | - )
|
|
200 | +// private val Context.dataStore by preferencesDataStore(
|
|
201 | +// name = ReportSiteDomainsRepository.REPORT_SITE_DOMAINS_REPOSITORY_NAME,
|
|
202 | +// )
|
|
203 | 203 | |
204 | 204 | val cookieBannersStorage by lazyMonitored {
|
205 | 205 | GeckoCookieBannersStorage(
|
206 | 206 | geckoRuntime,
|
207 | - ReportSiteDomainsRepository(context.dataStore),
|
|
207 | +// ReportSiteDomainsRepository(context.dataStore),
|
|
208 | 208 | )
|
209 | 209 | }
|
210 | 210 |
... | ... | @@ -94,7 +94,7 @@ class ProtectionsView( |
94 | 94 | binding.cookieBannerItem.apply {
|
95 | 95 | setContent {
|
96 | 96 | FirefoxTheme {
|
97 | - if (cookieBannerMode == CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED) {
|
|
97 | + if (cookieBannerMode == CookieBannerUIMode.SITE_NOT_SUPPORTED) {
|
|
98 | 98 | CookieBannerItem(
|
99 | 99 | label = label,
|
100 | 100 | cookieBannerUIMode = cookieBannerMode,
|
... | ... | @@ -55,7 +55,7 @@ interface CookieBannerDetailsController { |
55 | 55 | /**
|
56 | 56 | * @see [CookieBannerDetailsInteractor.handleRequestSiteSupportPressed]
|
57 | 57 | */
|
58 | - fun handleRequestSiteSupportPressed()
|
|
58 | +// fun handleRequestSiteSupportPressed()
|
|
59 | 59 | }
|
60 | 60 | |
61 | 61 | /**
|
... | ... | @@ -144,37 +144,37 @@ class DefaultCookieBannerDetailsController( |
144 | 144 | }
|
145 | 145 | }
|
146 | 146 | |
147 | - override fun handleRequestSiteSupportPressed() {
|
|
148 | - val tab = requireNotNull(browserStore.state.findTabOrCustomTab(sessionId)) {
|
|
149 | - "A session is required to report site domain"
|
|
150 | - }
|
|
151 | - CookieBanners.reportDomainSiteButton.record(NoExtras())
|
|
152 | - ioScope.launch {
|
|
153 | - val siteDomain = getTabDomain(tab)
|
|
154 | - siteDomain?.let { domain ->
|
|
155 | - withContext(Dispatchers.Main) {
|
|
156 | - protectionsStore.dispatch(ProtectionsAction.RequestReportSiteDomain(domain))
|
|
157 | - CookieBanners.reportSiteDomain.set(domain)
|
|
158 | - Pings.cookieBannerReportSite.submit()
|
|
159 | - protectionsStore.dispatch(
|
|
160 | - ProtectionsAction.UpdateCookieBannerMode(
|
|
161 | - cookieBannerUIMode = CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED,
|
|
162 | - ),
|
|
163 | - )
|
|
164 | - fragment.activity?.getRootView()?.let { view ->
|
|
165 | - showSnackBar(
|
|
166 | - view,
|
|
167 | - context.getString(R.string.cookie_banner_handling_report_site_snack_bar_text_2),
|
|
168 | - FenixSnackbar.LENGTH_LONG,
|
|
169 | - )
|
|
170 | - }
|
|
171 | - withContext(Dispatchers.IO) {
|
|
172 | - cookieBannersStorage.saveSiteDomain(domain)
|
|
173 | - }
|
|
174 | - }
|
|
175 | - }
|
|
176 | - }
|
|
177 | - }
|
|
147 | +// override fun handleRequestSiteSupportPressed() {
|
|
148 | +// val tab = requireNotNull(browserStore.state.findTabOrCustomTab(sessionId)) {
|
|
149 | +// "A session is required to report site domain"
|
|
150 | +// }
|
|
151 | +// CookieBanners.reportDomainSiteButton.record(NoExtras())
|
|
152 | +// ioScope.launch {
|
|
153 | +// val siteDomain = getTabDomain(tab)
|
|
154 | +// siteDomain?.let { domain ->
|
|
155 | +// withContext(Dispatchers.Main) {
|
|
156 | +// protectionsStore.dispatch(ProtectionsAction.RequestReportSiteDomain(domain))
|
|
157 | +// CookieBanners.reportSiteDomain.set(domain)
|
|
158 | +// Pings.cookieBannerReportSite.submit()
|
|
159 | +// protectionsStore.dispatch(
|
|
160 | +// ProtectionsAction.UpdateCookieBannerMode(
|
|
161 | +// cookieBannerUIMode = CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED,
|
|
162 | +// ),
|
|
163 | +// )
|
|
164 | +// fragment.activity?.getRootView()?.let { view ->
|
|
165 | +// showSnackBar(
|
|
166 | +// view,
|
|
167 | +// context.getString(R.string.cookie_banner_handling_report_site_snack_bar_text_2),
|
|
168 | +// FenixSnackbar.LENGTH_LONG,
|
|
169 | +// )
|
|
170 | +// }
|
|
171 | +// withContext(Dispatchers.IO) {
|
|
172 | +// cookieBannersStorage.saveSiteDomain(domain)
|
|
173 | +// }
|
|
174 | +// }
|
|
175 | +// }
|
|
176 | +// }
|
|
177 | +// }
|
|
178 | 178 | |
179 | 179 | @VisibleForTesting
|
180 | 180 | internal suspend fun clearSiteData(tab: SessionState) {
|
... | ... | @@ -21,7 +21,7 @@ interface CookieBannerDetailsInteractor { |
21 | 21 | /**
|
22 | 22 | * Called whenever the user press request support site domain.
|
23 | 23 | */
|
24 | - fun handleRequestSiteSupportPressed()
|
|
24 | +// fun handleRequestSiteSupportPressed()
|
|
25 | 25 | }
|
26 | 26 | |
27 | 27 | /**
|
... | ... | @@ -45,7 +45,7 @@ class DefaultCookieBannerDetailsInteractor( |
45 | 45 | controller.handleTogglePressed(vale)
|
46 | 46 | }
|
47 | 47 | |
48 | - override fun handleRequestSiteSupportPressed() {
|
|
49 | - controller.handleRequestSiteSupportPressed()
|
|
50 | - }
|
|
48 | +// override fun handleRequestSiteSupportPressed() {
|
|
49 | +// controller.handleRequestSiteSupportPressed()
|
|
50 | +// }
|
|
51 | 51 | } |
... | ... | @@ -57,7 +57,7 @@ class CookieBannerHandlingDetailsView( |
57 | 57 | when (state.cookieBannerUIMode) {
|
58 | 58 | CookieBannerUIMode.ENABLE -> setUiForExceptionMode(state)
|
59 | 59 | CookieBannerUIMode.DISABLE -> setUiForExceptionMode(state)
|
60 | - CookieBannerUIMode.SITE_NOT_SUPPORTED -> setUiForReportSiteMode()
|
|
60 | +// CookieBannerUIMode.SITE_NOT_SUPPORTED -> setUiForReportSiteMode()
|
|
61 | 61 | else -> {}
|
62 | 62 | }
|
63 | 63 | }
|
... | ... | @@ -67,19 +67,19 @@ class CookieBannerHandlingDetailsView( |
67 | 67 | bindSwitch(state.cookieBannerUIMode)
|
68 | 68 | }
|
69 | 69 | |
70 | - private fun setUiForReportSiteMode() {
|
|
71 | - binding.cancelButton.visibility = View.VISIBLE
|
|
72 | - binding.requestSupport.visibility = View.VISIBLE
|
|
73 | - binding.cookieBannerSwitch.visibility = View.GONE
|
|
74 | - binding.requestSupport.setOnClickListener {
|
|
75 | - interactor.handleRequestSiteSupportPressed()
|
|
76 | - onDismiss.invoke()
|
|
77 | - }
|
|
78 | - binding.cancelButton.setOnClickListener {
|
|
79 | - CookieBanners.reportSiteCancelButton.record(NoExtras())
|
|
80 | - interactor.onBackPressed()
|
|
81 | - }
|
|
82 | - }
|
|
70 | +// private fun setUiForReportSiteMode() {
|
|
71 | +// binding.cancelButton.visibility = View.VISIBLE
|
|
72 | +// binding.requestSupport.visibility = View.VISIBLE
|
|
73 | +// binding.cookieBannerSwitch.visibility = View.GONE
|
|
74 | +// binding.requestSupport.setOnClickListener {
|
|
75 | +// interactor.handleRequestSiteSupportPressed()
|
|
76 | +// onDismiss.invoke()
|
|
77 | +// }
|
|
78 | +// binding.cancelButton.setOnClickListener {
|
|
79 | +// CookieBanners.reportSiteCancelButton.record(NoExtras())
|
|
80 | +// interactor.onBackPressed()
|
|
81 | +// }
|
|
82 | +// }
|
|
83 | 83 | |
84 | 84 | @VisibleForTesting
|
85 | 85 | internal fun bindTitle(url: String, state: CookieBannerUIMode) {
|
... | ... | @@ -24,15 +24,15 @@ suspend fun CookieBannersStorage.getCookieBannerUIMode( |
24 | 24 | tab: SessionState,
|
25 | 25 | ): CookieBannerUIMode {
|
26 | 26 | return if (context.settings().shouldUseCookieBanner) {
|
27 | - val isSiteDomainReported = withContext(Dispatchers.IO) {
|
|
28 | - val host = tab.content.url.toUri().host.orEmpty()
|
|
29 | - val siteDomain = context.components.publicSuffixList.getPublicSuffixPlusOne(host).await()
|
|
30 | - siteDomain?.let { isSiteDomainReported(it) }
|
|
31 | - }
|
|
32 | - |
|
33 | - if (isSiteDomainReported == true) {
|
|
34 | - return CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED
|
|
35 | - }
|
|
27 | +// val isSiteDomainReported = withContext(Dispatchers.IO) {
|
|
28 | +// val host = tab.content.url.toUri().host.orEmpty()
|
|
29 | +// val siteDomain = context.components.publicSuffixList.getPublicSuffixPlusOne(host).await()
|
|
30 | +// siteDomain?.let { isSiteDomainReported(it) }
|
|
31 | +// }
|
|
32 | +//
|
|
33 | +// if (isSiteDomainReported == true) {
|
|
34 | +// return CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED
|
|
35 | +// }
|
|
36 | 36 | |
37 | 37 | val hasException = withContext(Dispatchers.IO) {
|
38 | 38 | hasException(tab.content.url, tab.content.private)
|
... | ... | @@ -52,9 +52,9 @@ sealed class ProtectionsAction : Action { |
52 | 52 | *
|
53 | 53 | * @param url to report.
|
54 | 54 | */
|
55 | - data class RequestReportSiteDomain(
|
|
56 | - val url: String,
|
|
57 | - ) : ProtectionsAction()
|
|
55 | +// data class RequestReportSiteDomain(
|
|
56 | +// val url: String,
|
|
57 | +// ) : ProtectionsAction()
|
|
58 | 58 | |
59 | 59 | /**
|
60 | 60 | * Indicates that cookie banner handling mode has been updated.
|
... | ... | @@ -167,10 +167,10 @@ enum class CookieBannerUIMode( |
167 | 167 | * REQUEST_UNSUPPORTED_SITE_SUBMITTED - The user submitted a request
|
168 | 168 | * for adding support for cookie banner handling for the domain.
|
169 | 169 | */
|
170 | - REQUEST_UNSUPPORTED_SITE_SUBMITTED(
|
|
171 | - R.string.reduce_cookie_banner_unsupported_site_request_submitted_2,
|
|
172 | - R.drawable.ic_cookies_disabled,
|
|
173 | - ),
|
|
170 | +// REQUEST_UNSUPPORTED_SITE_SUBMITTED(
|
|
171 | +// R.string.reduce_cookie_banner_unsupported_site_request_submitted_2,
|
|
172 | +// R.drawable.ic_cookies_disabled,
|
|
173 | +// ),
|
|
174 | 174 | |
175 | 175 | /**
|
176 | 176 | HIDE - All the cookie banner handling in the tracking panel is hidden.
|
... | ... | @@ -243,9 +243,9 @@ fun protectionsStateReducer( |
243 | 243 | is ProtectionsAction.ToggleCookieBannerHandlingProtectionEnabled -> state.copy(
|
244 | 244 | cookieBannerUIMode = action.cookieBannerUIMode,
|
245 | 245 | )
|
246 | - is ProtectionsAction.RequestReportSiteDomain -> state.copy(
|
|
247 | - url = action.url,
|
|
248 | - )
|
|
246 | +// is ProtectionsAction.RequestReportSiteDomain -> state.copy(
|
|
247 | +// url = action.url,
|
|
248 | +// )
|
|
249 | 249 | is ProtectionsAction.UpdateCookieBannerMode -> state.copy(
|
250 | 250 | cookieBannerUIMode = action.cookieBannerUIMode,
|
251 | 251 | )
|
... | ... | @@ -64,40 +64,40 @@ |
64 | 64 | app:switchShowIcon="false"
|
65 | 65 | app:switchTitle="@string/preferences_cookie_banner_reduction" />
|
66 | 66 | |
67 | - <androidx.appcompat.widget.AppCompatButton
|
|
68 | - android:id="@+id/cancel_button"
|
|
69 | - android:layout_width="wrap_content"
|
|
70 | - android:layout_height="wrap_content"
|
|
71 | - android:visibility="gone"
|
|
72 | - android:layout_marginTop="16dp"
|
|
73 | - android:background="@android:color/transparent"
|
|
74 | - android:gravity="center"
|
|
75 | - android:minHeight="48dp"
|
|
76 | - android:text="@string/cookie_banner_handling_details_site_is_not_supported_cancel_button"
|
|
77 | - android:layout_marginEnd="16dp"
|
|
78 | - android:textAllCaps="true"
|
|
79 | - android:textColor="@color/fx_mobile_text_color_accent"
|
|
80 | - android:textSize="14sp"
|
|
81 | - app:layout_constraintEnd_toEndOf="parent"
|
|
82 | - app:layout_constraintStart_toStartOf="parent"
|
|
83 | - app:layout_constraintTop_toBottomOf="@id/details" />
|
|
67 | +<!-- <androidx.appcompat.widget.AppCompatButton-->
|
|
68 | +<!-- android:id="@+id/cancel_button"-->
|
|
69 | +<!-- android:layout_width="wrap_content"-->
|
|
70 | +<!-- android:layout_height="wrap_content"-->
|
|
71 | +<!-- android:visibility="gone"-->
|
|
72 | +<!-- android:layout_marginTop="16dp"-->
|
|
73 | +<!-- android:background="@android:color/transparent"-->
|
|
74 | +<!-- android:gravity="center"-->
|
|
75 | +<!-- android:minHeight="48dp"-->
|
|
76 | +<!-- android:text="@string/cookie_banner_handling_details_site_is_not_supported_cancel_button"-->
|
|
77 | +<!-- android:layout_marginEnd="16dp"-->
|
|
78 | +<!-- android:textAllCaps="true"-->
|
|
79 | +<!-- android:textColor="@color/fx_mobile_text_color_accent"-->
|
|
80 | +<!-- android:textSize="14sp"-->
|
|
81 | +<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
|
82 | +<!-- app:layout_constraintStart_toStartOf="parent"-->
|
|
83 | +<!-- app:layout_constraintTop_toBottomOf="@id/details" />-->
|
|
84 | 84 | |
85 | - <androidx.appcompat.widget.AppCompatButton
|
|
86 | - android:id="@+id/request_support"
|
|
87 | - android:layout_width="wrap_content"
|
|
88 | - android:layout_height="wrap_content"
|
|
89 | - android:visibility="gone"
|
|
90 | - android:layout_marginTop="16dp"
|
|
91 | - android:background="@android:color/transparent"
|
|
92 | - android:gravity="center"
|
|
93 | - android:minHeight="48dp"
|
|
94 | - android:layout_marginEnd="16dp"
|
|
95 | - android:text="@string/cookie_banner_handling_details_site_is_not_supported_request_support_button_2"
|
|
96 | - android:textAllCaps="true"
|
|
97 | - android:textColor="@color/fx_mobile_text_color_accent"
|
|
98 | - android:textSize="14sp"
|
|
99 | - app:layout_constraintEnd_toEndOf="parent"
|
|
100 | - app:layout_constraintLeft_toLeftOf="parent"
|
|
101 | - app:layout_constraintStart_toEndOf="@+id/cancel_button"
|
|
102 | - app:layout_constraintTop_toBottomOf="@id/details" />
|
|
85 | +<!-- <androidx.appcompat.widget.AppCompatButton-->
|
|
86 | +<!-- android:id="@+id/request_support"-->
|
|
87 | +<!-- android:layout_width="wrap_content"-->
|
|
88 | +<!-- android:layout_height="wrap_content"-->
|
|
89 | +<!-- android:visibility="gone"-->
|
|
90 | +<!-- android:layout_marginTop="16dp"-->
|
|
91 | +<!-- android:background="@android:color/transparent"-->
|
|
92 | +<!-- android:gravity="center"-->
|
|
93 | +<!-- android:minHeight="48dp"-->
|
|
94 | +<!-- android:layout_marginEnd="16dp"-->
|
|
95 | +<!-- android:text="@string/cookie_banner_handling_details_site_is_not_supported_request_support_button_2"-->
|
|
96 | +<!-- android:textAllCaps="true"-->
|
|
97 | +<!-- android:textColor="@color/fx_mobile_text_color_accent"-->
|
|
98 | +<!-- android:textSize="14sp"-->
|
|
99 | +<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
|
100 | +<!-- app:layout_constraintLeft_toLeftOf="parent"-->
|
|
101 | +<!-- app:layout_constraintStart_toEndOf="@+id/cancel_button"-->
|
|
102 | +<!-- app:layout_constraintTop_toBottomOf="@id/details" />-->
|
|
103 | 103 | </androidx.constraintlayout.widget.ConstraintLayout> |