Changeset 50060 in webkit


Ignore:
Timestamp:
Oct 26, 2009 6:49:48 AM (14 years ago)
Author:
kov@webkit.org
Message:

Reviewed by Xan Lopez.

https://bugs.webkit.org/show_bug.cgi?id=30759
[GTK] Should use WebKitNetworkResponse, and expose it

WebKitDownload now uses our WebKitNetworkResponse instead of using
ResourceResponse directly. By exposing the response, like we do
with the request, we give our users the ability to look at the
response headers, status code, and so on, through the SoupMessage
object.

Location:
trunk/WebKit/gtk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/gtk/ChangeLog

    r50059 r50060  
     12009-10-26  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
     2
     3        Reviewed by Xan Lopez.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=30759
     6        [GTK] Should use WebKitNetworkResponse, and expose it
     7
     8        WebKitDownload now uses our WebKitNetworkResponse instead of using
     9        ResourceResponse directly. By exposing the response, like we do
     10        with the request, we give our users the ability to look at the
     11        response headers, status code, and so on, through the SoupMessage
     12        object.
     13
     14        * webkit/webkitdownload.cpp:
     15        (webkit_download_dispose):
     16        (webkit_download_finalize):
     17        (webkit_download_get_property):
     18        (webkit_download_set_property):
     19        (webkit_download_class_init):
     20        (webkit_download_get_network_response):
     21        (webkit_download_set_response):
     22        (webkit_download_get_total_size):
     23        (webkit_download_get_progress):
     24        (webkit_download_received_data):
     25        * webkit/webkitdownload.h:
     26
    1272009-10-26  Xan Lopez  <xlopez@igalia.com>
    228
  • trunk/WebKit/gtk/webkit/webkitdownload.cpp

    r48183 r50060  
    3232#include "webkitenumtypes.h"
    3333#include "webkitmarshal.h"
     34#include "webkitnetworkresponse.h"
    3435#include "webkitprivate.h"
    3536
     
    7576    DownloadClient* downloadClient;
    7677    WebKitNetworkRequest* networkRequest;
    77     ResourceResponse* networkResponse;
     78    WebKitNetworkResponse* networkResponse;
    7879    RefPtr<ResourceHandle> resourceHandle;
    7980};
     
    9697    PROP_STATUS,
    9798    PROP_CURRENT_SIZE,
    98     PROP_TOTAL_SIZE
     99    PROP_TOTAL_SIZE,
     100    PROP_NETWORK_RESPONSE
    99101};
    100102
     
    118120        g_object_unref(priv->networkRequest);
    119121        priv->networkRequest = NULL;
     122    }
     123
     124    if (priv->networkResponse) {
     125        g_object_unref(priv->networkResponse);
     126        priv->networkResponse = NULL;
    120127    }
    121128
     
    139146
    140147    delete priv->downloadClient;
    141     delete priv->networkResponse;
    142148
    143149    // The download object may never have _start called on it, so we
     
    160166        g_value_set_object(value, webkit_download_get_network_request(download));
    161167        break;
     168    case PROP_NETWORK_RESPONSE:
     169        g_value_set_object(value, webkit_download_get_network_response(download));
     170        break;
    162171    case PROP_DESTINATION_URI:
    163172        g_value_set_string(value, webkit_download_get_destination_uri(download));
     
    191200    case PROP_NETWORK_REQUEST:
    192201        priv->networkRequest = WEBKIT_NETWORK_REQUEST(g_value_dup_object(value));
     202        break;
     203    case PROP_NETWORK_RESPONSE:
     204        priv->networkResponse = WEBKIT_NETWORK_RESPONSE(g_value_dup_object(value));
    193205        break;
    194206    case PROP_DESTINATION_URI:
     
    253265
    254266    /**
     267     * WebKitDownload:network-response
     268     *
     269     * The #WebKitNetworkResponse instance associated with the download.
     270     *
     271     * Since: 1.1.16
     272     */
     273    g_object_class_install_property(objectClass,
     274                                    PROP_NETWORK_RESPONSE,
     275                                    g_param_spec_object("network-response",
     276                                                        _("Network Response"),
     277                                                        _("The network response for the URI that should be downloaded"),
     278                                                        WEBKIT_TYPE_NETWORK_RESPONSE,
     279                                                        (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
     280
     281    /**
    255282     * WebKitDownload:destination-uri
    256283     *
     
    531558}
    532559
     560/**
     561 * webkit_download_get_network_response:
     562 * @download: the #WebKitDownload
     563 *
     564 * Retrieves the #WebKitNetworkResponse object that backs the download
     565 * process.
     566 *
     567 * Returns: the #WebKitNetworkResponse instance
     568 *
     569 * Since: 1.1.16
     570 */
     571WebKitNetworkResponse* webkit_download_get_network_response(WebKitDownload* download)
     572{
     573    g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL);
     574
     575    WebKitDownloadPrivate* priv = download->priv;
     576    return priv->networkResponse;
     577}
     578
    533579static void webkit_download_set_response(WebKitDownload* download, const ResourceResponse& response)
    534580{
    535     // FIXME Use WebKitNetworkResponse when it's merged.
    536     WebKitDownloadPrivate* priv = download->priv;
    537     priv->networkResponse = new ResourceResponse(response);
     581    WebKitDownloadPrivate* priv = download->priv;
     582    priv->networkResponse = webkit_network_response_new_with_core_response(response);
    538583
    539584    if (!response.isNull() && !response.suggestedFilename().isEmpty())
     
    705750
    706751    WebKitDownloadPrivate* priv = download->priv;
    707     if (!priv->networkResponse)
     752    SoupMessage* message = priv->networkResponse ? webkit_network_response_get_message(priv->networkResponse) : NULL;
     753
     754    if (!message)
    708755        return 0;
    709756
    710     return MAX(priv->currentSize, priv->networkResponse->expectedContentLength());
     757    return MAX(priv->currentSize, soup_message_headers_get_content_length(message->response_headers));
    711758}
    712759
     
    745792    WebKitDownloadPrivate* priv = download->priv;
    746793    if (!priv->networkResponse)
    747         return 0;
    748 
    749     gdouble total_size = (gdouble)priv->networkResponse->expectedContentLength();
     794        return 0.0;
     795
     796    gdouble total_size = static_cast<gdouble>(webkit_download_get_total_size(download));
    750797
    751798    if (total_size == 0)
     
    804851
    805852    ASSERT(priv->networkResponse);
    806     if (priv->currentSize > priv->networkResponse->expectedContentLength())
     853    if (priv->currentSize > webkit_download_get_total_size(download))
    807854        g_object_notify(G_OBJECT(download), "total-size");
    808855
  • trunk/WebKit/gtk/webkit/webkitdownload.h

    r49168 r50060  
    8585webkit_download_get_network_request         (WebKitDownload       *download);
    8686
     87WEBKIT_API WebKitNetworkResponse*
     88webkit_download_get_network_response         (WebKitDownload       *download);
     89
    8790WEBKIT_API const gchar*
    8891webkit_download_get_suggested_filename      (WebKitDownload       *download);
Note: See TracChangeset for help on using the changeset viewer.