diff options
-rw-r--r-- | doc/changelog.asciidoc | 5 | ||||
-rw-r--r-- | misc/requirements/requirements-check-manifest.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-dev.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-sphinx.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-tests.txt | 6 | ||||
-rw-r--r-- | misc/requirements/requirements-tox.txt | 2 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 17 | ||||
-rw-r--r-- | qutebrowser/misc/crashsignal.py | 2 | ||||
-rw-r--r-- | tests/end2end/fixtures/webserver.py | 2 |
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() |