Date: Monday, November 2, 2009 @ 06:18:37 Author: jgc Revision: 57802
Merged revisions 57801 via svnmerge from svn+ssh://gerolde.archlinux.org/srv/svn-packages/libwebkit/trunk ........ r57801 | jgc | 2009-11-02 12:18:12 +0100 (Mon, 02 Nov 2009) | 1 line Backport from 1.16: WebkitDownload should use WebkitNetworkResponse ........ Added: libwebkit/repos/extra-x86_64/webkitdownload-use-webkitnetworkresponse.patch (from rev 57801, libwebkit/trunk/webkitdownload-use-webkitnetworkresponse.patch) Modified: libwebkit/repos/extra-x86_64/ (properties) libwebkit/repos/extra-x86_64/PKGBUILD ------------------------------------------------+ PKGBUILD | 9 webkitdownload-use-webkitnetworkresponse.patch | 215 +++++++++++++++++++++++ 2 files changed, 221 insertions(+), 3 deletions(-) Property changes on: libwebkit/repos/extra-x86_64 ___________________________________________________________________ Modified: svnmerge-integrated - /libwebkit/trunk:1-56333 + /libwebkit/trunk:1-57801 Modified: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2009-11-02 11:18:12 UTC (rev 57801) +++ extra-x86_64/PKGBUILD 2009-11-02 11:18:37 UTC (rev 57802) @@ -3,7 +3,7 @@ pkgname=libwebkit pkgver=1.1.15.3 -pkgrel=1 +pkgrel=2 pkgdesc="an opensource web content engine, derived from KHTML and KJS from KDE" arch=('i686' 'x86_64') url="http://webkitgtk.org/" @@ -14,11 +14,14 @@ conflicts=('webkitgtk-svn') replaces=('webkitgtk-svn') options=('!libtool') -source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz) -md5sums=('18736af3c751eb078fa3f4a7393cc864') +source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz + webkitdownload-use-webkitnetworkresponse.patch) +md5sums=('18736af3c751eb078fa3f4a7393cc864' + 'a041ddf393002ebd4ea4eaec972c47c2') build() { cd "${srcdir}/webkit-${pkgver}" + patch -Np1 -i "${srcdir}/webkitdownload-use-webkitnetworkresponse.patch" || return 1 ./configure --prefix=/usr \ --enable-video \ --with-font-backend=freetype --enable-gtk-doc \ Copied: libwebkit/repos/extra-x86_64/webkitdownload-use-webkitnetworkresponse.patch (from rev 57801, libwebkit/trunk/webkitdownload-use-webkitnetworkresponse.patch) =================================================================== --- extra-x86_64/webkitdownload-use-webkitnetworkresponse.patch (rev 0) +++ extra-x86_64/webkitdownload-use-webkitnetworkresponse.patch 2009-11-02 11:18:37 UTC (rev 57802) @@ -0,0 +1,215 @@ +From d42f4dd5b4ead39771d8822ac4c67a0d48a41040 Mon Sep 17 00:00:00 2001 +From: Gustavo Noronha Silva <gustavo.noro...@collabora.co.uk> +Date: Sun, 25 Oct 2009 18:29:35 -0200 +Subject: [PATCH] Use WebKitNetworkResponse + + WebKit/gtk/ChangeLog | 26 +++++++++++++ + WebKit/gtk/webkit/webkitdownload.cpp | 67 +++++++++++++++++++++++++++++----- + WebKit/gtk/webkit/webkitdownload.h | 3 ++ + 3 files changed, 86 insertions(+), 10 deletions(-) + +2009-10-25 Gustavo Noronha Silva <gustavo.noro...@collabora.co.uk> + + Reviewed by NOBODY (OOPS!). + + 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. + + * webkit/webkitdownload.cpp: + (webkit_download_dispose): + (webkit_download_finalize): + (webkit_download_get_property): + (webkit_download_set_property): + (webkit_download_class_init): + (webkit_download_get_network_response): + (webkit_download_set_response): + (webkit_download_get_total_size): + (webkit_download_get_progress): + (webkit_download_received_data): + * webkit/webkitdownload.h: + +--- +diff --git a/WebKit/gtk/webkit/webkitdownload.cpp b/WebKit/gtk/webkit/webkitdownload.cpp +index 568378c..dd6629b 100644 +--- a/WebKit/gtk/webkit/webkitdownload.cpp ++++ b/WebKit/gtk/webkit/webkitdownload.cpp +@@ -31,6 +31,7 @@ + #include "webkitdownload.h" + #include "webkitenumtypes.h" + #include "webkitmarshal.h" ++#include "webkitnetworkresponse.h" + #include "webkitprivate.h" + + #include <glib/gstdio.h> +@@ -74,7 +75,7 @@ struct _WebKitDownloadPrivate { + GFileOutputStream* outputStream; + DownloadClient* downloadClient; + WebKitNetworkRequest* networkRequest; +- ResourceResponse* networkResponse; ++ WebKitNetworkResponse* networkResponse; + RefPtr<ResourceHandle> resourceHandle; + }; + +@@ -95,7 +96,8 @@ enum { + PROP_PROGRESS, + PROP_STATUS, + PROP_CURRENT_SIZE, +- PROP_TOTAL_SIZE ++ PROP_TOTAL_SIZE, ++ PROP_NETWORK_RESPONSE + }; + + G_DEFINE_TYPE(WebKitDownload, webkit_download, G_TYPE_OBJECT); +@@ -119,6 +121,11 @@ static void webkit_download_dispose(GObject* object) + priv->networkRequest = NULL; + } + ++ if (priv->networkResponse) { ++ g_object_unref(priv->networkResponse); ++ priv->networkResponse = NULL; ++ } ++ + G_OBJECT_CLASS(webkit_download_parent_class)->dispose(object); + } + +@@ -138,7 +145,6 @@ static void webkit_download_finalize(GObject* object) + } + + delete priv->downloadClient; +- delete priv->networkResponse; + + // The download object may never have _start called on it, so we + // need to make sure timer is non-NULL. +@@ -159,6 +165,9 @@ static void webkit_download_get_property(GObject* object, guint prop_id, GValue* + case PROP_NETWORK_REQUEST: + g_value_set_object(value, webkit_download_get_network_request(download)); + break; ++ case PROP_NETWORK_RESPONSE: ++ g_value_set_object(value, webkit_download_get_network_response(download)); ++ break; + case PROP_DESTINATION_URI: + g_value_set_string(value, webkit_download_get_destination_uri(download)); + break; +@@ -191,6 +200,9 @@ static void webkit_download_set_property(GObject* object, guint prop_id, const G + case PROP_NETWORK_REQUEST: + priv->networkRequest = WEBKIT_NETWORK_REQUEST(g_value_dup_object(value)); + break; ++ case PROP_NETWORK_RESPONSE: ++ priv->networkResponse = WEBKIT_NETWORK_RESPONSE(g_value_dup_object(value)); ++ break; + case PROP_DESTINATION_URI: + webkit_download_set_destination_uri(download, g_value_get_string(value)); + break; +@@ -252,6 +264,21 @@ static void webkit_download_class_init(WebKitDownloadClass* downloadClass) + (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); + + /** ++ * WebKitDownload:network-response ++ * ++ * The #WebKitNetworkResponse instance associated with the download. ++ * ++ * Since: 1.1.16 ++ */ ++ g_object_class_install_property(objectClass, ++ PROP_NETWORK_RESPONSE, ++ g_param_spec_object("network-response", ++ _("Network Response"), ++ _("The network response for the URI that should be downloaded"), ++ WEBKIT_TYPE_NETWORK_RESPONSE, ++ (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); ++ ++ /** + * WebKitDownload:destination-uri + * + * The URI of the save location for this download. +@@ -530,11 +557,29 @@ WebKitNetworkRequest* webkit_download_get_network_request(WebKitDownload* downlo + return priv->networkRequest; + } + ++/** ++ * webkit_download_get_network_response: ++ * @download: the #WebKitDownload ++ * ++ * Retrieves the #WebKitNetworkResponse object that backs the download ++ * process. ++ * ++ * Returns: the #WebKitNetworkResponse instance ++ * ++ * Since: 1.1.16 ++ */ ++WebKitNetworkResponse* webkit_download_get_network_response(WebKitDownload* download) ++{ ++ g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); ++ ++ WebKitDownloadPrivate* priv = download->priv; ++ return priv->networkResponse; ++} ++ + static void webkit_download_set_response(WebKitDownload* download, const ResourceResponse& response) + { +- // FIXME Use WebKitNetworkResponse when it's merged. + WebKitDownloadPrivate* priv = download->priv; +- priv->networkResponse = new ResourceResponse(response); ++ priv->networkResponse = webkit_network_response_new_with_core_response(response); + + if (!response.isNull() && !response.suggestedFilename().isEmpty()) + webkit_download_set_suggested_filename(download, response.suggestedFilename().utf8().data()); +@@ -704,10 +749,12 @@ guint64 webkit_download_get_total_size(WebKitDownload* download) + g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 0); + + WebKitDownloadPrivate* priv = download->priv; +- if (!priv->networkResponse) ++ SoupMessage* message = priv->networkResponse ? webkit_network_response_get_message(priv->networkResponse) : NULL; ++ ++ if (!message) + return 0; + +- return MAX(priv->currentSize, priv->networkResponse->expectedContentLength()); ++ return MAX(priv->currentSize, soup_message_headers_get_content_length(message->response_headers)); + } + + /** +@@ -744,9 +791,9 @@ gdouble webkit_download_get_progress(WebKitDownload* download) + + WebKitDownloadPrivate* priv = download->priv; + if (!priv->networkResponse) +- return 0; ++ return 0.0; + +- gdouble total_size = (gdouble)priv->networkResponse->expectedContentLength(); ++ gdouble total_size = static_cast<gdouble>(webkit_download_get_total_size(download)); + + if (total_size == 0) + return 1.0; +@@ -803,7 +850,7 @@ static void webkit_download_received_data(WebKitDownload* download, const gchar* + g_object_notify(G_OBJECT(download), "current-size"); + + ASSERT(priv->networkResponse); +- if (priv->currentSize > priv->networkResponse->expectedContentLength()) ++ if (priv->currentSize > webkit_download_get_total_size(download)) + g_object_notify(G_OBJECT(download), "total-size"); + + gdouble lastProgress = webkit_download_get_progress(download); +diff --git a/WebKit/gtk/webkit/webkitdownload.h b/WebKit/gtk/webkit/webkitdownload.h +index 6e7f38b..a732a57 100644 +--- a/WebKit/gtk/webkit/webkitdownload.h ++++ b/WebKit/gtk/webkit/webkitdownload.h +@@ -84,6 +84,9 @@ webkit_download_get_uri (WebKitDownload *download); + WEBKIT_API WebKitNetworkRequest* + webkit_download_get_network_request (WebKitDownload *download); + ++WEBKIT_API WebKitNetworkResponse* ++webkit_download_get_network_response (WebKitDownload *download); ++ + WEBKIT_API const gchar* + webkit_download_get_suggested_filename (WebKitDownload *download); + +-- +1.6.5 +