From c3ac8905c2bf695fa75fa2db36ba0eacea167715 Mon Sep 17 00:00:00 2001 From: haanhvu Date: Mon, 3 Feb 2025 16:53:08 +0700 Subject: [PATCH] Chromium: Make password saving option independent from autofill option in Privacy settings Currently in Privacy settings in Chromium backend, the password saving option depends on the autofill option. If autofill is disabled, password saving doesn't work whether enabled or not. This is because Chromium doesn't provide an autofill option but provides a login selection prompt that asks users whether to autofill the saved password or not. This commit makes password saving option independent from autofill option. The autofill option now only affects whether to show login selection prompt. Fixes #1707 --- .../browser/api/impl/PromptDelegateImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/common/chromium/com/igalia/wolvic/browser/api/impl/PromptDelegateImpl.java b/app/src/common/chromium/com/igalia/wolvic/browser/api/impl/PromptDelegateImpl.java index 39d8a84d68..0daae20655 100644 --- a/app/src/common/chromium/com/igalia/wolvic/browser/api/impl/PromptDelegateImpl.java +++ b/app/src/common/chromium/com/igalia/wolvic/browser/api/impl/PromptDelegateImpl.java @@ -958,6 +958,8 @@ public class AutocompleteBridge implements PasswordManager.Bridge, AutofillManag private LoginSavePrompt mLoginSavePrompt; private LoginSelectPrompt mLoginSelectPrompt; + private boolean showLoginSelectPrompt; + public void setListener(PasswordManager.Listener listener) { mPasswordManagerListener = listener; } @@ -973,7 +975,11 @@ public boolean isAutocompleteEnabled(Context context) { @Override public boolean isAutoFillEnabled(Context context) { - return SettingsStore.getInstance(context).isAutoFillEnabled(); + // Chromium doesn't provide an autofill option. + // Instead, it provides a login selection prompt that let users decide whether to autofill the saved password or not. + // We'll only show this prompt if users enable autofill. + showLoginSelectPrompt = SettingsStore.getInstance(context).isAutoFillEnabled(); + return true; } @Override @@ -1011,6 +1017,10 @@ public boolean saveOrUpdatePassword(PasswordForm form) { @Override public boolean onLoginSelect(PasswordForm[] forms) { + if (!showLoginSelectPrompt) { + return false; + } + dismiss(); assert mPasswordManagerListener != null; @@ -1038,6 +1048,10 @@ public boolean onLoginSelect(PasswordForm[] forms) { @Override public boolean onLoginSelect(String[] username) { + if (!showLoginSelectPrompt) { + return false; + } + dismiss(); assert mAutofillManagerListener != null;