Title: [193622] trunk
Revision
193622
Author
commit-qu...@webkit.org
Date
2015-12-07 04:36:18 -0800 (Mon, 07 Dec 2015)

Log Message

[GTK] Add webkit_uri_request_get_http_method
https://bugs.webkit.org/show_bug.cgi?id=151601

Source/WebKit2:

Patch by Jon Forsberg <jon.ore...@gmail.com> on 2015-12-07
Reviewed by Martin Robinson.

Add a method to get the HTTP method of a WebKitURIRequest.

* UIProcess/API/gtk/WebKitURIRequest.cpp:
(webkit_uri_request_get_http_method):
* UIProcess/API/gtk/WebKitURIRequest.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:

Tools:

Patch by Carlos Garcia Campos <cgar...@igalia.com> on 2015-12-07
Reviewed by Martin Robinson.

Add test case to check HTTP method of WebKitURIRequest.

* TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:
(testURIRequestHTTPMethod):
(serverCallback):
(beforeAll):
* TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:
(sendRequestCallback):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (193621 => 193622)


--- trunk/Source/WebKit2/ChangeLog	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Source/WebKit2/ChangeLog	2015-12-07 12:36:18 UTC (rev 193622)
@@ -1,3 +1,17 @@
+2015-12-07  Jon Forsberg  <jon.ore...@gmail.com>
+
+        [GTK] Add webkit_uri_request_get_http_method
+        https://bugs.webkit.org/show_bug.cgi?id=151601
+
+        Reviewed by Martin Robinson.
+
+        Add a method to get the HTTP method of a WebKitURIRequest.
+
+        * UIProcess/API/gtk/WebKitURIRequest.cpp:
+        (webkit_uri_request_get_http_method):
+        * UIProcess/API/gtk/WebKitURIRequest.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
+
 2015-12-07  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK] Add WebKitWebPage::console-message-sent signal to Web Extensions API

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp (193621 => 193622)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp	2015-12-07 12:36:18 UTC (rev 193622)
@@ -48,6 +48,7 @@
 struct _WebKitURIRequestPrivate {
     WebCore::ResourceRequest resourceRequest;
     CString uri;
+    const char* httpMethod;
     GUniquePtr<SoupMessageHeaders> httpHeaders;
 };
 
@@ -171,6 +172,32 @@
     return request->priv->httpHeaders.get();
 }
 
+/**
+ * webkit_uri_request_get_http_method:
+ * @request: a #WebKitURIRequest
+ *
+ * Get the HTTP method of the #WebKitURIRequest.
+ *
+ * Returns: the HTTP method of the #WebKitURIRequest or %NULL if @request is not
+ *    an HTTP request.
+ *
+ * Since: 2.12
+ */
+const gchar* webkit_uri_request_get_http_method(WebKitURIRequest* request)
+{
+    g_return_val_if_fail(WEBKIT_IS_URI_REQUEST(request), nullptr);
+
+    if (!request->priv->resourceRequest.url().protocolIsInHTTPFamily())
+        return nullptr;
+
+    if (request->priv->resourceRequest.httpMethod().isEmpty())
+        return nullptr;
+
+    if (!request->priv->httpMethod)
+        request->priv->httpMethod = g_intern_string(request->priv->resourceRequest.httpMethod().utf8().data());
+    return request->priv->httpMethod;
+}
+
 WebKitURIRequest* webkitURIRequestCreateForResourceRequest(const ResourceRequest& resourceRequest)
 {
     WebKitURIRequest* uriRequest = WEBKIT_URI_REQUEST(g_object_new(WEBKIT_TYPE_URI_REQUEST, NULL));

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.h (193621 => 193622)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.h	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.h	2015-12-07 12:36:18 UTC (rev 193622)
@@ -70,6 +70,9 @@
 webkit_uri_request_set_uri          (WebKitURIRequest *request,
                                      const gchar      *uri);
 
+WEBKIT_API const gchar *
+webkit_uri_request_get_http_method  (WebKitURIRequest *request);
+
 WEBKIT_API SoupMessageHeaders *
 webkit_uri_request_get_http_headers (WebKitURIRequest *request);
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt (193621 => 193622)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt	2015-12-07 12:36:18 UTC (rev 193622)
@@ -462,6 +462,7 @@
 webkit_uri_request_new
 webkit_uri_request_get_uri
 webkit_uri_request_set_uri
+webkit_uri_request_get_http_method
 webkit_uri_request_get_http_headers
 
 <SUBSECTION Standard>

Modified: trunk/Tools/ChangeLog (193621 => 193622)


--- trunk/Tools/ChangeLog	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Tools/ChangeLog	2015-12-07 12:36:18 UTC (rev 193622)
@@ -1,5 +1,21 @@
 2015-12-07  Carlos Garcia Campos  <cgar...@igalia.com>
 
+        [GTK] Add webkit_uri_request_get_http_method
+        https://bugs.webkit.org/show_bug.cgi?id=151601
+
+        Reviewed by Martin Robinson.
+
+        Add test case to check HTTP method of WebKitURIRequest.
+
+        * TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:
+        (testURIRequestHTTPMethod):
+        (serverCallback):
+        (beforeAll):
+        * TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:
+        (sendRequestCallback):
+
+2015-12-07  Carlos Garcia Campos  <cgar...@igalia.com>
+
         [GTK] Add WebKitWebPage::console-message-sent signal to Web Extensions API
         https://bugs.webkit.org/show_bug.cgi?id=79918
 

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp (193621 => 193622)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp	2015-12-07 12:36:18 UTC (rev 193622)
@@ -404,6 +404,20 @@
     g_assert(!strncmp(mainResourceData, "1", mainResourceDataSize));
 }
 
