[webkit-reviews] review denied: [Bug 246852] [GTK] Crash on authentication dialog with GTK 4 : [Attachment 463425] fix-gtk4-auth-dialog-crashes.-take-one.patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 15 06:33:58 PST 2022


Michael Catanzaro <mcatanzaro at gnome.org> has denied Michael Catanzaro
<mcatanzaro at gnome.org>'s request for review:
Bug 246852: [GTK] Crash on authentication dialog with GTK 4
https://bugs.webkit.org/show_bug.cgi?id=246852

Attachment 463425: fix-gtk4-auth-dialog-crashes.-take-one.patch

https://bugs.webkit.org/attachment.cgi?id=463425&action=review




--- Comment #10 from Michael Catanzaro <mcatanzaro at gnome.org> ---
Comment on attachment 463425
  --> https://bugs.webkit.org/attachment.cgi?id=463425
fix-gtk4-auth-dialog-crashes.-take-one.patch

View in context: https://bugs.webkit.org/attachment.cgi?id=463425&action=review

OK, you're on the right track here. Thanks for your patch. Besides fixing the
style bot and rewriting the commit message, there are some more things to
change....

> Source/WebKit/UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:69
> -    bool rememberPassword =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->rememberCheckButton));
> +    bool rememberPassword =
> +#if USE(GTK4)
> +	  
gtk_check_button_get_active(GTK_CHECK_BUTTON(priv->rememberCheckButton))
> +#else
> +	  
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->rememberCheckButton))
> +#endif
> +	   ;

Good change, but style nit; let's avoid breaking statements or control with
preprocessor guards; instead, just duplicate a small amount of code.

#if USE(GTK4)
    bool rememberPassword =
gtk_check_button_get_active(GTK_CHECK_BUTTON(priv->rememberCheckButton));
#else
    bool rememberPassword =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->rememberCheckButton));
#endif

It's easier to read this way, and you're only duplicating the "bool
rememberPassword =" and the semicolon, which is hardly a big deal.

> Source/WebKit/UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:194
> +    // ;madhu 221105 Gtk4 creates a checkbutton with a `label'
> +    // property. Don't try to set linewrap on a non-existent label in
> +    // that case.
> +    GtkWidget *tmplabel =
gtk_check_button_get_child(GTK_CHECK_BUTTON(priv->rememberCheckButton));
> +    if (tmplabel)
> +	   gtk_label_set_line_wrap(GTK_LABEL(tmplabel), TRUE);

So the problem here is gtk_check_button_get_child() returns nullptr? Presumably
it always returns nullptr, so the `if (tmplable)` is designed to catch a case
that will never be hit, correct? Looks like this code here just needs to be
removed or replaced with some other way of doing things.

> Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:1863
> +// ;madhu 221105 focus is not a valid signal for a Dialog Window in gtk4.
use move-focus instead

Please remove all your personal comments, as they don't belong in the final
version of the code.

> Source/WebKit/UIProcess/API/gtk/WebKitWebViewDialog.cpp:128
> +//;madhu 221105
> +    gtk_widget_set_can_focus(GTK_WIDGET(object), TRUE);

Style nit: add an extra blank line here.

BTW you know this is a GTK 3 block, right? Why are you changing this for GTK 3?


More information about the webkit-reviews mailing list