summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/browser/webengine/webview.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py
index d6c90cb46..a6f2ae113 100644
--- a/qutebrowser/browser/webengine/webview.py
+++ b/qutebrowser/browser/webengine/webview.py
@@ -5,7 +5,7 @@
"""The main browser widget for QtWebEngine."""
import mimetypes
-from typing import List, Iterable
+from typing import List, Iterable, Optional
from qutebrowser.qt import machinery
from qutebrowser.qt.core import pyqtSignal, pyqtSlot, QUrl
@@ -316,22 +316,28 @@ class WebEnginePage(QWebEnginePage):
def chooseFiles(
self,
mode: QWebEnginePage.FileSelectionMode,
- old_files: Iterable[str],
- accepted_mimetypes: Iterable[str],
+ old_files: Iterable[Optional[str]],
+ accepted_mimetypes: Iterable[Optional[str]],
) -> List[str]:
"""Override chooseFiles to (optionally) invoke custom file uploader."""
- extra_suffixes = extra_suffixes_workaround(accepted_mimetypes)
+ accepted_mimetypes_filtered = [m for m in accepted_mimetypes if m is not None]
+ old_files_filtered = [f for f in old_files if f is not None]
+ extra_suffixes = extra_suffixes_workaround(accepted_mimetypes_filtered)
if extra_suffixes:
log.webview.debug(
"adding extra suffixes to filepicker: "
- f"before={accepted_mimetypes} "
+ f"before={accepted_mimetypes_filtered} "
f"added={extra_suffixes}",
)
- accepted_mimetypes = list(accepted_mimetypes) + list(extra_suffixes)
+ accepted_mimetypes_filtered = list(
+ accepted_mimetypes_filtered
+ ) + list(extra_suffixes)
handler = config.val.fileselect.handler
if handler == "default":
- return super().chooseFiles(mode, old_files, accepted_mimetypes)
+ return super().chooseFiles(
+ mode, old_files_filtered, accepted_mimetypes_filtered,
+ )
assert handler == "external", handler
try:
qb_mode = _QB_FILESELECTION_MODES[mode]
@@ -339,6 +345,8 @@ class WebEnginePage(QWebEnginePage):
log.webview.warning(
f"Got file selection mode {mode}, but we don't support that!"
)
- return super().chooseFiles(mode, old_files, accepted_mimetypes)
+ return super().chooseFiles(
+ mode, old_files_filtered, accepted_mimetypes_filtered,
+ )
return shared.choose_file(qb_mode=qb_mode)