From 7ac7ccc2967d19cae332e7082e380e7df27d1e75 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sat, 28 Jul 2018 09:18:50 +0200 Subject: [PATCH] Ignore invalid URLs in acceptNavigationRequest --- doc/changelog.asciidoc | 2 ++ qutebrowser/browser/webengine/webview.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 2652cc588..8b180cf2a 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -37,6 +37,8 @@ Fixed - Crash when using `:follow-selected` with a link which is outside of the view. - Workaround for windows not showing as urgent with some window managers (like i3). +- Crash when opening URLs with some unicode characters (IDNA 2008). Those URLs + still won't open though, due to missing support in Qt. v1.4.1 ------ diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py index b10cc5f9a..784bc57d6 100644 --- a/qutebrowser/browser/webengine/webview.py +++ b/qutebrowser/browser/webengine/webview.py @@ -242,6 +242,14 @@ class WebEnginePage(QWebEnginePage): typ: QWebEnginePage.NavigationType, is_main_frame: bool): """Override acceptNavigationRequest to forward it to the tab API.""" + if not url.isValid(): + # WORKAROUND for missing IDNA 2008 support in QUrl + # see https://bugreports.qt.io/browse/QTBUG-60364 + log.webview.debug("Ignoring invalid URL {} in " + "acceptNavigationRequest: {}".format( + url.toDisplayString(), url.errorString())) + return True + type_map = { QWebEnginePage.NavigationTypeLinkClicked: usertypes.NavigationRequest.Type.link_clicked,