Restore chrome password store: fixes the use of the browser password store in Android (#2275)

This commit is contained in:
Carmelo Messina
2025-08-20 09:51:43 +02:00
parent 7fe8f0cac8
commit 2035735bbb
@@ -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
<intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
<category android:name="android.intent.category.DEFAULT" />
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)
--