$ Programs/WebKit2APITests/TestLoaderClient -p /webkit2/WebKitWebPage/get-uri ERROR:../../usr/local/devel/WebKit/Source/WebKit2/UIProcess/API/gtk/tests/TestLoaderClient.cpp:344:void testWebPageURI(WebPageURITest*, gconstpointer): assertion failed (test->m_webPageURIs.size() == test->m_webViewURIs.size()): (0 == 2) m_webPageURIs is enlarged in the WebKitWebExtension::page-created callback. The problem is that this signal is emitted before its handler is registered in busAcquiredCallback(). This doesn't happen in a normal execution because there's time for the bus to be acquired before this particular test (which is almost the last one) is run.
This fails all the time if TestLoaderClient is run with the network process enabled. The reason for this is that after each test the web process is terminated: void WebProcessProxy::removeWebPage(uint64_t pageID) { [...] // If this was the last WebPage open in that web process, and we have no other reason to keep it alive, let it go. // We only allow this when using a network process, as otherwise the WebProcess needs to preserve its session state. if (m_context->usesNetworkProcess() && canTerminateChildProcess()) { abortProcessLaunchIfNeeded(); disconnect(); } } Because of this there's a new web process for each test and the bug is hit all the time.
This has already been fixed in r160904.