summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-11 17:00:04 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-11 17:00:04 +0100
commitde42cffd4f7a03409571aba3849155ff593108e4 (patch)
treef39486e86c8fdfda5398ab3c14cc1382e3865d24
parent4709d46936b379605aca110c7dd336d1cff45db6 (diff)
downloadqutebrowser-de42cffd4f7a03409571aba3849155ff593108e4.tar.gz
qutebrowser-de42cffd4f7a03409571aba3849155ff593108e4.zip
Add a hint pointing to the locale workaround
See #6235
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py37
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.