From 2035735bbb60c87ff138d51aef5134fc9fdf1fd5 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 20 Aug 2025 09:51:43 +0200 Subject: [PATCH] Restore chrome password store: fixes the use of the browser password store in Android (#2275) --- .../Restore-chrome-password-store.patch | 83 ++++++++++++++++--- 1 file changed, 71 insertions(+), 12 deletions(-) diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 7e6b4449..0f6a05da 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -4,17 +4,20 @@ Subject: Restore chrome password store License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/android/java/AndroidManifest.xml | 5 ++--- - .../chrome/browser/autofill/AutofillClientProviderUtils.java | 1 + - .../access_loss/AccessLossWarningMetricsRecorder.java | 1 + - .../android/login_db_deprecation_runner_factory.cc | 2 +- - chrome/browser/ui/android/strings/android_chrome_strings.grd | 2 +- - components/autofill/core/common/autofill_features.cc | 1 + - components/password_manager/core/browser/buildflags.gni | 2 +- - .../core/browser/features/password_manager_features_util.cc | 1 + - components/sync/service/sync_prefs.cc | 2 +- - .../password_features_cc/Restore-chrome-password-store.inc | 1 + - 10 files changed, 11 insertions(+), 7 deletions(-) + chrome/android/java/AndroidManifest.xml | 5 ++--- + .../chrome/browser/settings/MainSettings.java | 20 +++++++++---------- + .../autofill/AutofillClientProviderUtils.java | 1 + + .../AccessLossWarningMetricsRecorder.java | 1 + + .../settings/PasswordsPreference.java | 1 + + .../login_db_deprecation_runner_factory.cc | 2 +- + .../android/password_manager_android_util.cc | 1 + + .../strings/android_chrome_strings.grd | 2 +- + .../autofill/core/common/autofill_features.cc | 1 + + .../core/browser/buildflags.gni | 2 +- + .../password_manager_features_util.cc | 1 + + components/sync/service/sync_prefs.cc | 2 +- + .../Restore-chrome-password-store.inc | 5 +++++ + 13 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 cromite_flags/components/password_manager/core/browser/features/password_features_cc/Restore-chrome-password-store.inc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml @@ -33,6 +36,36 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +@@ -473,16 +473,16 @@ public class MainSettings extends ChromeBaseSettingsFragment + getActivity())); + PasswordsPreference passwordsPreference = findPreference(PREF_PASSWORDS); + passwordsPreference.setProfile(getProfile()); +- passwordsPreference.setOnPreferenceClickListener( +- preference -> { +- PasswordManagerLauncher.showPasswordSettings( +- getActivity(), +- getProfile(), +- ManagePasswordsReferrer.CHROME_SETTINGS, +- mModalDialogManagerSupplier, +- /* managePasskeys= */ false); +- return true; +- }); ++ // passwordsPreference.setOnPreferenceClickListener( ++ // preference -> { ++ // PasswordManagerLauncher.showPasswordSettings( ++ // getActivity(), ++ // getProfile(), ++ // ManagePasswordsReferrer.CHROME_SETTINGS, ++ // mModalDialogManagerSupplier, ++ // /* managePasskeys= */ false); ++ // return true; ++ // }); + + // This is temporary code needed for migrating people to UPM. With UPM there is no + // longer passwords setting page in Chrome, so we need to ask users to export their diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java @@ -55,6 +88,17 @@ diff --git a/chrome/browser/password_manager/android/access_loss/java/src/org/ch RecordHistogram.recordEnumeratedHistogram( getExportFlowFinalStepHistogramName(warningType), exportStep, +diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordsPreference.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordsPreference.java +--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordsPreference.java ++++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordsPreference.java +@@ -97,6 +97,7 @@ public class PasswordsPreference extends ChromeBasePreference implements Profile + } + + private void setUpPostDeprecationWarning(PreferenceViewHolder holder, PrefService prefService) { ++ if ((true)) return; + assert mProfile != null : "Profile is not set!"; + + boolean isPasswordManagerAvailable = diff --git a/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc b/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc --- a/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc +++ b/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc @@ -67,6 +111,17 @@ diff --git a/chrome/browser/password_manager/android/login_db_deprecation_runner #else Profile* profile = Profile::FromBrowserContext(context); PrefService* prefs = profile->GetPrefs(); +diff --git a/chrome/browser/password_manager/android/password_manager_android_util.cc b/chrome/browser/password_manager/android/password_manager_android_util.cc +--- a/chrome/browser/password_manager/android/password_manager_android_util.cc ++++ b/chrome/browser/password_manager/android/password_manager_android_util.cc +@@ -67,6 +67,7 @@ enum class ActivationError { + bool g_last_migration_attempt_failed = false; + + bool HasMinGmsVersionForFullUpmSupport() { ++ if ((true)) return false; + std::string gms_version_str = + base::android::BuildInfo::GetInstance()->gms_version_code(); + int gms_version = 0; diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -129,6 +184,10 @@ diff --git a/cromite_flags/components/password_manager/core/browser/features/pas new file mode 100644 --- /dev/null +++ b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Restore-chrome-password-store.inc -@@ -0,0 +1 @@ +@@ -0,0 +1,5 @@ +SET_CROMITE_FEATURE_ENABLED(kSkipUndecryptablePasswords); ++ ++#if BUILDFLAG(IS_ANDROID) ++SET_CROMITE_FEATURE_DISABLED(kLoginDbDeprecationAndroid); ++#endif // BUILDFLAG(IS_ANDROID) --