+static void testURIRequestHTTPMethod(WebViewTest* test, gconstpointer)
+{
+    GRefPtr<WebKitURIRequest> uriRequest = adoptGRef(webkit_uri_request_new("file:///foo/bar"));
+    g_assert(uriRequest.get());
+    g_assert_cmpstr(webkit_uri_request_get_uri(uriRequest.get()), ==, "file:///foo/bar");
+    g_assert(!webkit_uri_request_get_http_method(uriRequest.get()));
+
+    webkit_uri_request_set_uri(uriRequest.get(), kServer->getURIForPath("/http-get-method").data());
+    test->loadRequest(uriRequest.get());
+    test->waitUntilLoadFinished();
+
+    test->runJavaScriptAndWaitUntilFinished("xhr = new XMLHttpRequest; xhr.open('POST', '/http-post-method', false); xhr.send();", nullptr);
+}
+
 static void testURIResponseHTTPHeaders(WebViewTest* test, gconstpointer)
 {
     test->loadHtml("<html><body>No HTTP headers</body></html>", "file:///");
@@ -455,7 +469,7 @@
 
     soup_message_set_status(message, SOUP_STATUS_OK);
 
-    if (g_str_has_prefix(path, "/normal"))
+    if (g_str_has_prefix(path, "/normal") || g_str_has_prefix(path, "/http-get-method"))
         soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, responseString, strlen(responseString));
     else if (g_str_equal(path, "/error"))
         soup_message_set_status(message, SOUP_STATUS_CANT_CONNECT);
@@ -516,6 +530,7 @@
     ViewIsLoadingTest::add("WebKitWebView", "is-loading", testWebViewIsLoading);
     WebPageURITest::add("WebKitWebPage", "get-uri", testWebPageURI);
     WebViewTest::add("WebKitURIRequest", "http-headers", testURIRequestHTTPHeaders);
+    WebViewTest::add("WebKitURIRequest", "http-method", testURIRequestHTTPMethod);
     WebViewTest::add("WebKitURIResponse", "http-headers", testURIResponseHTTPHeaders);
     WebViewTest::add("WebKitWebPage", "redirect-to-data-uri", testRedirectToDataURI);
 }

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp (193621 => 193622)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp	2015-12-07 12:02:11 UTC (rev 193621)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp	2015-12-07 12:36:18 UTC (rev 193622)
@@ -143,6 +143,7 @@
 
 static gboolean sendRequestCallback(WebKitWebPage*, WebKitURIRequest* request, WebKitURIResponse* redirectResponse, gpointer)
 {
+    gboolean returnValue = FALSE;
     const char* requestURI = webkit_uri_request_get_uri(request);
     g_assert(requestURI);
 
@@ -165,10 +166,17 @@
         SoupMessageHeaders* headers = webkit_uri_request_get_http_headers(request);
         g_assert(headers);
         soup_message_headers_append(headers, "DNT", "1");
+    } else if (g_str_has_suffix(requestURI, "/http-get-method")) {
+        g_assert_cmpstr(webkit_uri_request_get_http_method(request), ==, "GET");
+        g_assert(webkit_uri_request_get_http_method(request) == SOUP_METHOD_GET);
+    } else if (g_str_has_suffix(requestURI, "/http-post-method")) {
+        g_assert_cmpstr(webkit_uri_request_get_http_method(request), ==, "POST");
+        g_assert(webkit_uri_request_get_http_method(request) == SOUP_METHOD_POST);
+        returnValue = TRUE;
     } else if (g_str_has_suffix(requestURI, "/cancel-this.js"))
-        return TRUE;
+        returnValue = TRUE;
 
-    return FALSE;
+    return returnValue;
 }
 
 static GVariant* serializeContextMenu(WebKitContextMenu* menu)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to