summaryrefslogtreecommitdiff
path: root/qutebrowser/mainwindow/tabbedbrowser.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/mainwindow/tabbedbrowser.py')
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py34
1 files changed, 28 insertions, 6 deletions
diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py
index 8d2801d31..e081284ee 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,37 @@ class TabbedBrowser(QWidget):
}
msg = messages[status] + f" (status {code})"
+ # 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))
+
def show_error_page(html):
tab.set_html(html)
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: 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:
+ 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))
def resizeEvent(self, e):
"""Extend resizeEvent of QWidget to emit a resized signal afterwards.