[cr149][WIP][Android] Sync code in removed from ManageSyncSettings

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/008e21eee2ca1b4d967a68367121423f6e411e2b

commit 008e21eee2ca1b4d967a68367121423f6e411e2b
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date:   Mon Apr 20 04:59:40 2026 -0700

    [sync/android] Remove sync-the-feature code in ManageSyncSettings

    kForceMigrateSyncingUserToSignedIn was enabled by default on Android
    in M148.

    OBSOLETE_HISTOGRAMS=The sync error card was removed, along with its histograms.

    Bug: 40066949
    Change-Id: I8317957d3ad7cdeecaac415a11a2974af90d65d4
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7772912
    Reviewed-by: Ankush Singh <ankushkush@google.com>
    Reviewed-by: Marc Treib <treib@chromium.org>
    Commit-Queue: Victor Vianna <victorvianna@google.com>
    Auto-Submit: Victor Vianna <victorvianna@google.com>
    Cr-Commit-Position: refs/heads/main@{#1617409}
This commit is contained in:
Artem Samoilenko
2026-05-22 16:25:08 -04:00
committed by Max Karolinskiy
parent b42e1d7584
commit 9a7833bd45
9 changed files with 61 additions and 193 deletions
@@ -41,7 +41,6 @@ public class BraveLicensePreferences extends BravePreferenceFragment {
assert R.string.chrome_additional_terms_of_service_title > 0
: "Something has changed in the upstream!";
assert R.string.google_privacy_policy_url > 0 : "Something has changed in the upstream!";
assert R.string.sync_reading_list > 0 : "Something has changed in the upstream!";
SettingsUtils.addPreferencesFromResource(this, R.xml.brave_license_preferences);
mPageTitle.set(getString(R.string.brave_license_text));
@@ -241,7 +241,6 @@ public abstract class BraveMainPreferencesBase extends BravePreferenceFragment
removePreferenceIfPresent(PREF_PRIVACY);
removePreferenceIfPresent(PREF_BRAVE_VPN_CALLOUT);
removePreferenceIfPresent(MainSettings.PREF_SETTINGS_PROMO_CARD);
removePreferenceIfPresent(MainSettings.PREF_MANAGE_SYNC);
if (!ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_PLAYLIST)) {
removePreferenceIfPresent(PREF_BRAVE_PLAYLIST);
@@ -710,7 +709,6 @@ public abstract class BraveMainPreferencesBase extends BravePreferenceFragment
indexData.removeEntry(getUniqueId(MainSettings.PREF_DOWNLOADS));
indexData.removeEntry(getUniqueId(MainSettings.PREF_SAFETY_HUB));
indexData.removeEntry(getUniqueId(MainSettings.PREF_SETTINGS_PROMO_CARD));
indexData.removeEntry(getUniqueId(MainSettings.PREF_MANAGE_SYNC));
indexData.removeEntry(
getUniqueId(MainSettings.PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION));
indexData.removeEntry(getUniqueId(MainSettings.PREF_GOOGLE_SERVICES));
@@ -1211,7 +1211,7 @@ public class BraveSyncScreensPreference extends BravePreferenceFragment
if (isSyncStateChangedObserverPaused()) {
return;
}
if (!SyncServiceFactory.getForProfile(getProfile()).isInitialSyncFeatureSetupComplete()) {
if (!getBraveSyncWorker().isInitialSyncFeatureSetupComplete()) {
if (mLeaveSyncChainInProgress) {
leaveSyncChainComplete();
} else {
@@ -20,6 +20,9 @@ import androidx.preference.Preference;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.supplier.MonotonicObservableSupplier;
import org.chromium.base.supplier.ObservableSuppliers;
import org.chromium.base.supplier.SettableMonotonicObservableSupplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.password_manager.settings.ReauthenticationManager;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
@@ -33,13 +36,10 @@ import java.util.TimerTask;
public class BraveManageSyncSettings extends ManageSyncSettings {
private static final String TAG = "BMSS";
private static final String PREF_ADVANCED_CATEGORY = "advanced_category";
private Preference mGoogleActivityControls;
private Preference mSyncEncryption;
private ChromeSwitchPreference mPrefSyncPasswords;
private ChromeSwitchPreference mSyncEverything;
private BravePasswordAccessReauthenticationHelper mReauthenticationHelper;
@@ -49,6 +49,17 @@ public class BraveManageSyncSettings extends ManageSyncSettings {
private static final String VERBOSE_SYNC_PASSWORDS_PREF_COMMAND_LINE_KEY =
"verbose_sync_passwords_pref";
// Mirrors ManageSyncSettings.PREF_CENTRAL_ACCOUNT_CARD_PREFERENCE (private there)
private static final String PREF_CENTRAL_ACCOUNT_CARD_PREFERENCE = "central_account_card";
// Keys not exposed as public constants in ManageSyncSettings
private static final String PREF_ACCOUNT_SECTION_HEADER = "account_section_header";
private static final String PREF_ACCOUNT_SECTION_FOOTER = "account_section_footer";
private static final String PREF_ACCOUNT_ADVANCED_HEADER = "account_advanced_header";
private final SettableMonotonicObservableSupplier<String> mBravePageTitle =
ObservableSuppliers.createMonotonic();
// Android Runtime for Chrome
public static final String ARC_FEATURE = "org.chromium.arc";
public static final String ARC_DEVICE_MANAGEMENT_FEATURE = "org.chromium.arc.device_management";
@@ -61,61 +72,57 @@ public class BraveManageSyncSettings extends ManageSyncSettings {
Log.i(TAG, message);
}
@Override
public MonotonicObservableSupplier<String> getPageTitle() {
return mBravePageTitle;
}
@VisibleForTesting
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
super.onCreatePreferences(savedInstanceState, rootKey);
mBravePageTitle.set(getString(R.string.sync_category_title));
if (CommandLine.getInstance().hasSwitch(VERBOSE_SYNC_PASSWORDS_PREF_COMMAND_LINE_KEY)) {
mVerboseSyncPasswordsPref = true;
}
Preference reviewSyncData = findPreference(PREF_SYNC_REVIEW_DATA);
assert reviewSyncData != null : "Something has changed in the upstream!";
if (reviewSyncData != null) {
getPreferenceScreen().removePreference(reviewSyncData);
}
Preference turnOffSync = findPreference(PREF_TURN_OFF_SYNC);
assert turnOffSync != null : "Something has changed in the upstream!";
if (turnOffSync != null) {
getPreferenceScreen().removePreference(turnOffSync);
}
Preference syncReadingList = findPreference(PREF_SYNC_READING_LIST);
assert syncReadingList != null : "Something has changed in the upstream!";
if (syncReadingList != null) {
syncReadingList.setVisible(false);
}
Preference syncAutofill = findPreference(PREF_SYNC_AUTOFILL);
assert syncAutofill != null : "Something has changed in the upstream!";
if (syncAutofill != null) {
syncAutofill.setTitle(R.string.brave_sync_autofill);
}
assert mSyncEverything != null : "Something has changed in the upstream!";
getPreferenceScreen().removePreference(mGoogleActivityControls);
getPreferenceScreen().removePreference(mSyncEncryption);
findPreference(PREF_ADVANCED_CATEGORY).setVisible(false);
// Remove Google-specific preferences not needed for Brave Sync
removePreferenceByKey(PREF_CENTRAL_ACCOUNT_CARD_PREFERENCE);
removePreferenceByKey(PREF_ACCOUNT_DATA_DASHBOARD);
removePreferenceByKey(PREF_SIGN_OUT);
removePreferenceByKey(PREF_MANAGE_YOUR_GOOGLE_ACCOUNT);
removePreferenceByKey(PREF_ACCOUNT_ANDROID_DEVICE_ACCOUNTS);
removePreferenceByKey(PREF_BATCH_UPLOAD_CARD_PREFERENCE);
removePreferenceByKey(PREF_IDENTITY_ERROR_CARD_PREFERENCE);
removePreferenceByKey(PREF_ACCOUNT_SECTION_HEADER);
removePreferenceByKey(PREF_ACCOUNT_SECTION_FOOTER);
removePreferenceByKey(PREF_ACCOUNT_ADVANCED_HEADER);
Preference prefReadingList = findPreference(PREF_ACCOUNT_SECTION_READING_LIST_TOGGLE);
if (prefReadingList != null) prefReadingList.setVisible(false);
Preference syncPaymentsIntegration = findPreference(PREF_SYNC_PAYMENTS_INTEGRATION);
assert syncPaymentsIntegration != null : "Something has changed in the upstream!";
if (syncPaymentsIntegration != null) {
syncPaymentsIntegration.setVisible(false);
Preference prefPayments = findPreference(PREF_ACCOUNT_SECTION_PAYMENTS_TOGGLE);
if (prefPayments != null) prefPayments.setVisible(false);
Preference prefAutofill = findPreference(PREF_ACCOUNT_SECTION_ADDRESSES_TOGGLE);
if (prefAutofill != null) prefAutofill.setTitle(R.string.brave_sync_autofill);
mPrefSyncPasswords =
(ChromeSwitchPreference) findPreference(PREF_ACCOUNT_SECTION_PASSWORDS_TOGGLE);
if (!isRunningOnChromeOS() && mPrefSyncPasswords != null) {
overrideWithAuthConfirmation(mPrefSyncPasswords);
}
updateSyncPasswordsSummary();
}
mPrefSyncPasswords = findPreference(PREF_SYNC_PASSWORDS);
assert mPrefSyncPasswords != null : "Something has changed in the upstream!";
// We cannot require Android screenlock if browser runs at ChromeOS
// Google App Runtime emulator, because it is managed by ChromeOS and
// not by the Android subsystem
if (!isRunningOnChromeOS()) {
overrideWithAuthConfirmationSyncPasswords();
overrideWithAuthConfirmationSyncEverything();
private void removePreferenceByKey(String key) {
Preference pref = findPreference(key);
if (pref != null) {
getPreferenceScreen().removePreference(pref);
}
}
@@ -141,14 +148,6 @@ public class BraveManageSyncSettings extends ManageSyncSettings {
.show();
}
private void overrideWithAuthConfirmationSyncPasswords() {
overrideWithAuthConfirmation(mPrefSyncPasswords);
}
private void overrideWithAuthConfirmationSyncEverything() {
overrideWithAuthConfirmation(mSyncEverything);
}
private void overrideWithAuthConfirmation(ChromeSwitchPreference control) {
Preference.OnPreferenceChangeListener origSyncListner =
control.getOnPreferenceChangeListener();
@@ -263,6 +262,7 @@ public class BraveManageSyncSettings extends ManageSyncSettings {
}
private void updateSyncPasswordsSummary() {
if (mPrefSyncPasswords == null) return;
if (ReauthenticationManager.isScreenLockSetUp(ContextUtils.getApplicationContext())) {
verboseIfEnabled("updateSyncPasswordsSummary: screen lock is set up");
if (ReauthenticationManager.authenticationStillValid(
@@ -1,115 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2020 The Brave Authors. All rights reserved.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this file,
You can obtain one at https://mozilla.org/MPL/2.0/. -->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<org.chromium.chrome.browser.sync.settings.SyncErrorCardPreference
android:key="sync_error_card"
app:isPreferenceVisible="false"/>
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
android:key="sync_everything"
android:title="@string/sync_everything_pref"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_autofill"
android:title="@string/sync_autofill"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_bookmarks"
android:title="@string/sync_bookmarks"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_extensions"
android:title="@string/sync_extensions"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_payments_integration"
android:title="@string/sync_payments_integration"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_history"
android:title="@string/sync_history"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_passwords"
android:title="@string/sync_passwords"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_reading_list"
android:title="@string/sync_reading_list"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_recent_tabs"
android:title="@string/sync_recent_tabs"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_settings"
android:title="@string/sync_settings"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference
android:key="sync_apps"
android:title="@string/sync_apps"
android:persistent="false"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference
android:key="turn_off_sync"
android:title="@string/sign_out_and_turn_off_sync"
android:icon="@drawable/ic_signout_40dp"
app:isPreferenceVisible="false"/>
<PreferenceCategory
android:key="advanced_category"
android:title="@string/prefs_section_advanced"
app:isPreferenceVisible="false"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference
android:key="google_activity_controls"
android:title="@string/sign_in_personalize_google_services_title"
android:summary="@string/sign_in_personalize_google_services_summary"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference
android:key="encryption"
android:title="@string/sync_encryption"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference
android:key="sync_review_data"
android:title="@string/sync_review_data"/>
<!--
This is a stub preference to avoid
java.lang.NullPointerException: Attempt to invoke virtual method
'void org.chromium.components.browser_ui.settings.ChromeSwitchPreference.setChecked(boolean)'
on a null object reference
at ManageSyncSettings.setupUrlKeyedAnonymizedDataPreference(ManageSyncSettings.java:633)
at ManageSyncSettings.setupSyncSettings(ManageSyncSettings.java:542)
at ManageSyncSettings.onCreatePreferences(ManageSyncSettings.java:250)
at BraveManageSyncSettings.onCreatePreferences(BraveManageSyncSettings.java:67)
-->
<PreferenceCategory
android:key="search_and_browse_category"
android:title="search_and_browse_category"
app:isPreferenceVisible="false">
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
android:key="url_keyed_anonymized_data"
android:title="url_keyed_anonymized_data_title"
android:summary="url_keyed_anonymized_data_summary"/>
</PreferenceCategory>
</PreferenceScreen>
@@ -2371,11 +2371,6 @@ public class BytecodeTest {
"org/chromium/chrome/browser/sync/settings/ManageSyncSettings",
"mSyncEncryption"));
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/sync/settings/ManageSyncSettings",
"mSyncEverything"));
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator",
@@ -50,20 +50,18 @@ public class BraveManageSyncSettingsTest {
@Test
@SmallTest
@Feature({"Sync"})
public void syncEverythingOrPasswordsHandlerIsOriginalOnChromeOS() {
syncEverythingOrPasswordsOverridden(true, false);
public void syncPasswordsHandlerIsOriginalOnChromeOS() {
syncPasswordsOverridden(true, false);
}
@Test
@SmallTest
@Feature({"Sync"})
public void syncEverythingOrPasswordsHandlerOverriddenOnNonChromeOS() {
syncEverythingOrPasswordsOverridden(false, true);
public void syncPasswordsHandlerOverriddenOnNonChromeOS() {
syncPasswordsOverridden(false, true);
}
void syncEverythingOrPasswordsOverridden(
Boolean isChromeOS, Boolean handlerShouldBeOverridden) {
void syncPasswordsOverridden(Boolean isChromeOS, Boolean handlerShouldBeOverridden) {
setupMockSyncService();
// The next line triggers presubmit warning
@@ -85,21 +83,14 @@ public class BraveManageSyncSettingsTest {
BraveManageSyncSettings fragment = startManageSyncPreferences();
ChromeSwitchPreference prefSyncPasswords =
fragment.findPreference(ManageSyncSettings.PREF_SYNC_PASSWORDS);
ChromeSwitchPreference syncEverything =
fragment.findPreference(ManageSyncSettings.PREF_SYNC_EVERYTHING);
fragment.findPreference(ManageSyncSettings.PREF_ACCOUNT_SECTION_PASSWORDS_TOGGLE);
Preference.OnPreferenceChangeListener origSyncPasswordsListner =
prefSyncPasswords.getOnPreferenceChangeListener();
Preference.OnPreferenceChangeListener origSyncEverythingListner =
syncEverything.getOnPreferenceChangeListener();
Assert.assertEquals(
handlerShouldBeOverridden,
origSyncPasswordsListner != (Preference.OnPreferenceChangeListener) fragment);
Assert.assertEquals(
handlerShouldBeOverridden,
origSyncEverythingListner != (Preference.OnPreferenceChangeListener) fragment);
}
private BraveManageSyncSettings startManageSyncPreferences() {
@@ -3949,6 +3949,9 @@ If you don't accept this request, VPN will not reconnect and your internet conne
<message name="IDS_SAVE_CHANGES_ACTION_TEXT" desc="Save changes action text">
Save changes
</message>
<message name="IDS_SYNC_CATEGORY_TITLE" desc="Title for the Brave Sync settings page.">
Sync
</message>
</messages>
</release>
</grit>
@@ -24,8 +24,5 @@ public class BraveManageSyncSettingsClassAdapter extends BraveClassVisitor {
deleteField(sBraveManageSyncSettingsClassName, "mSyncEncryption");
makeProtectedField(sManageSyncSettingsClassName, "mSyncEncryption");
deleteField(sBraveManageSyncSettingsClassName, "mSyncEverything");
makeProtectedField(sManageSyncSettingsClassName, "mSyncEverything");
}
}