Commit 7242e5fb authored by Xinghui Lu's avatar Xinghui Lu Committed by Commit Bot

Reorder preferences in Privacy section on Android.

Add a flag named "privacy-reordered-android" to control this layout
change. For more details on why these preferences are reordered, see:
go/ep-clank.

before: http://screen/gHQewPrMJK7
after: http://screen/RRSAYxS3K1y

Bug: 1097310
Change-Id: I9866d9fc62ea3decb5db6712c7cc47d2b4609459
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2340391
Commit-Queue: Xinghui Lu <xinghuilu@chromium.org>
Reviewed-by: default avatarNatalie Chouinard <chouinard@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarVarun Khaneja <vakh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#796183}
parent d5c373d1
......@@ -4,41 +4,50 @@
found in the LICENSE file. -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orderingFromXml="false">
<org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
android:key="can_make_payment"
android:title="@string/can_make_payment_title"
android:summary="@string/settings_can_make_payment_toggle_label" />
android:summary="@string/settings_can_make_payment_toggle_label"
android:order="0"/>
<org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference
android:key="preload_pages"
android:title="@string/preload_pages_title"
android:summary="@string/preload_pages_summary"
android:persistent="false" />
android:persistent="false"
android:order="1"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference
android:key="usage_stats_reporting"
android:title="@string/usage_stats_setting_title"
android:persistent="false" />
android:persistent="false"
android:order="2"/>
<Preference
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
android:key="do_not_track"
android:title="@string/do_not_track_title" />
android:title="@string/do_not_track_title"
android:order="3"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference
android:key="secure_dns"
android:title="@string/settings_secure_dns_title"
android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" />
android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"
android:order="4"/>
<Preference
android:key="clear_browsing_data"
android:title="@string/clear_browsing_data_title"
android:summary="@string/clear_browsing_data_summary"
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment" />
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment"
android:order="5"/>
<Preference
android:key="safe_browsing"
android:title="@string/prefs_safe_browsing_title"
android:summary="@string/prefs_safe_browsing_summary"
android:fragment="org.chromium.chrome.browser.safe_browsing.settings.SecuritySettingsFragment" />
android:fragment="org.chromium.chrome.browser.safe_browsing.settings.SecuritySettingsFragment"
android:order="6"/>
<org.chromium.components.browser_ui.settings.TextMessagePreference
android:key="sync_and_services_link"
android:summary="@string/privacy_sync_and_services_link"
app:allowDividerBelow="false" />
app:allowDividerBelow="false"
android:order="7"/>
</PreferenceScreen>
......@@ -47,6 +47,10 @@ public class PrivacySettings
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_SAFE_BROWSING = "safe_browsing";
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
PREF_SAFE_BROWSING, PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS, PREF_USAGE_STATS,
PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_SYNC_AND_SERVICES_LINK};
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
......@@ -55,6 +59,17 @@ public class PrivacySettings
PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
privacyPrefManager.migrateNetworkPredictionPreferences();
SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
assert NEW_PRIVACY_PREFERENCE_ORDER.length
== getPreferenceScreen().getPreferenceCount()
: "All preferences in the screen should be added in the new order list. "
+ "If you add a new preference, please also update "
+ "NEW_PRIVACY_PREFERENCE_ORDER.";
if (ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REORDERED_ANDROID)) {
for (int i = 0; i < NEW_PRIVACY_PREFERENCE_ORDER.length; i++) {
findPreference(NEW_PRIVACY_PREFERENCE_ORDER[i]).setOrder(i);
}
}
// If the flag for adding a "Security" section UI is enabled, a "Security" section will be
// added under this section and this section will be renamed to "Privacy and security".
......
......@@ -5309,6 +5309,11 @@ const FeatureEntry kFeatureEntries[] = {
{"privacy-elevated-android", flag_descriptions::kPrivacyElevatedAndroidName,
flag_descriptions::kPrivacyElevatedAndroidDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kPrivacyElevatedAndroid)},
{"privacy-reordered-android",
flag_descriptions::kPrivacyReorderedAndroidName,
flag_descriptions::kPrivacyReorderedAndroidDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kPrivacyReorderedAndroid)},
#endif
{"privacy-settings-redesign",
......
......@@ -3671,6 +3671,15 @@
],
"expiry_milestone": 89
},
{
"name": "privacy-reordered-android",
"owners": [
"vakh",
"xinghuilu",
"chrome-safebrowsing-core@google.com"
],
"expiry_milestone": 89
},
{
"name": "privacy-settings-redesign",
"owners": [
......
......@@ -1884,6 +1884,11 @@ const char kPrivacyElevatedAndroidDescription[] =
"Moves the Privacy section up to Basics and moves the Homepage one to "
" Advanced.";
const char kPrivacyReorderedAndroidName[] =
"Reorder settings in Privacy on Android";
const char kPrivacyReorderedAndroidDescription[] =
"Reorder settings in the Privacy settings page for better user experience.";
const char kPrivacySettingsRedesignName[] = "Privacy Settings Redesign";
const char kPrivacySettingsRedesignDescription[] =
"Redesign of the privacy settings card to make it more prominent and "
......
......@@ -1091,6 +1091,9 @@ extern const char kPrintSaveToDriveDescription[];
extern const char kPrivacyElevatedAndroidName[];
extern const char kPrivacyElevatedAndroidDescription[];
extern const char kPrivacyReorderedAndroidName[];
extern const char kPrivacyReorderedAndroidDescription[];
extern const char kPrivacySettingsRedesignName[];
extern const char kPrivacySettingsRedesignDescription[];
......
......@@ -86,6 +86,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&features::kOverscrollHistoryNavigation,
&features::kPredictivePrefetchingAllowedOnAllConnectionTypes,
&features::kPrivacyElevatedAndroid,
&features::kPrivacyReorderedAndroid,
&features::kPrioritizeBootstrapTasks,
&features::kQuietNotificationPrompts,
&features::kSafetyCheckAndroid,
......
......@@ -370,6 +370,7 @@ public abstract class ChromeFeatureList {
"PredictivePrefetchingAllowedOnAllConnectionTypes";
public static final String PRIORITIZE_BOOTSTRAP_TASKS = "PrioritizeBootstrapTasks";
public static final String PRIVACY_ELEVATED_ANDROID = "PrivacyElevatedAndroid";
public static final String PRIVACY_REORDERED_ANDROID = "PrivacyReorderedAndroid";
public static final String PROBABILISTIC_CRYPTID_RENDERER = "ProbabilisticCryptidRenderer";
public static final String QUERY_TILES_GEO_FILTER = "QueryTilesGeoFilter";
public static final String QUERY_TILES = "QueryTiles";
......
......@@ -572,6 +572,9 @@ const base::Feature kPrerenderFallbackToPreconnect{
#if defined(OS_ANDROID)
const base::Feature kPrivacyElevatedAndroid{"PrivacyElevatedAndroid",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kPrivacyReorderedAndroid{"PrivacyReorderedAndroid",
base::FEATURE_DISABLED_BY_DEFAULT};
#endif
// Whether to display redesign of the chrome privacy settings page
......
......@@ -368,6 +368,9 @@ extern const base::Feature kPrerenderFallbackToPreconnect;
#if defined(OS_ANDROID)
COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kPrivacyElevatedAndroid;
COMPONENT_EXPORT(CHROME_FEATURES)
extern const base::Feature kPrivacyReorderedAndroid;
#endif
COMPONENT_EXPORT(CHROME_FEATURES)
......
......@@ -40338,6 +40338,7 @@ from previous Chrome versions.
label="AutofillCreditCardLocalCardMigration:disabled"/>
<int value="-1634154256" label="ZeroSuggestRedirectToChrome:enabled"/>
<int value="-1633586675" label="TabModalJsDialog:enabled"/>
<int value="-1632828661" label="PrivacyReorderedAndroid:disabled"/>
<int value="-1631329950" label="ssl-version-max"/>
<int value="-1630419335" label="enable-download-notification"/>
<int value="-1626110605" label="WebBundles:disabled"/>
......@@ -43664,6 +43665,7 @@ from previous Chrome versions.
<int value="1920894670"
label="OmniboxPreserveDefaultMatchAgainstAsyncUpdate:enabled"/>
<int value="1923052799" label="CrostiniUseDlc:disabled"/>
<int value="1923780021" label="PrivacyReorderedAndroid:enabled"/>
<int value="1924192543" label="ProactiveTabFreezeAndDiscard:enabled"/>
<int value="1925627218" label="FullscreenToolbarReveal:disabled"/>
<int value="1926524951" label="SystemWebApps:disabled"/>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment