summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/changelog.asciidoc4
-rw-r--r--misc/requirements/requirements-check-manifest.txt2
-rw-r--r--misc/requirements/requirements-dev.txt8
-rw-r--r--misc/requirements/requirements-pyinstaller.txt4
-rw-r--r--misc/requirements/requirements-pylint.txt8
-rw-r--r--misc/requirements/requirements-pyroma.txt4
-rw-r--r--misc/requirements/requirements-sphinx.txt4
-rw-r--r--misc/requirements/requirements-tests.txt12
-rw-r--r--misc/requirements/requirements-tox.txt2
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py26
-rw-r--r--qutebrowser/mainwindow/prompt.py23
-rw-r--r--scripts/dev/changelog_urls.json2
-rw-r--r--scripts/dev/ci/docker/Dockerfile.j24
13 files changed, 69 insertions, 34 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index 6fe4d4977..774ba3a18 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -54,6 +54,10 @@ Fixed
- Graphical glitches in Google sheets and PDF.js via a new setting
`qt.workarounds.disable_accelerated_2d_canvas` to disable the accelerated 2D
canvas feature which defaults to enabled on affected Qt versions. (#7489)
+- The download dialog should no longer freeze when browsing to directories
+ with many files. (#7925)
+- The app.slack.com User-Agent quirk now targets chromium 112 on Qt versions
+ lower than 6.6.0 (previously it always targets chromium 99) (#7951)
- Workaround a Qt issue causing jpeg files to not show up in the upload file
picker when it was filtering for image filetypes (#7866)
diff --git a/misc/requirements/requirements-check-manifest.txt b/misc/requirements/requirements-check-manifest.txt
index f39b3bb27..91ceac76a 100644
--- a/misc/requirements/requirements-check-manifest.txt
+++ b/misc/requirements/requirements-check-manifest.txt
@@ -3,7 +3,7 @@
build==1.0.3
check-manifest==0.49
importlib-metadata==6.8.0
-packaging==23.1
+packaging==23.2
pyproject_hooks==1.0.0
tomli==2.0.1
zipp==3.17.0
diff --git a/misc/requirements/requirements-dev.txt b/misc/requirements/requirements-dev.txt
index 1547a0da5..eb0ace85e 100644
--- a/misc/requirements/requirements-dev.txt
+++ b/misc/requirements/requirements-dev.txt
@@ -3,8 +3,8 @@
build==1.0.3
bump2version==1.0.1
certifi==2023.7.22
-cffi==1.15.1
-charset-normalizer==3.2.0
+cffi==1.16.0
+charset-normalizer==3.3.0
cryptography==41.0.4
docutils==0.20.1
github3.py==4.0.1
@@ -20,7 +20,7 @@ markdown-it-py==3.0.0
mdurl==0.1.2
more-itertools==10.1.0
nh3==0.2.14
-packaging==23.1
+packaging==23.2
pkginfo==1.9.6
ply==3.11
pycparser==2.21
@@ -34,7 +34,7 @@ readme-renderer==42.0
requests==2.31.0
requests-toolbelt==1.0.0
rfc3986==2.0.0
-rich==13.5.3
+rich==13.6.0
SecretStorage==3.3.3
sip==6.7.11
six==1.16.0
diff --git a/misc/requirements/requirements-pyinstaller.txt b/misc/requirements/requirements-pyinstaller.txt
index 2f0b35e0d..bb4bb53fe 100644
--- a/misc/requirements/requirements-pyinstaller.txt
+++ b/misc/requirements/requirements-pyinstaller.txt
@@ -1,5 +1,5 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-altgraph==0.17.3
+altgraph==0.17.4
pyinstaller @ git+https://github.com/pyinstaller/pyinstaller.git@79f62ef29822169ae00cd4271390d0e3175476ad
-pyinstaller-hooks-contrib==2023.8
+pyinstaller-hooks-contrib==2023.9
diff --git a/misc/requirements/requirements-pylint.txt b/misc/requirements/requirements-pylint.txt
index f5241bc60..4aabef52c 100644
--- a/misc/requirements/requirements-pylint.txt
+++ b/misc/requirements/requirements-pylint.txt
@@ -1,9 +1,9 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-astroid==2.15.7
+astroid==2.15.8
certifi==2023.7.22
-cffi==1.15.1
-charset-normalizer==3.2.0
+cffi==1.16.0
+charset-normalizer==3.3.0
cryptography==41.0.4
dill==0.3.7
github3.py==4.0.1
@@ -15,7 +15,7 @@ pefile==2023.2.7
platformdirs==3.10.0
pycparser==2.21
PyJWT==2.8.0
-pylint==2.17.5
+pylint==2.17.7
python-dateutil==2.8.2
./scripts/dev/pylint_checkers
requests==2.31.0
diff --git a/misc/requirements/requirements-pyroma.txt b/misc/requirements/requirements-pyroma.txt
index c4f6033ba..04cdcefe3 100644
--- a/misc/requirements/requirements-pyroma.txt
+++ b/misc/requirements/requirements-pyroma.txt
@@ -2,11 +2,11 @@
build==1.0.3
certifi==2023.7.22
-charset-normalizer==3.2.0
+charset-normalizer==3.3.0
docutils==0.20.1
idna==3.4
importlib-metadata==6.8.0
-packaging==23.1
+packaging==23.2
Pygments==2.16.1
pyproject_hooks==1.0.0
pyroma==4.2
diff --git a/misc/requirements/requirements-sphinx.txt b/misc/requirements/requirements-sphinx.txt
index 8480018ca..c28a4c2d0 100644
--- a/misc/requirements/requirements-sphinx.txt
+++ b/misc/requirements/requirements-sphinx.txt
@@ -3,14 +3,14 @@
alabaster==0.7.13
Babel==2.12.1
certifi==2023.7.22
-charset-normalizer==3.2.0
+charset-normalizer==3.3.0
docutils==0.20.1
idna==3.4
imagesize==1.4.1
importlib-metadata==6.8.0
Jinja2==3.1.2
MarkupSafe==2.1.3
-packaging==23.1
+packaging==23.2
Pygments==2.16.1
pytz==2023.3.post1
requests==2.31.0
diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt
index 08da32093..19af1d9f9 100644
--- a/misc/requirements/requirements-tests.txt
+++ b/misc/requirements/requirements-tests.txt
@@ -4,16 +4,16 @@ attrs==23.1.0
beautifulsoup4==4.12.2
blinker==1.6.2
certifi==2023.7.22
-charset-normalizer==3.2.0
+charset-normalizer==3.3.0
cheroot==10.0.0
click==8.1.7
coverage==7.3.1
exceptiongroup==1.1.3
execnet==2.0.2
filelock==3.12.4
-Flask==2.3.3
+Flask==3.0.0
hunter==3.6.1
-hypothesis==6.87.0
+hypothesis==6.87.1
idna==3.4
importlib-metadata==6.8.0
iniconfig==2.0.0
@@ -24,7 +24,7 @@ Mako==1.2.4
manhole==1.8.0
# MarkupSafe==2.1.3
more-itertools==10.1.0
-packaging==23.1
+packaging==23.2
parse==1.19.1
parse-type==0.6.2
pluggy==1.3.0
@@ -37,7 +37,7 @@ pytest-cov==4.1.0
pytest-instafail==0.5.0
pytest-mock==3.11.1
pytest-qt==4.2.0
-pytest-repeat==0.9.1
+pytest-repeat==0.9.2
pytest-rerunfailures==12.0
pytest-xdist==3.3.1
pytest-xvfb==3.0.0
@@ -53,5 +53,5 @@ tomli==2.0.1
typing_extensions==4.8.0
urllib3==2.0.5
vulture==2.9.1
-Werkzeug==2.3.7
+Werkzeug==3.0.0
zipp==3.17.0
diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt
index 9be603451..d98da70d9 100644
--- a/misc/requirements/requirements-tox.txt
+++ b/misc/requirements/requirements-tox.txt
@@ -5,7 +5,7 @@ chardet==5.2.0
colorama==0.4.6
distlib==0.3.7
filelock==3.12.4
-packaging==23.1
+packaging==23.2
pip==23.2.1
platformdirs==3.10.0
pluggy==1.3.0
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py
index fb5403ae2..d0b6b5beb 100644
--- a/qutebrowser/browser/webengine/webenginesettings.py
+++ b/qutebrowser/browser/webengine/webenginesettings.py
@@ -430,12 +430,21 @@ def _init_site_specific_quirks():
"AppleWebKit/{webkit_version} (KHTML, like Gecko) "
"{upstream_browser_key}/{upstream_browser_version} "
"Safari/{webkit_version}")
- new_chrome_ua = ("Mozilla/5.0 ({os_info}) "
- "AppleWebKit/537.36 (KHTML, like Gecko) "
- "Chrome/99 "
- "Safari/537.36")
firefox_ua = "Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0"
+ def maybe_newer_chrome_ua(at_least_version):
+ """Return a new UA if our current chrome version isn't at least at_least_version."""
+ current_chome_version = version.qtwebengine_versions().chromium_major
+ if current_chome_version >= at_least_version:
+ return None
+
+ return (
+ "Mozilla/5.0 ({os_info}) "
+ "AppleWebKit/537.36 (KHTML, like Gecko) "
+ f"Chrome/{at_least_version} "
+ "Safari/537.36"
+ )
+
user_agents = [
# Needed to avoid a ""WhatsApp works with Google Chrome 36+" error
# page which doesn't allow to use WhatsApp Web at all. Also see the
@@ -450,13 +459,14 @@ def _init_site_specific_quirks():
# Needed because Slack adds an error which prevents using it relatively
# aggressively, despite things actually working fine.
- # September 2020: Qt 5.12 works, but Qt <= 5.11 shows the error.
- # FIXME:qt6 Still needed?
- # https://github.com/qutebrowser/qutebrowser/issues/4669
- ("ua-slack", 'https://*.slack.com/*', new_chrome_ua),
+ # October 2023: Slack claims they only support 112+. On #7951 at least
+ # one user claims it still works fine on 108 based Qt versions.
+ ("ua-slack", 'https://*.slack.com/*', maybe_newer_chrome_ua(112)),
]
for name, pattern, ua in user_agents:
+ if not ua:
+ continue
if name not in config.val.content.site_specific_quirks.skip:
config.instance.set_obj('content.headers.user_agent', ua,
pattern=urlmatch.UrlPattern(pattern),
diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py
index 80edf4412..84b6cd18f 100644
--- a/qutebrowser/mainwindow/prompt.py
+++ b/qutebrowser/mainwindow/prompt.py
@@ -15,8 +15,8 @@ from qutebrowser.qt.core import (pyqtSlot, pyqtSignal, Qt, QTimer, QDir, QModelI
QItemSelectionModel, QObject, QEventLoop)
from qutebrowser.qt.widgets import (QWidget, QGridLayout, QVBoxLayout, QLineEdit,
QLabel, QTreeView, QSizePolicy,
- QSpacerItem)
-from qutebrowser.qt.gui import QFileSystemModel
+ QSpacerItem, QFileIconProvider)
+from qutebrowser.qt.gui import (QFileSystemModel, QIcon)
from qutebrowser.browser import downloads
from qutebrowser.config import config, configtypes, configexc, stylesheet
@@ -624,6 +624,21 @@ class LineEditPrompt(_BasePrompt):
return [('prompt-accept', 'Accept'), ('mode-leave', 'Abort')]
+class NullIconProvider(QFileIconProvider):
+
+ """Returns empty icon for everything."""
+
+ def __init__(self):
+ super().__init__()
+ self.null_icon = QIcon()
+
+ def icon(self, _t):
+ return self.null_icon
+
+ def type(self, _info):
+ return 'unknown'
+
+
class FilenamePrompt(_BasePrompt):
"""A prompt for a filename."""
@@ -725,6 +740,10 @@ class FilenamePrompt(_BasePrompt):
def _init_fileview(self):
self._file_view = QTreeView(self)
self._file_model = QFileSystemModel(self)
+
+ # avoid icon and mime type lookups, they are slow in Qt6
+ self._file_model.setIconProvider(NullIconProvider())
+
self._file_view.setModel(self._file_model)
self._file_view.clicked.connect(self._insert_path)
diff --git a/scripts/dev/changelog_urls.json b/scripts/dev/changelog_urls.json
index 5a9c9b34a..1dec20d91 100644
--- a/scripts/dev/changelog_urls.json
+++ b/scripts/dev/changelog_urls.json
@@ -59,7 +59,7 @@
"pep8-naming": "https://github.com/PyCQA/pep8-naming/blob/main/CHANGELOG.rst",
"pycodestyle": "https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt",
"pyflakes": "https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst",
- "cffi": "https://foss.heptapod.net/pypy/cffi/-/blob/branch/default/doc/source/whatsnew.rst",
+ "cffi": "https://github.com/python-cffi/cffi/blob/main/doc/source/whatsnew.rst",
"astroid": "https://github.com/PyCQA/astroid/blob/main/ChangeLog",
"pytest-instafail": "https://github.com/pytest-dev/pytest-instafail/blob/master/CHANGES.rst",
"coverage": "https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst",
diff --git a/scripts/dev/ci/docker/Dockerfile.j2 b/scripts/dev/ci/docker/Dockerfile.j2
index 3a1adbdef..ee398978e 100644
--- a/scripts/dev/ci/docker/Dockerfile.j2
+++ b/scripts/dev/ci/docker/Dockerfile.j2
@@ -41,7 +41,9 @@ RUN pacman -U --noconfirm \
https://archive.archlinux.org/packages/p/python/python-3.10.10-1-x86_64.pkg.tar.zst \
https://archive.archlinux.org/packages/i/icu/icu-72.1-2-x86_64.pkg.tar.zst \
https://archive.archlinux.org/packages/l/libxml2/libxml2-2.10.4-4-x86_64.pkg.tar.zst \
- https://archive.archlinux.org/packages/q/qt5-base/qt5-base-5.15.10%2Bkde%2Br129-3-x86_64.pkg.tar.zst
+ https://archive.archlinux.org/packages/q/qt5-base/qt5-base-5.15.10%2Bkde%2Br129-3-x86_64.pkg.tar.zst \
+ https://archive.archlinux.org/packages/q/qt5-declarative/qt5-declarative-5.15.10%2Bkde%2Br31-1-x86_64.pkg.tar.zst
+
RUN python3 -m ensurepip
RUN python3 -m pip install tox pyqt5-sip
{% endif %}