summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/changelog.asciidoc5
-rw-r--r--misc/requirements/requirements-check-manifest.txt2
-rw-r--r--misc/requirements/requirements-dev.txt2
-rw-r--r--misc/requirements/requirements-sphinx.txt2
-rw-r--r--misc/requirements/requirements-tests.txt6
-rw-r--r--misc/requirements/requirements-tox.txt2
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py17
-rw-r--r--qutebrowser/misc/crashsignal.py2
-rw-r--r--tests/end2end/fixtures/webserver.py2
9 files changed, 19 insertions, 21 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index a446ec534..b8870af02 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -70,6 +70,11 @@ Fixed
shown when closing the last window (rather than closing any window, which
would continue running that window's downloads). Unfortunately, more issues
with `confirm_quit` and multiple windows remain.
+- Crash when a previous crash-log file contains non-ASCII characters (which
+ should never happen unless it was edited manually)
+- Due to changes in Debian, an old workaround (for broken QtWebEngine patching
+ on Debian) caused the inferior qutebrowser error page to be displayed, when
+ Chromium's would have worked fine. The workaround was now dropped.
[[v2.4.1]]
v2.4.1 (unreleased)
diff --git a/misc/requirements/requirements-check-manifest.txt b/misc/requirements/requirements-check-manifest.txt
index bd32971c2..9d42d3a5b 100644
--- a/misc/requirements/requirements-check-manifest.txt
+++ b/misc/requirements/requirements-check-manifest.txt
@@ -4,6 +4,6 @@ build==0.7.0
check-manifest==0.47
packaging==21.3
pep517==0.12.0
-pyparsing==3.0.6
+pyparsing==3.0.7
toml==0.10.2
tomli==2.0.0
diff --git a/misc/requirements/requirements-dev.txt b/misc/requirements/requirements-dev.txt
index c075e7afc..93c9b707f 100644
--- a/misc/requirements/requirements-dev.txt
+++ b/misc/requirements/requirements-dev.txt
@@ -24,7 +24,7 @@ pkginfo==1.8.2
pycparser==2.21
Pygments==2.11.2
Pympler==1.0.1
-pyparsing==3.0.6
+pyparsing==3.0.7
PyQt-builder==1.12.2
python-dateutil==2.8.2
readme-renderer==32.0
diff --git a/misc/requirements/requirements-sphinx.txt b/misc/requirements/requirements-sphinx.txt
index 1ad7e8e0b..ea4dd6430 100644
--- a/misc/requirements/requirements-sphinx.txt
+++ b/misc/requirements/requirements-sphinx.txt
@@ -12,7 +12,7 @@ Jinja2==3.0.3
MarkupSafe==2.0.1
packaging==21.3
Pygments==2.11.2
-pyparsing==3.0.6
+pyparsing==3.0.7
pytz==2021.3
requests==2.27.1
snowballstemmer==2.2.0
diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt
index 45a5144d3..40b653d97 100644
--- a/misc/requirements/requirements-tests.txt
+++ b/misc/requirements/requirements-tests.txt
@@ -13,7 +13,7 @@ filelock==3.4.2 ; python_version>="3.7"
Flask==2.0.2
glob2==0.7
hunter==3.4.3
-hypothesis==6.35.1 ; python_version>="3.7"
+hypothesis==6.36.0 ; python_version>="3.7"
icdiff==2.0.4
idna==3.3
iniconfig==1.1.1
@@ -26,13 +26,13 @@ manhole==1.8.0
more-itertools==8.12.0
packaging==21.3
parse==1.19.0
-parse-type==0.5.2
+parse-type==0.6.0
pluggy==1.0.0
pprintpp==0.4.0
py==1.11.0
py-cpuinfo==8.0.0
Pygments==2.11.2
-pyparsing==3.0.6
+pyparsing==3.0.7
pytest==6.2.5
pytest-bdd==4.1.0
pytest-benchmark==3.4.1
diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt
index f348ac86e..1d7c20b8c 100644
--- a/misc/requirements/requirements-tox.txt
+++ b/misc/requirements/requirements-tox.txt
@@ -7,7 +7,7 @@ pip==21.3.1
platformdirs==2.4.1 ; python_version>="3.7"
pluggy==1.0.0
py==1.11.0
-pyparsing==3.0.6
+pyparsing==3.0.7
setuptools==60.5.0 ; python_version>="3.7"
six==1.16.0
toml==0.10.2
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index fa877f560..7fa0b2b65 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -1522,15 +1522,14 @@ class WebEngineTab(browsertab.AbstractTab):
}
self.renderer_process_terminated.emit(status_map[status], exitcode)
- def _error_page_workaround(self, js_enabled, html):
+ def _error_page_workaround(self, html):
"""Check if we're displaying a Chromium error page.
- This gets called if we got a loadFinished(False), so we can display at
- least some error page in situations where Chromium's can't be
+ This gets called if we got a loadFinished(False) without JavaScript, so
+ we can display at least some error page, since Chromium's can't be
displayed.
WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66643
- WORKAROUND for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882805
"""
match = re.search(r'"errorCode":"([^"]*)"', html)
if match is None:
@@ -1538,11 +1537,6 @@ class WebEngineTab(browsertab.AbstractTab):
error = match.group(1)
log.webview.error("Load error: {}".format(error))
-
- missing_jst = 'jstProcess(' in html and 'jstProcess=' not in html
- if js_enabled and not missing_jst:
- return
-
self._show_error_page(self.url(), error=error)
@pyqtSlot(int)
@@ -1565,9 +1559,8 @@ class WebEngineTab(browsertab.AbstractTab):
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-65223
self._update_load_status(ok)
- self.dump_async(functools.partial(
- self._error_page_workaround,
- self.settings.test_attribute('content.javascript.enabled')))
+ if not self.settings.test_attribute('content.javascript.enabled'):
+ self.dump_async(self._error_page_workaround)
@pyqtSlot(certificateerror.CertificateErrorWrapper)
def _on_ssl_errors(self, error):
diff --git a/qutebrowser/misc/crashsignal.py b/qutebrowser/misc/crashsignal.py
index f7578a07f..d94d3ec54 100644
--- a/qutebrowser/misc/crashsignal.py
+++ b/qutebrowser/misc/crashsignal.py
@@ -100,7 +100,7 @@ class CrashHandler(QObject):
# There's no log file, so we can use this to display crashes to
# the user on the next start.
self._init_crashlogfile()
- except OSError:
+ except (OSError, UnicodeDecodeError):
log.init.exception("Error while handling crash log file!")
self._init_crashlogfile()
diff --git a/tests/end2end/fixtures/webserver.py b/tests/end2end/fixtures/webserver.py
index 0fc32cd88..81f75b338 100644
--- a/tests/end2end/fixtures/webserver.py
+++ b/tests/end2end/fixtures/webserver.py
@@ -162,7 +162,7 @@ class WebserverProcess(testprocess.Process):
def _parse_line(self, line):
self._log(line)
- started_re = re.compile(r' \* Running on https?://127\.0\.0\.1:{}/ '
+ started_re = re.compile(r' \* Running on https?://127\.0\.0\.1:{}/? '
r'\(Press CTRL\+C to quit\)'.format(self.port))
if started_re.fullmatch(line):
self.ready.emit()