diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp | 71 |
1 files changed, 65 insertions, 6 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp index 147d17e1c..50c6eea5d 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp @@ -22,6 +22,7 @@ #include "WebKitPrivate.h" #include "WebKitURIRequestPrivate.h" +#include <WebCore/GOwnPtrSoup.h> #include <glib/gi18n-lib.h> #include <wtf/text/CString.h> @@ -33,9 +34,21 @@ enum { using namespace WebCore; +/** + * SECTION: WebKitURIRequest + * @Short_description: Represents a URI request + * @Title: WebKitURIRequest + * + * A #WebKitURIRequest can be created with a URI using the + * webkit_uri_request_new() method, and you can get the URI of an + * existing request with the webkit_uri_request_get_uri() one. + * + */ + struct _WebKitURIRequestPrivate { WebCore::ResourceRequest resourceRequest; CString uri; + GOwnPtr<SoupMessageHeaders> httpHeaders; }; WEBKIT_DEFINE_TYPE(WebKitURIRequest, webkit_uri_request, G_TYPE_OBJECT) @@ -59,7 +72,7 @@ static void webkitURIRequestSetProperty(GObject* object, guint propId, const GVa switch (propId) { case PROP_URI: - request->priv->resourceRequest.setURL(KURL(KURL(), g_value_get_string(value))); + webkit_uri_request_set_uri(request, g_value_get_string(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); @@ -81,8 +94,8 @@ static void webkit_uri_request_class_init(WebKitURIRequestClass* requestClass) g_param_spec_string("uri", _("URI"), _("The URI to which the request will be made."), - 0, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); + "about:blank", + static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT))); } /** @@ -114,14 +127,60 @@ const gchar* webkit_uri_request_get_uri(WebKitURIRequest* request) return request->priv->uri.data(); } -WebKitURIRequest* webkitURIRequestCreateForResourceRequest(const WebCore::ResourceRequest& resourceRequest) +/** + * webkit_uri_request_set_uri: + * @request: a #WebKitURIRequest + * @uri: an URI + * + * Set the URI of @request + */ +void webkit_uri_request_set_uri(WebKitURIRequest* request, const char* uri) +{ + g_return_if_fail(WEBKIT_IS_URI_REQUEST(request)); + g_return_if_fail(uri); + + KURL url(KURL(), uri); + if (url == request->priv->resourceRequest.url()) + return; + + request->priv->resourceRequest.setURL(url); + g_object_notify(G_OBJECT(request), "uri"); +} + +/** + * webkit_uri_request_get_http_headers: + * @request: a #WebKitURIRequest + * + * Get the HTTP headers of a #WebKitURIRequest as a #SoupMessageHeaders. + * + * Returns: (transfer none): a #SoupMessageHeaders with the HTTP headers of @request + * or %NULL if @request is not an HTTP request. + */ +SoupMessageHeaders* webkit_uri_request_get_http_headers(WebKitURIRequest* request) +{ + g_return_val_if_fail(WEBKIT_IS_URI_REQUEST(request), 0); + + if (request->priv->httpHeaders) + return request->priv->httpHeaders.get(); + + if (!request->priv->resourceRequest.url().protocolIsInHTTPFamily()) + return 0; + + request->priv->httpHeaders.set(soup_message_headers_new(SOUP_MESSAGE_HEADERS_REQUEST)); + request->priv->resourceRequest.updateSoupMessageHeaders(request->priv->httpHeaders.get()); + return request->priv->httpHeaders.get(); +} + +WebKitURIRequest* webkitURIRequestCreateForResourceRequest(const ResourceRequest& resourceRequest) { WebKitURIRequest* uriRequest = WEBKIT_URI_REQUEST(g_object_new(WEBKIT_TYPE_URI_REQUEST, NULL)); uriRequest->priv->resourceRequest = resourceRequest; return uriRequest; } -const WebCore::ResourceRequest& webkitURIRequestGetResourceRequest(WebKitURIRequest* uriRequest) +void webkitURIRequestGetResourceRequest(WebKitURIRequest* request, ResourceRequest& resourceRequest) { - return uriRequest->priv->resourceRequest; + resourceRequest = request->priv->resourceRequest; + if (request->priv->httpHeaders) + resourceRequest.updateFromSoupMessageHeaders(request->priv->httpHeaders.get()); } |