[Webkit-unassigned] [Bug 182846] New: WebKit 2.18.6 get's stuck/hang sometimes when clicking back button

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Feb 15 15:56:50 PST 2018


https://bugs.webkit.org/show_bug.cgi?id=182846

            Bug ID: 182846
           Summary: WebKit 2.18.6 get's stuck/hang sometimes when clicking
                    back button
           Product: WebKit
           Version: WebKit Local Build
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: Major
          Priority: P2
         Component: History
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: sfroberg13 at yahoo.com

Created attachment 333962

  --> https://bugs.webkit.org/attachment.cgi?id=333962&action=review

Gentoo WebKit 2.18.6 configure log

Hello

I built WebKit 2.18.6 on 64-bit Gentoo and tried it with the following little test code, webkit2test.c.


Build:

gcc -o test `pkg-config --cflags gtk+-3.0 webkit2gtk-4.0` webkit2test.c  -lwebkit2gtk-4.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -ljavascriptcoregtk-4.0 -lglib-2.0


Testing:

./test https://encrypted.google.com

Then some search of wikipedia articles and some random surfing on it's pages. Everything okay so far.

However, sometimes, it get's stuck when selecting the "Back" option from the right-clicked context menu. 

Nothing happens and trying to resize the window just paints it blank and I have to restart the test program again.
Clicking "Forward" from the context menu does not seem to stuck it, only when sometimes clicking "Back". 
And if I go back all the way to the first page (a.k.a. https://encrypted.google.com) then it get's stuck for 100% sure.

Attached is gentoo configure log.


And here is the test program:

#include <gio/gio.h>
#include <gtk/gtk.h>
#include <webkit2/webkit2.h>


static void destroyWindowCb(GtkWidget* widget, GtkWidget* window);
static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window);
static void     changedCb(WebKitBackForwardList     *back_forward_list, WebKitBackForwardListItem *item_added, gpointer items_removed, gpointer  user_data);


int main(int argc, char* argv[])
{
    // Initialize GTK+
    gtk_init(&argc, &argv);

    // Create an 800x600 window that will contain the browser instance
    GtkWidget *main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(main_window), 800, 600);

    // Create a browser instance
    WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new());

    // Put the browser area into the main window
    gtk_container_add(GTK_CONTAINER(main_window), GTK_WIDGET(webView));

    // Set up callbacks so that if either the main window or the browser instance is
    // closed, the program will exit
    g_signal_connect(main_window, "destroy", G_CALLBACK(destroyWindowCb), NULL);
    g_signal_connect(webView, "close", G_CALLBACK(closeWebViewCb), main_window);

    // Load a web page into the browser instance
    webkit_web_view_load_uri(webView, argv[1]);

    // Make sure that when the browser area becomes visible, it will get mouse
    // and keyboard events
    gtk_widget_grab_focus(GTK_WIDGET(webView));

    // Make sure the main window and all its contents are visible
    gtk_widget_show_all(main_window);


    WebKitBackForwardList* list = webkit_web_view_get_back_forward_list(webView);

    g_signal_connect(list,"changed", G_CALLBACK(changedCb),NULL);

    // Run the main GTK+ event loop
    gtk_main();

    return 0;
}


static void destroyWindowCb(GtkWidget* widget, GtkWidget* window)
{
    gtk_main_quit();
}

static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window)
{
    gtk_widget_destroy(window);
    return TRUE;
}

static void     changedCb(WebKitBackForwardList     *back_forward_list, WebKitBackForwardListItem *item_added, gpointer items_removed, gpointer  user_data)
{
   printf("Items in list: %u\n",webkit_back_forward_list_get_length(back_forward_list));

}

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180215/ba18854a/attachment-0001.html>


More information about the webkit-unassigned mailing list