Modified: trunk/Source/WebKit/gtk/ChangeLog (124426 => 124427)
--- trunk/Source/WebKit/gtk/ChangeLog 2012-08-02 09:04:58 UTC (rev 124426)
+++ trunk/Source/WebKit/gtk/ChangeLog 2012-08-02 09:06:21 UTC (rev 124427)
@@ -1,3 +1,23 @@
+2012-08-02 Claudio Saavedra <[email protected]>
+
+ [GTK] Add WebKitNetworkResponse::suggested-filename property
+ https://bugs.webkit.org/show_bug.cgi?id=92878
+
+ Reviewed by Carlos Garcia Campos.
+
+ Webcore has API the suggested filename for a response, add
+ a property and getter for it in WebKitNetworkResponse.
+
+ * docs/webkitgtk-sections.txt: Add the symbols
+ * webkit/webkitnetworkresponse.cpp:
+ (_WebKitNetworkResponsePrivate): Add suggested_filename.
+ (webkit_network_response_finalize): Free it on finalize
+ (webkit_network_response_get_property): Add the getter call.
+ (webkit_network_response_class_init): Install the property.
+ (webkit_network_response_get_suggested_filename): New getter.
+ * webkit/webkitnetworkresponse.h: Add the declaration to header
+ file.
+
2012-07-31 Sheriff Bot <[email protected]>
Unreviewed, rolling out r124207.
Modified: trunk/Source/WebKit/gtk/docs/webkitgtk-sections.txt (124426 => 124427)
--- trunk/Source/WebKit/gtk/docs/webkitgtk-sections.txt 2012-08-02 09:04:58 UTC (rev 124426)
+++ trunk/Source/WebKit/gtk/docs/webkitgtk-sections.txt 2012-08-02 09:06:21 UTC (rev 124427)
@@ -380,6 +380,7 @@
WebKitNetworkResponse
webkit_network_response_get_uri
webkit_network_response_get_message
+webkit_network_response_get_suggested_filename
webkit_network_response_set_uri
<SUBSECTION Standard>
WEBKIT_NETWORK_RESPONSE
Modified: trunk/Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp (124426 => 124427)
--- trunk/Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp 2012-08-02 09:04:58 UTC (rev 124426)
+++ trunk/Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp 2012-08-02 09:06:21 UTC (rev 124427)
@@ -24,10 +24,13 @@
#include "ResourceResponse.h"
#include "webkitglobalsprivate.h"
+#include "webkitnetworkresponseprivate.h"
#include <glib/gi18n-lib.h>
#include <wtf/gobject/GRefPtr.h>
#include <wtf/text/CString.h>
+using namespace WebKit;
+
/**
* SECTION:webkitnetworkresponse
* @short_description: the response given to a network request
@@ -43,6 +46,7 @@
struct _WebKitNetworkResponsePrivate {
gchar* uri;
+ gchar* suggestedFilename;
SoupMessage* message;
};
@@ -53,6 +57,7 @@
PROP_URI,
PROP_MESSAGE,
+ PROP_SUGGESTED_FILENAME,
};
static void webkit_network_response_dispose(GObject* object)
@@ -74,6 +79,7 @@
WebKitNetworkResponsePrivate* priv = response->priv;
g_free(priv->uri);
+ g_free(priv->suggestedFilename);
G_OBJECT_CLASS(webkit_network_response_parent_class)->finalize(object);
}
@@ -89,6 +95,9 @@
case PROP_MESSAGE:
g_value_set_object(value, webkit_network_response_get_message(response));
break;
+ case PROP_SUGGESTED_FILENAME:
+ g_value_set_string(value, webkit_network_response_get_suggested_filename(response));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec);
}
@@ -150,6 +159,20 @@
SOUP_TYPE_MESSAGE,
(GParamFlags)(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY)));
+ /**
+ * WebKitNetworkResponse:suggested-filename:
+ *
+ * The suggested filename for the response.
+ *
+ * Since: 1.10
+ */
+ g_object_class_install_property(objectClass, PROP_SUGGESTED_FILENAME,
+ g_param_spec_string("suggested-filename",
+ _("Suggested filename"),
+ _("The suggested filename for the response."),
+ 0,
+ WEBKIT_PARAM_READABLE));
+
g_type_class_add_private(responseClass, sizeof(WebKitNetworkResponsePrivate));
}
@@ -250,6 +273,32 @@
return priv->message;
}
+/**
+ * webkit_network_response_get_suggested_filename:
+ * @response: a #WebKitNetworkResponse
+ *
+ * Obtains the suggested filename for the given network response. The
+ * suggested filename is taken from the 'Content-Disposition' HTTP
+ * header, but this is not always present, and this method will return
+ * %NULL in such case.
+ *
+ * Returns: (transfer none): the suggested filename or %NULL if not present
+ * Since: 1.10
+ **/
+const gchar* webkit_network_response_get_suggested_filename(WebKitNetworkResponse* response)
+{
+ g_return_val_if_fail(WEBKIT_IS_NETWORK_RESPONSE(response), 0);
+
+ WebKitNetworkResponsePrivate* priv = response->priv;
+
+ if (priv->suggestedFilename)
+ return priv->suggestedFilename;
+
+ WebCore::ResourceResponse coreResponse = core(response);
+ priv->suggestedFilename = g_strdup(coreResponse.suggestedFilename().utf8().data());
+ return priv->suggestedFilename;
+}
+
namespace WebKit {
WebCore::ResourceResponse core(WebKitNetworkResponse* response)
Modified: trunk/Source/WebKit/gtk/webkit/webkitnetworkresponse.h (124426 => 124427)
--- trunk/Source/WebKit/gtk/webkit/webkitnetworkresponse.h 2012-08-02 09:04:58 UTC (rev 124426)
+++ trunk/Source/WebKit/gtk/webkit/webkitnetworkresponse.h 2012-08-02 09:06:21 UTC (rev 124427)
@@ -69,6 +69,9 @@
WEBKIT_API SoupMessage *
webkit_network_response_get_message(WebKitNetworkResponse* response);
+WEBKIT_API const char *
+webkit_network_response_get_suggested_filename(WebKitNetworkResponse *response);
+
G_END_DECLS
#endif