diff options
author | Florian Bruhin <me@the-compiler.org> | 2022-05-24 14:23:35 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2022-08-23 18:31:41 +0200 |
commit | 6c1ba9281f6a409701eac60f1c6d9962e7960fc9 (patch) | |
tree | aef3e4f42d32dc0c7d3049e7aa578cfa5d97b0ec | |
parent | 0cf7453fc341dbf03364192cd889f237f81704de (diff) | |
download | qutebrowser-6c1ba9281f6a409701eac60f1c6d9962e7960fc9.tar.gz qutebrowser-6c1ba9281f6a409701eac60f1c6d9962e7960fc9.zip |
Workaround for clicking links in local URLs
Closes #7194
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 5e6103ccc..37750e343 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -1611,6 +1611,26 @@ class WebEngineTab(browsertab.AbstractTab): def _on_navigation_request(self, navigation): super()._on_navigation_request(navigation) + local_schemes = {"qute", "file"} + qtwe_ver = version.qtwebengine_versions().webengine + if ( + navigation.accepted and + self.url().scheme().lower() in local_schemes and + navigation.url.scheme().lower() not in local_schemes and + (navigation.navigation_type == + usertypes.NavigationRequest.Type.link_clicked) and + navigation.is_main_frame and + (utils.VersionNumber(6, 2) <= qtwe_ver < utils.VersionNumber(6, 2, 5) or + utils.VersionNumber(6, 3) <= qtwe_ver < utils.VersionNumber(6, 3, 1)) + ): + # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-103778 + log.webview.debug( + "Working around blocked request from local page " + f"{self.url().toDisplayString()}" + ) + navigation.accepted = False + self.load_url(navigation.url) + if not navigation.accepted or not navigation.is_main_frame: return |