Changeset 43319 in webkit
- Timestamp:
- May 6, 2009 12:38:53 PM (15 years ago)
- Location:
- trunk/WebKit/gtk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/gtk/ChangeLog
r43302 r43319 1 2009-05-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> 2 3 Reviewed by Xan Lopez. 4 5 https://bugs.webkit.org/show_bug.cgi?id=24786 6 WebKitDownload sometimes suggests peculiar filenames 7 8 When a download is requested by an ongoing request, use the already 9 provided response to set the suggested filename for the WebKitDownload 10 object, if available. 11 12 * WebCoreSupport/FrameLoaderClientGtk.cpp: 13 (WebKit::FrameLoaderClient::download): 14 * webkit/webkitdownload.cpp: 15 (_WebKitDownloadPrivate::webkit_download_set_property): 16 (_WebKitDownloadPrivate::webkit_download_get_suggested_filename): 17 (_WebKitDownloadPrivate::webkit_download_set_suggested_filename): 18 * webkit/webkitprivate.h: 19 * webkit/webkitwebview.cpp: 20 1 21 2009-05-06 Jan Michael Alonzo <jmalonzo@webkit.org> 2 22 -
trunk/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
r43256 r43319 910 910 } 911 911 912 void FrameLoaderClient::download(ResourceHandle* handle, const ResourceRequest& request, const ResourceRequest&, const ResourceResponse& )912 void FrameLoaderClient::download(ResourceHandle* handle, const ResourceRequest& request, const ResourceRequest&, const ResourceResponse& response) 913 913 { 914 914 // FIXME: We could reuse the same handle here, but when I tried … … 916 916 // simplified this case for now. 917 917 handle->cancel(); 918 startDownload(request); 918 919 WebKitNetworkRequest* networkRequest = webkit_network_request_new(request.url().string().utf8().data()); 920 WebKitWebView* view = getViewFromFrame(m_frame); 921 922 webkit_web_view_request_download(view, networkRequest, response); 923 g_object_unref(networkRequest); 919 924 } 920 925 -
trunk/WebKit/gtk/webkit/webkitdownload.cpp
r43302 r43319 185 185 WebKitDownload* download = WEBKIT_DOWNLOAD(object); 186 186 WebKitDownloadPrivate* priv = download->priv; 187 KURL url;188 187 189 188 switch(prop_id) { 190 189 case PROP_NETWORK_REQUEST: 191 190 priv->networkRequest = WEBKIT_NETWORK_REQUEST(g_value_dup_object(value)); 192 // This is safe as network-request is a construct only property and193 // suggestedFilename is initially null.194 url = KURL(KURL(), webkit_network_request_get_uri(priv->networkRequest));195 url.setQuery(String());196 url.removeRef();197 priv->suggestedFilename = g_strdup(decodeURLEscapeSequences(url.lastPathComponent()).utf8().data());198 191 break; 199 192 case PROP_DESTINATION_URI: … … 533 526 534 527 WebKitDownloadPrivate* priv = download->priv; 528 if (priv->suggestedFilename) 529 return priv->suggestedFilename; 530 531 KURL url = KURL(KURL(), webkit_network_request_get_uri(priv->networkRequest)); 532 url.setQuery(String()); 533 url.removeRef(); 534 priv->suggestedFilename = g_strdup(decodeURLEscapeSequences(url.lastPathComponent()).utf8().data()); 535 535 return priv->suggestedFilename; 536 536 } 537 538 // for internal use only 539 void webkit_download_set_suggested_filename(WebKitDownload* download, const gchar* suggestedFilename) 540 { 541 WebKitDownloadPrivate* priv = download->priv; 542 g_free(priv->suggestedFilename); 543 priv->suggestedFilename = g_strdup(suggestedFilename); 544 } 545 537 546 538 547 /** -
trunk/WebKit/gtk/webkit/webkitprivate.h
r43256 r43319 169 169 170 170 void 171 webkit_web_view_request_download(WebKitWebView* web_view, WebKitNetworkRequest* request); 171 webkit_web_view_request_download(WebKitWebView* web_view, WebKitNetworkRequest* request, const WebCore::ResourceResponse& response = WebCore::ResourceResponse()); 172 173 void 174 webkit_download_set_suggested_filename(WebKitDownload* download, const gchar* suggestedFilename); 172 175 173 176 WebKitWebPolicyDecision* -
trunk/WebKit/gtk/webkit/webkitwebview.cpp
r43302 r43319 2144 2144 } 2145 2145 2146 void webkit_web_view_request_download(WebKitWebView* webView, WebKitNetworkRequest* request )2146 void webkit_web_view_request_download(WebKitWebView* webView, WebKitNetworkRequest* request, const ResourceResponse& response) 2147 2147 { 2148 2148 g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); 2149 2149 2150 2150 WebKitDownload* download = webkit_download_new(request); 2151 2152 if (!response.isNull() && !response.suggestedFilename().isEmpty()) 2153 webkit_download_set_suggested_filename(download, response.suggestedFilename().utf8().data()); 2151 2154 2152 2155 gboolean handled;
Note: See TracChangeset
for help on using the changeset viewer.