fix for 85.0.4183.86 without session-only patch

This commit is contained in:
Carmelo Messina 2020-09-03 17:56:18 +02:00
parent ea53b99aa1
commit 3a9a367259

View file

@ -1,6 +1,6 @@
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 3 Sep 2020 06:15:07 +0000
Subject: rev2
Date: Thu, 3 Sep 2020 15:53:15 +0000
Subject: second version
---
.../ChromeSiteSettingsHelpClient.java | 20 ++
@ -13,7 +13,7 @@ Subject: rev2
.../ContentSettingException.java | 7 +-
.../ContentSettingsResources.java | 29 +++
.../site_settings/SingleCategorySettings.java | 70 ++++++-
.../site_settings/SingleWebsiteSettings.java | 21 +-
.../site_settings/SingleWebsiteSettings.java | 18 ++
.../site_settings/SiteSettings.java | 2 +-
.../site_settings/SiteSettingsCategory.java | 11 +-
.../site_settings/SiteSettingsHelpClient.java | 7 +
@ -39,7 +39,7 @@ Subject: rev2
.../content_settings/core/common/pref_names.h | 2 +
.../renderer/content_settings_agent_impl.cc | 92 +++++++++
.../renderer/content_settings_agent_impl.h | 4 +
36 files changed, 724 insertions(+), 14 deletions(-)
36 files changed, 723 insertions(+), 12 deletions(-)
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml
create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java
@ -315,7 +315,31 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
sResourceInfo = localMap;
}
return sResourceInfo;
@@ -420,6 +425,13 @@ public class ContentSettingsResources {
@@ -315,6 +320,23 @@ public class ContentSettingsResources {
}
}
+ public static int getCategorySummary(int contentType, @ContentSettingValues int value) {
+ if(contentType == ContentSettingsType.TIMEZONE_OVERRIDE) {
+ switch (value) {
+ case ContentSettingValues.ALLOW:
+ return R.string.website_settings_category_timezone_override_allowed;
+ case ContentSettingValues.ASK:
+ return R.string.website_settings_category_timezone_override_custom;
+ case ContentSettingValues.BLOCK:
+ return R.string.website_settings_category_timezone_override_random;
+ default:
+ return 0;
+ }
+ }
+ else
+ return getCategorySummary(value);
+ }
+
/**
* Returns the string resource id for a content type to show with a permission category.
* @param enabled Whether the content type is enabled.
@@ -418,6 +440,13 @@ public class ContentSettingsResources {
return descriptionIDs;
}
}
@ -329,28 +353,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false;
return null;
@@ -431,4 +443,21 @@ public class ContentSettingsResources {
public static int getCookieSessionOnlySummary() {
return R.string.website_settings_category_cookie_session_only_title;
}
+
+ public static int getCategorySummary(int contentType, @ContentSettingValues int value) {
+ if(contentType == ContentSettingsType.TIMEZONE_OVERRIDE) {
+ switch (value) {
+ case ContentSettingValues.ALLOW:
+ return R.string.website_settings_category_timezone_override_allowed;
+ case ContentSettingValues.ASK:
+ return R.string.website_settings_category_timezone_override_custom;
+ case ContentSettingValues.BLOCK:
+ return R.string.website_settings_category_timezone_override_random;
+ default:
+ return 0;
+ }
+ }
+ else
+ return getCategorySummary(value);
+ }
}
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@ -426,7 +428,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else if (FOUR_STATE_COOKIE_TOGGLE_KEY.equals(preference.getKey())) {
setCookieSettingsPreference((CookieSettingsState) newValue);
getInfoForOrigins();
@@ -664,6 +683,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -642,6 +661,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
? R.string.website_settings_add_site_description_cookies_block
: R.string.website_settings_add_site_description_cookies_allow;
}
@ -435,7 +437,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
assert resource > 0;
return getString(resource);
@@ -704,6 +725,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -682,6 +703,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES) && mRequiresFourStateSetting) {
setting = cookieSettingsExceptionShouldBlock() ? ContentSettingValues.BLOCK
: ContentSettingValues.ALLOW;
@ -449,7 +451,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else {
setting = (WebsitePreferenceBridge.isCategoryEnabled(
browserContextHandle, mCategory.getContentSettingsType()))
@@ -761,6 +789,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -739,6 +767,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
&& !WebsitePreferenceBridge.isCategoryEnabled(
browserContextHandle, ContentSettingsType.AUTOMATIC_DOWNLOADS)) {
exception = true;
@ -458,7 +460,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
if (exception) {
getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(),
@@ -934,7 +964,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -912,7 +942,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
TriStateSiteSettingsPreference triStateToggle =
(TriStateSiteSettingsPreference) getPreferenceScreen().findPreference(
TRI_STATE_TOGGLE_KEY);
@ -474,7 +476,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else if (mRequiresFourStateSetting) {
FourStateCookieSettingsPreference fourStateCookieToggle =
(FourStateCookieSettingsPreference) getPreferenceScreen().findPreference(
@@ -962,6 +999,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -940,6 +977,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
FourStateCookieSettingsPreference fourStateCookieToggle =
(FourStateCookieSettingsPreference) screen.findPreference(
FOUR_STATE_COOKIE_TOGGLE_KEY);
@ -484,7 +486,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
Preference notificationsQuietUi = screen.findPreference(NOTIFICATIONS_QUIET_UI_TOGGLE_KEY);
@@ -979,17 +1019,27 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -957,17 +997,27 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
screen.removePreference(binaryToggle);
screen.removePreference(triStateToggle);
screen.removePreference(fourStateCookieToggle);
@ -513,7 +515,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureBinaryToggle(binaryToggle, contentType);
}
@@ -1002,6 +1052,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -980,6 +1030,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
ContentSettingsFeatureList.IMPROVED_COOKIE_CONTROLS))) {
screen.removePreference(screen.findPreference(COOKIE_INFO_TEXT_KEY));
}
@ -523,7 +525,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (hideSecondaryToggles) {
screen.removePreference(thirdPartyCookies);
@@ -1132,6 +1185,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -1103,6 +1156,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
triStateToggle.initialize(setting, descriptionIds);
}
@ -550,51 +552,34 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
};
private static final int REQUEST_CODE_NOTIFICATION_CHANNEL_SETTINGS = 1;
@@ -750,6 +751,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
@@ -750,6 +751,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
setUpPreferenceCommon(preference);
ListPreference listPreference = (ListPreference) preference;
+ int index = (value == ContentSettingValues.ALLOW ? 0 : 1);
if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.COOKIES) {
CharSequence[] keys = new String[3];
CharSequence[] descriptions = new String[3];
@@ -764,7 +766,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
getString(ContentSettingsResources.getSiteSummary(ContentSettingValues.SESSION_ONLY));
listPreference.setEntryValues(keys);
listPreference.setEntries(descriptions);
- } else {
+ index = (value == ContentSettingValues.SESSION_ONLY ? 2 : (value == ContentSettingValues.ALLOW ? 0 : 1));
+ if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.TIMEZONE_OVERRIDE) {
+ CharSequence[] keys = new String[3];
+ keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW);
+ keys[1] = ContentSetting.toString(ContentSettingValues.ASK);
+ keys[2] = ContentSetting.toString(ContentSettingValues.BLOCK);
+ int[] descriptionsId = ContentSettingsResources.getTriStateSettingDescriptionIDs(ContentSettingsType.TIMEZONE_OVERRIDE);
+ CharSequence[] descriptions = new String[3];
+ descriptions[0] = getString(descriptionsId[0]);
+ descriptions[1] = getString(descriptionsId[1]);
+ descriptions[2] = getString(descriptionsId[2]);
+ listPreference.setEntryValues(keys);
+ listPreference.setEntries(descriptions);
+ int indexSelected = (value == ContentSettingValues.ASK ? 1 : (value == ContentSettingValues.ALLOW ? 0 : 2));
+ listPreference.setValueIndex(indexSelected);
+ return;
+ }
+ else if (getContentSettingsTypeFromPreferenceKey(preference.getKey()) == ContentSettingsType.TIMEZONE_OVERRIDE) {
+ CharSequence[] keys = new String[3];
+ keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW);
+ keys[1] = ContentSetting.toString(ContentSettingValues.ASK);
+ keys[2] = ContentSetting.toString(ContentSettingValues.BLOCK);
+ int[] descriptionsId = ContentSettingsResources.getTriStateSettingDescriptionIDs(ContentSettingsType.TIMEZONE_OVERRIDE);
+ CharSequence[] descriptions = new String[3];
+ descriptions[0] = getString(descriptionsId[0]);
+ descriptions[1] = getString(descriptionsId[1]);
+ descriptions[2] = getString(descriptionsId[2]);
+ listPreference.setEntryValues(keys);
+ listPreference.setEntries(descriptions);
+ index = (value == ContentSettingValues.ASK ? 1 : (value == ContentSettingValues.ALLOW ? 0 : 2));
+ }
+ else {
CharSequence[] keys = new String[2];
CharSequence[] descriptions = new String[2];
keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW);
@@ -780,7 +798,6 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
listPreference.setSummary(isEmbargoed ? getString(R.string.automatically_blocked) : "%s");
// TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are
// effectively treating non-ALLOW values as BLOCK.
- int index = (value == ContentSettingValues.SESSION_ONLY ? 2 : (value == ContentSettingValues.ALLOW ? 0 : 1));
listPreference.setValueIndex(index);
}
+
CharSequence[] keys = new String[2];
CharSequence[] descriptions = new String[2];
keys[0] = ContentSetting.toString(ContentSettingValues.ALLOW);
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
@@ -120,7 +120,7 @@ public class SiteSettings
@@ -111,7 +111,7 @@ public class SiteSettings
} else if (Type.SOUND == prefCategory && !checked) {
p.setSummary(ContentSettingsResources.getSoundBlockedListSummary());
} else if (requiresTriStateSetting) {
@ -973,7 +958,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
<!-- Site settings global toggles -->
@@ -468,6 +471,38 @@
@@ -462,6 +465,38 @@
Block sites from playing protected content
</message>