summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2019-11-09 23:32:31 +0100
committerFlorian Bruhin <me@the-compiler.org>2019-11-22 15:32:40 +0100
commit300b88fcbfe395988591cedcccdb63a199a9d355 (patch)
tree6a2d4580eaf6469f809714854785531600e14284
parent6b141021de6ae4b475b87af653baba6339e05547 (diff)
downloadqutebrowser-300b88fcbfe395988591cedcccdb63a199a9d355.tar.gz
qutebrowser-300b88fcbfe395988591cedcccdb63a199a9d355.zip
Work around broken error pages on Debian
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882805 See #5078, #3773 (cherry picked from commit d741bdf2f92b9dcf897b15c9d850fff6442f1cf7)
-rw-r--r--doc/changelog.asciidoc1
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py16
2 files changed, 13 insertions, 4 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index 9e9f25783..e51ef6d01 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -41,6 +41,7 @@ Fixed
- Downloads are now hidden properly when the browser is in fullscreen mode.
- Crash when setting `colors.webpage.bg` to an empty value with QtWebKit.
- Crash when the history database file is not a proper sqlite database.
+- Workaround for missing/broken error pages on Debian.
v1.8.1 (2019-09-27)
-------------------
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index fc11b75a5..d79ad7a92 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -1352,13 +1352,22 @@ class WebEngineTab(browsertab.AbstractTab):
def _error_page_workaround(self, html):
"""Check if we're displaying a Chromium error page.
- This gets only called if we got loadFinished(False) without JavaScript,
- so we can display at least some 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
+ displayed.
WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66643
+ WORKAROUND for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882805
+
Needs to check the page content as a WORKAROUND for
https://bugreports.qt.io/browse/QTBUG-66661
"""
+ js_enabled = self.settings.test_attribute('content.javascript.enabled')
+ missing_jst = 'jstProcess(' in html and 'jstProcess=' not in html
+
+ if js_enabled and not missing_jst:
+ return
+
match = re.search(r'"errorCode":"([^"]*)"', html)
if match is None:
return
@@ -1388,8 +1397,7 @@ class WebEngineTab(browsertab.AbstractTab):
else:
self._update_load_status(ok)
- js_enabled = self.settings.test_attribute('content.javascript.enabled')
- if not ok and not js_enabled:
+ if not ok:
self.dump_async(self._error_page_workaround)
if ok and self._reload_url is not None: