diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-03-11 17:00:04 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-03-11 17:00:04 +0100 |
commit | de42cffd4f7a03409571aba3849155ff593108e4 (patch) | |
tree | f39486e86c8fdfda5398ab3c14cc1382e3865d24 | |
parent | 4709d46936b379605aca110c7dd336d1cff45db6 (diff) | |
download | qutebrowser-de42cffd4f7a03409571aba3849155ff593108e4.tar.gz qutebrowser-de42cffd4f7a03409571aba3849155ff593108e4.zip |
Add a hint pointing to the locale workaround
See #6235
-rw-r--r-- | qutebrowser/mainwindow/tabbedbrowser.py | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index 8d2801d31..7026b8a6c 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -35,7 +35,7 @@ from qutebrowser.keyinput import modeman from qutebrowser.mainwindow import tabwidget, mainwindow from qutebrowser.browser import signalfilter, browsertab, history from qutebrowser.utils import (log, usertypes, utils, qtutils, objreg, - urlutils, message, jinja) + urlutils, message, jinja, version) from qutebrowser.misc import quitter @@ -936,15 +936,34 @@ class TabbedBrowser(QWidget): } msg = messages[status] + f" (status {code})" - def show_error_page(html): - tab.set_html(html) - log.webview.error(msg) + # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-91715 + versions = version.qtwebengine_versions() + is_qtbug_91715 = ( + status == browsertab.TerminationStatus.unknown and + code == 1002 and + versions.webengine == utils.VersionNumber(5, 15, 3)) - url_string = tab.url(requested=True).toDisplayString() - error_page = jinja.render( - 'error.html', title="Error loading {}".format(url_string), - url=url_string, error=msg) - QTimer.singleShot(100, lambda: show_error_page(error_page)) + if is_qtbug_91715: + log.webview.error(msg) + log.webview.error('') + log.webview.error( + 'NOTE: If you see this and "Network service crashed, restarting ' + 'service.", please see:') + log.webview.error('https://github.com/qutebrowser/qutebrowser/issues/6235') + log.webview.error( + 'You can set the "qt.workarounds.locale" setting in qutebrowser to ' + 'work around the issue.') + log.webview.error( + 'A proper fix is likely available in QtWebEngine soon (which is why ' + 'the workaround is disabled by default).') + log.webview.error('') + else: + log.webview.error(msg) + url_string = tab.url(requested=True).toDisplayString() + error_page = jinja.render( + 'error.html', title="Error loading {}".format(url_string), + url=url_string, error=msg) + QTimer.singleShot(100, lambda: tab.set_html(error_page)) def resizeEvent(self, e): """Extend resizeEvent of QWidget to emit a resized signal afterwards. |