Don't start download for none success http status codes.
authorDaniel Carl <danielcarl@gmx.de>
Mon, 21 Jul 2014 22:44:55 +0000 (00:44 +0200)
committerDaniel Carl <danielcarl@gmx.de>
Mon, 21 Jul 2014 22:44:55 +0000 (00:44 +0200)
src/main.c

index 96212f6..9cc33ca 100644 (file)
@@ -1180,13 +1180,19 @@ static gboolean mimetype_decision_cb(WebKitWebView *webview,
     WebKitWebFrame *frame, WebKitNetworkRequest *request, char *mime_type,
     WebKitWebPolicyDecision *decision)
 {
-    /* don't start download if request failed or stopped by proxy */
-    if (!mime_type || *mime_type == '\0') {
+    SoupMessage *msg;
+    /* don't start download if request failed or stopped by proxy or can be
+     * displayed in the webview */
+    if (!mime_type || *mime_type == '\0'
+        || webkit_web_view_can_show_mime_type(webview, mime_type)) {
+
         return false;
     }
-    if (webkit_web_view_can_show_mime_type(webview, mime_type) == false) {
-        webkit_web_policy_decision_download(decision);
 
+    /* don't start a download when the response has no 2xx status code */
+    msg = webkit_network_request_get_message(request);
+    if (SOUP_STATUS_IS_SUCCESSFUL(msg->status_code)) {
+        webkit_web_policy_decision_download(decision);
         return true;
     }
     return false;