Diff
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog (207964 => 207965)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-10-27 09:24:22 UTC (rev 207964)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-10-27 09:25:36 UTC (rev 207965)
@@ -1,3 +1,20 @@
+2016-10-16 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] WebKitWebPage URI not updated after URI is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame
+ https://bugs.webkit.org/show_bug.cgi?id=163389
+
+ Reviewed by Michael Catanzaro.
+
+ Update the page URI also when the load is committed.
+
+ * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
+ (getDocumentLoaderURL):
+ (didStartProvisionalLoadForFrame):
+ (didReceiveServerRedirectForProvisionalLoadForFrame):
+ (didCommitLoadForFrame):
+ (webkitWebPageCreate):
+ (getProvisionalURLForFrame): Deleted.
+
2016-10-08 Emanuele Aina <emanuele.a...@collabora.com>
[GTK] Drop redundant wl_display_flush_clients() call
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp (207964 => 207965)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp 2016-10-27 09:24:22 UTC (rev 207964)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp 2016-10-27 09:25:36 UTC (rev 207965)
@@ -129,9 +129,9 @@
webFrameMap().remove(webFrame);
}
-static CString getProvisionalURLForFrame(WebFrame* webFrame)
+static CString getDocumentLoaderURL(DocumentLoader* documentLoader)
{
- DocumentLoader* documentLoader = webFrame->coreFrame()->loader().provisionalDocumentLoader();
+ ASSERT(documentLoader);
if (!documentLoader->unreachableURL().isEmpty())
return documentLoader->unreachableURL().string().utf8();
@@ -158,7 +158,7 @@
if (!WKBundleFrameIsMainFrame(frame))
return;
- webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getProvisionalURLForFrame(toImpl(frame)));
+ webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getDocumentLoaderURL(toImpl(frame)->coreFrame()->loader().provisionalDocumentLoader()));
}
static void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef* /* userData */, const void *clientInfo)
@@ -166,7 +166,7 @@
if (!WKBundleFrameIsMainFrame(frame))
return;
- webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getProvisionalURLForFrame(toImpl(frame)));
+ webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getDocumentLoaderURL(toImpl(frame)->coreFrame()->loader().provisionalDocumentLoader()));
}
static void didSameDocumentNavigationForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKSameDocumentNavigationType, WKTypeRef* /* userData */, const void *clientInfo)
@@ -177,6 +177,14 @@
webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), toImpl(frame)->coreFrame()->document()->url().string().utf8());
}
+static void didCommitLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef* /* userData */, const void* clientInfo)
+{
+ if (!WKBundleFrameIsMainFrame(frame))
+ return;
+
+ webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getDocumentLoaderURL(toImpl(frame)->coreFrame()->loader().documentLoader()));
+}
+
static void didFinishDocumentLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef*, const void *clientInfo)
{
if (!WKBundleFrameIsMainFrame(frame))
@@ -485,7 +493,7 @@
didStartProvisionalLoadForFrame,
didReceiveServerRedirectForProvisionalLoadForFrame,
0, // didFailProvisionalLoadWithErrorForFrame
- 0, // didCommitLoadForFrame
+ didCommitLoadForFrame,
didFinishDocumentLoadForFrame,
0, // didFinishLoadForFrame
0, // didFailLoadWithErrorForFrame
Modified: releases/WebKitGTK/webkit-2.14/Tools/ChangeLog (207964 => 207965)
--- releases/WebKitGTK/webkit-2.14/Tools/ChangeLog 2016-10-27 09:24:22 UTC (rev 207964)
+++ releases/WebKitGTK/webkit-2.14/Tools/ChangeLog 2016-10-27 09:25:36 UTC (rev 207965)
@@ -1,5 +1,18 @@
2016-10-16 Carlos Garcia Campos <cgar...@igalia.com>
+ [GTK] WebKitWebPage URI not updated after URI is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame
+ https://bugs.webkit.org/show_bug.cgi?id=163389
+
+ Reviewed by Michael Catanzaro.
+
+ Update /webkit2/WebKitWebPage/get-uri test to check that web view and page uri always match even when request is
+ modified by WebKitWebPage::send-request signal.
+
+ * TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:
+ (testWebPageURI):
+
+2016-10-16 Carlos Garcia Campos <cgar...@igalia.com>
+
Document request not updated after willSendRequest is called for a redirect
https://bugs.webkit.org/show_bug.cgi?id=163436
Modified: releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp (207964 => 207965)
--- releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp 2016-10-27 09:24:22 UTC (rev 207964)
+++ releases/WebKitGTK/webkit-2.14/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp 2016-10-27 09:25:36 UTC (rev 207965)
@@ -405,6 +405,20 @@
g_dbus_connection_signal_unsubscribe(bus->connection(), m_uriChangedSignalID);
}
+ void loadURI(const char* uri)
+ {
+ m_webPageURIs.clear();
+ m_webViewURIs.clear();
+ WebViewTest::loadURI(uri);
+ }
+
+ void checkViewAndPageURIsMatch() const
+ {
+ g_assert_cmpint(m_webPageURIs.size(), ==, m_webViewURIs.size());
+ for (size_t i = 0; i < m_webPageURIs.size(); ++i)
+ ASSERT_CMP_CSTRING(m_webPageURIs[i], ==, m_webViewURIs[i]);
+ }
+
unsigned m_uriChangedSignalID;
Vector<CString> m_webPageURIs;
Vector<CString> m_webViewURIs;
@@ -412,17 +426,37 @@
static void testWebPageURI(WebPageURITest* test, gconstpointer)
{
+ // Normal load.
+ test->loadURI(kServer->getURIForPath("/normal1").data());
+ test->waitUntilLoadFinished();
+ test->checkViewAndPageURIsMatch();
+ g_assert_cmpint(test->m_webPageURIs.size(), ==, 1);
+ ASSERT_CMP_CSTRING(test->m_webPageURIs[0], ==, kServer->getURIForPath("/normal1"));
+
+ // Redirect
test->loadURI(kServer->getURIForPath("/redirect").data());
test->waitUntilLoadFinished();
-
- g_assert_cmpint(test->m_webPageURIs.size(), ==, test->m_webViewURIs.size());
- for (size_t i = 0; i < test->m_webPageURIs.size(); ++i)
- ASSERT_CMP_CSTRING(test->m_webPageURIs[i], ==, test->m_webViewURIs[i]);
-
+ test->checkViewAndPageURIsMatch();
g_assert_cmpint(test->m_webPageURIs.size(), ==, 2);
ASSERT_CMP_CSTRING(test->m_webPageURIs[0], ==, kServer->getURIForPath("/redirect"));
ASSERT_CMP_CSTRING(test->m_webPageURIs[1], ==, kServer->getURIForPath("/normal"));
+ // Normal load, URL changed by WebKitPage::send-request.
+ test->loadURI(kServer->getURIForPath("/normal-change-request").data());
+ test->waitUntilLoadFinished();
+ test->checkViewAndPageURIsMatch();
+ g_assert_cmpint(test->m_webPageURIs.size(), ==, 2);
+ ASSERT_CMP_CSTRING(test->m_webPageURIs[0], ==, kServer->getURIForPath("/normal-change-request"));
+ ASSERT_CMP_CSTRING(test->m_webPageURIs[1], ==, kServer->getURIForPath("/request-changed"));
+
+ // Redirect, URL changed by WebKitPage::send-request.
+ test->loadURI(kServer->getURIForPath("/redirect-to-change-request").data());
+ test->waitUntilLoadFinished();
+ test->checkViewAndPageURIsMatch();
+ g_assert_cmpint(test->m_webPageURIs.size(), ==, 3);
+ ASSERT_CMP_CSTRING(test->m_webPageURIs[0], ==, kServer->getURIForPath("/redirect-to-change-request"));
+ ASSERT_CMP_CSTRING(test->m_webPageURIs[1], ==, kServer->getURIForPath("/normal-change-request"));
+ ASSERT_CMP_CSTRING(test->m_webPageURIs[2], ==, kServer->getURIForPath("/request-changed-on-redirect"));
}
static void testURIRequestHTTPHeaders(WebViewTest* test, gconstpointer)