[Webkit-unassigned] [Bug 112418] New: [GTK][WK2] Load get stuck in webkit_web_view_go_back()

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Mar 15 01:49:27 PDT 2013


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

           Summary: [GTK][WK2] Load get stuck in webkit_web_view_go_back()
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: rego at igalia.com
                CC: xan.lopez at gmail.com, mrobinson at webkit.org,
                    cgarcia at igalia.com


To reproduce the issue you can do the following steps in Minibrowser:
1) Go to http://www.igalia.com
2) Go to http://www.webkit.org
3) Go to http://www.igalia.com
4) Go to http://www.webkit.org
5) Click back button

If you add a listener to "load-changed" signal, you'll see that in the first 4 cases you receive the signal 3 times for each one with status: WEBKIT_LOAD_STARTED, WEBKIT_LOAD_COMMITTED and WEBKIT_LOAD_FINISHED.

However when you click back you'll only get the signal 1 time with status: WEBKIT_LOAD_STARTED.

Then if you load a different page, you'll get the signal 5 times. The 2 pending (WEBKIT_LOAD_COMMITTED and WEBKIT_LOAD_FINISHED) and the normal ones (WEBKIT_LOAD_STARTED, WEBKIT_LOAD_COMMITTED and WEBKIT_LOAD_FINISHED).

I'm only able to reproduce it in the tests using a custom scheme URI, for example the following diff will get stuck, as the load after webkit_web_view_go_back() never finishes:
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
index 185c06c..9793f68 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
@@ -179,6 +179,14 @@ static void testWebContextURIScheme(URISchemeTest* test, gconstpointer)
     test->registerURISchemeHandler("foo", kBarHTML, strlen(kBarHTML), "text/html");
     test->loadURI("foo:blank");
     test->waitUntilLoadFinished();
+    test->loadURI("foo:other");
+    test->waitUntilLoadFinished();
+    test->loadURI("foo:blank");
+    test->waitUntilLoadFinished();
+    test->loadURI("foo:other");
+    test->waitUntilLoadFinished();
+    webkit_web_view_go_back(test->m_webView);
+    test->waitUntilLoadFinished();
     size_t mainResourceDataSize = 0;
     const char* mainResourceData = test->mainResourceData(mainResourceDataSize);
     g_assert_cmpint(mainResourceDataSize, ==, strlen(kBarHTML));

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list