From 8a4bba11ed846ffd96adf0089875229506290fc7 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 25 Jun 2018 20:35:48 +0200 Subject: [PATCH] Disable certificate workaround on Qt >= 5.9 Fixes #4020 --- doc/changelog.asciidoc | 2 ++ qutebrowser/browser/webengine/webview.py | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 786ec712e..b8df97ea3 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -104,6 +104,8 @@ Changed Existing dictionaries are copied over. - If an error while parsing `~/.netrc` occurs, the cause of the error is now logged. +- On Qt 5.9 or newer, certificate errors now show Chromium's detailed error + page. Fixed ~~~~~ diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py index 7436bc01a..11add368e 100644 --- a/qutebrowser/browser/webengine/webview.py +++ b/qutebrowser/browser/webengine/webview.py @@ -199,15 +199,18 @@ class WebEnginePage(QWebEnginePage): "{}".format(error)) ignore = False + log.webview.debug("ignore {}, URL {}, requested {}".format( + ignore, url, self.requestedUrl())) + + # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-56207 # We can't really know when to show an error page, as the error might # have happened when loading some resource. # However, self.url() is not available yet and self.requestedUrl() # might not match the URL we get from the error - so we just apply a # heuristic here. - # See https://bugreports.qt.io/browse/QTBUG-56207 - log.webview.debug("ignore {}, URL {}, requested {}".format( - ignore, url, self.requestedUrl())) - if not ignore and url.matches(self.requestedUrl(), QUrl.RemoveScheme): + if (not qtutils.version_check('5.9') and + not ignore and + url.matches(self.requestedUrl(), QUrl.RemoveScheme)): self.setHtml(error_page) return ignore