diff options
author | Florian Bruhin <me@the-compiler.org> | 2019-11-09 23:32:31 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2019-11-22 15:32:40 +0100 |
commit | 300b88fcbfe395988591cedcccdb63a199a9d355 (patch) | |
tree | 6a2d4580eaf6469f809714854785531600e14284 | |
parent | 6b141021de6ae4b475b87af653baba6339e05547 (diff) | |
download | qutebrowser-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.asciidoc | 1 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 16 |
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: |