[pve-devel] [PATCH proxmox-widget-toolkit 1/3] fix #5588: notification: smtp: fix 'Authenticate' checkbox in Chromium

Michael Köppl m.koeppl at proxmox.com
Tue Jul 8 19:15:37 CEST 2025


Tested this on the latest master with both Chromium 137.0.7151.68 and
Firefox 139.0.1. Was able to reproduce the original issue #5588 on PBS
in Chromium before applying the patches.

Ensured that:
- the "Authenticate" checkbox stays unchecked in Chromium
- "Unchanged" is only shown as the empty text *with* authentication
activated
- the password field is actually empty upon creation of a new SMTP
target, instead of showing "Unchanged"

Did not notice anything off. The implementation looks good to me. I
spent a few minutes tinkering around with an alternative approach of
detecting whether the user had previously entered a password, but the
approach in 2/3 is works as expected and doesn't add unnecessary complexity.

Consider this:
Tested-by: Michael Köppl <m.koeppl at proxmox.com>
Reviewed-by: Michael Köppl <m.koeppl at proxmox.com>

On 6/27/25 14:13, Lukas Wagner wrote:
> When editing an SMTP endpoint that has no authentication settings, in
> Chromium-based browsers, the 'Authenticate' checkbox was ticked because
> of a race condition between the view-model default and the InputPanel
> logic setting the existing values for the endpoint. Explicitly setting
> the value in the view model in onSetValues seems to fix this reliably.
> 
> Tested on:
>   - Firefox 140
>   - Chromium 137
>   - Chrome 138
>   - Gnome Web (Webkit-based) 48
> 
> Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
> ---
>  src/panel/SmtpEditPanel.js | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/src/panel/SmtpEditPanel.js b/src/panel/SmtpEditPanel.js
> index df6e3b7..fd10b54 100644
> --- a/src/panel/SmtpEditPanel.js
> +++ b/src/panel/SmtpEditPanel.js
> @@ -196,10 +196,17 @@ Ext.define('Proxmox.panel.SmtpEditPanel', {
>      },
>  
>      onSetValues: function (values) {
> +        let me = this;
> +
>          values.authentication = !!values.username;
>          values.enable = !values.disable;
>          delete values.disable;
>  
> +        // Fix race condition in chromium-based browsers. Without this, the
> +        // 'Authenticate' remains ticked (the default value) if loading an
> +        // SMTP target without authentication.
> +        me.getViewModel().set('authentication', values.authentication);
> +
>          return values;
>      },
>  });





More information about the pve-devel mailing list