summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2016-08-02 00:46:59 +0200
committerFlorian Bruhin <git@the-compiler.org>2016-08-02 16:17:05 +0200
commit3eba7fc314eb659d648763bcbd1e2c08019903e7 (patch)
treed4733ed4499774d2d5b48fb03b4d62ab2d20b22b
parent11d7486f97574d814245623584cd2f732fcad28c (diff)
downloadqutebrowser-3eba7fc314eb659d648763bcbd1e2c08019903e7.tar.gz
qutebrowser-3eba7fc314eb659d648763bcbd1e2c08019903e7.zip
downloads: don't crash on OSError in open-download
Fixes the crash in #1725, but does not provide a solution. The browser won't crash, but the file won't be downloaded and opened either.
-rw-r--r--qutebrowser/browser/webkit/downloads.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/qutebrowser/browser/webkit/downloads.py b/qutebrowser/browser/webkit/downloads.py
index 87e038841..474f8d3e2 100644
--- a/qutebrowser/browser/webkit/downloads.py
+++ b/qutebrowser/browser/webkit/downloads.py
@@ -947,7 +947,13 @@ class DownloadManager(QAbstractListModel):
download.set_filename(target.filename)
elif isinstance(target, usertypes.OpenFileDownloadTarget):
tmp_manager = objreg.get('temporary-downloads')
- fobj = tmp_manager.get_tmpfile(suggested_filename)
+ try:
+ fobj = tmp_manager.get_tmpfile(suggested_filename)
+ except OSError as exc:
+ msg = "Download error: {}".format(exc)
+ message.error(self._win_id, msg)
+ download.cancel()
+ return
download.finished.connect(download.open_file)
download.autoclose = True
download.set_fileobj(fobj)