Commit 17952444 authored by kov@webkit.org's avatar kov@webkit.org

2009-04-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=24786
        WebKitDownload sometimes suggests peculiar filenames

        Refactor the emission of the download-requested signal so that we
        have less code duplication.

        * WebCoreSupport/ContextMenuClientGtk.cpp:
        (WebKit::ContextMenuClient::downloadURL):
        * WebCoreSupport/FrameLoaderClientGtk.cpp:
        (WebKit::FrameLoaderClient::startDownload):
        * webkit/webkitprivate.h:
        * webkit/webkitwebview.cpp:

git-svn-id: svn://svn.chromium.org/blink/trunk@42867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent fd2d51dc
2009-04-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
https://bugs.webkit.org/show_bug.cgi?id=24786
WebKitDownload sometimes suggests peculiar filenames
Refactor the emission of the download-requested signal so that we
have less code duplication.
* WebCoreSupport/ContextMenuClientGtk.cpp:
(WebKit::ContextMenuClient::downloadURL):
* WebCoreSupport/FrameLoaderClientGtk.cpp:
(WebKit::FrameLoaderClient::startDownload):
* webkit/webkitprivate.h:
* webkit/webkitwebview.cpp:
2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Xan Lopez.
......
......@@ -165,20 +165,10 @@ void ContextMenuClient::contextMenuItemSelected(ContextMenuItem*, const ContextM
void ContextMenuClient::downloadURL(const KURL& url)
{
WebKitNetworkRequest* network_request = webkit_network_request_new(url.string().utf8().data());
WebKitDownload* download = webkit_download_new(network_request);
g_object_unref(network_request);
WebKitNetworkRequest* networkRequest = webkit_network_request_new(url.string().utf8().data());
gboolean handled;
g_signal_emit_by_name(m_webView, "download-requested", download, &handled);
if (!handled) {
webkit_download_cancel(download);
g_object_unref(download);
return;
}
webkit_download_start(download);
webkit_web_view_request_download(m_webView, networkRequest);
g_object_unref(networkRequest);
}
void ContextMenuClient::copyImageToClipboard(const HitTestResult&)
......
......@@ -972,20 +972,10 @@ void FrameLoaderClient::setMainDocumentError(DocumentLoader*, const ResourceErro
void FrameLoaderClient::startDownload(const ResourceRequest& request)
{
WebKitNetworkRequest* networkRequest = webkit_network_request_new(request.url().string().utf8().data());
WebKitDownload* download = webkit_download_new(networkRequest);
g_object_unref(networkRequest);
WebKitWebView* view = getViewFromFrame(m_frame);
gboolean handled;
g_signal_emit_by_name(view, "download-requested", download, &handled);
if (!handled) {
webkit_download_cancel(download);
g_object_unref(download);
return;
}
webkit_download_start(download);
webkit_web_view_request_download(view, networkRequest);
g_object_unref(networkRequest);
}
void FrameLoaderClient::updateGlobalHistory()
......
......@@ -29,6 +29,7 @@
#include <webkit/webkitdefines.h>
#include <webkit/webkitdownload.h>
#include <webkit/webkitnetworkrequest.h>
#include <webkit/webkitwebview.h>
#include <webkit/webkitwebframe.h>
#include <webkit/webkitwebpolicydecision.h>
......@@ -164,6 +165,9 @@ extern "C" {
void
webkit_web_view_notify_ready (WebKitWebView* web_view);
void
webkit_web_view_request_download(WebKitWebView* web_view, WebKitNetworkRequest* request);
WebKitWebPolicyDecision*
webkit_web_policy_decision_new (WebKitWebFrame*, WebCore::FramePolicyFunction);
......
......@@ -2103,6 +2103,23 @@ void webkit_web_view_notify_ready(WebKitWebView* webView)
g_signal_emit(webView, webkit_web_view_signals[WEB_VIEW_READY], 0, &isHandled);
}
void webkit_web_view_request_download(WebKitWebView* webView, WebKitNetworkRequest* request)
{
g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
WebKitDownload* download = webkit_download_new(request);
gboolean handled;
g_signal_emit(webView, webkit_web_view_signals[DOWNLOAD_REQUESTED], 0, download, &handled);
if (!handled) {
webkit_download_cancel(download);
g_object_unref(download);
return;
}
webkit_download_start(download);
}
void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* webSettings)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment