diff options
Diffstat (limited to 'qutebrowser/utils/urlutils.py')
-rw-r--r-- | qutebrowser/utils/urlutils.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/qutebrowser/utils/urlutils.py b/qutebrowser/utils/urlutils.py index 24285404a..fa7867d4d 100644 --- a/qutebrowser/utils/urlutils.py +++ b/qutebrowser/utils/urlutils.py @@ -25,6 +25,7 @@ import os.path import ipaddress import posixpath import urllib.parse +import mimetypes from typing import Optional, Tuple, Union from PyQt5.QtCore import QUrl @@ -452,6 +453,14 @@ def filename_from_url(url: QUrl, fallback: str = None) -> Optional[str]: if not url.isValid(): return fallback + if url.scheme().lower() == 'data': + media_type, _params, _data = parse_data_url(url) + if not media_type: + return fallback + + ext = mimetypes.guess_extension(media_type, strict=False) or '' + return 'download' + ext + pathname = posixpath.basename(url.path()) if pathname: return pathname |