summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/qtnetworkdownloads.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/qtnetworkdownloads.py')
-rw-r--r--qutebrowser/browser/qtnetworkdownloads.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/qutebrowser/browser/qtnetworkdownloads.py b/qutebrowser/browser/qtnetworkdownloads.py
index e178fb0e5..f048d293d 100644
--- a/qutebrowser/browser/qtnetworkdownloads.py
+++ b/qutebrowser/browser/qtnetworkdownloads.py
@@ -202,6 +202,17 @@ class DownloadItem(downloads.AbstractDownloadItem):
# Note: self._reply is deleted when the download finishes
return self._url
+ def origin(self) -> QUrl:
+ if self._reply is None:
+ return QUrl()
+ origin = self._reply.request().originatingObject()
+ try:
+ return origin.url()
+ except AttributeError:
+ # Raised either if origin is None or some object that doesn't
+ # have its own url.
+ return QUrl()
+
def _ensure_can_set_filename(self, filename):
if self.fileobj is not None: # pragma: no cover
raise ValueError("fileobj was already set! filename: {}, "
@@ -549,6 +560,9 @@ class DownloadManager(downloads.AbstractDownloadManager):
download = DownloadItem(reply, manager=self)
self._init_item(download, auto_remove, suggested_filename)
+ if download.cancel_for_origin():
+ return download
+
if target is not None:
download.set_target(target)
return download