Title: [124427] trunk/Source/WebKit/gtk
Revision
124427
Author
[email protected]
Date
2012-08-02 02:06:21 -0700 (Thu, 02 Aug 2012)

Log Message

[GTK] Add WebKitNetworkResponse::suggested-filename property
https://bugs.webkit.org/show_bug.cgi?id=92878

Patch by Claudio Saavedra <[email protected]> on 2012-08-02
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.

Modified Paths

Diff

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
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to