diff options
author | Florian Bruhin <git@the-compiler.org> | 2018-03-13 09:46:09 +0100 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2018-03-13 09:51:34 +0100 |
commit | 4cc4426428e764b0cfd263d8519bd916671cc207 (patch) | |
tree | 37e42faee94f1a0b914ca8b2f791931646d0c6d5 | |
parent | e5bcf99295c7eebc31d8e27ac71ce3a0edf3407b (diff) | |
download | qutebrowser-4cc4426428e764b0cfd263d8519bd916671cc207.tar.gz qutebrowser-4cc4426428e764b0cfd263d8519bd916671cc207.zip |
Don't emit predicted_navigation with invalid URLs
Fixes #3706
(cherry picked from commit 1c9598d2c00257ea82fda211f3e734bcc3e76524)
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 5 | ||||
-rw-r--r-- | qutebrowser/browser/webkit/webkittab.py | 4 | ||||
-rw-r--r-- | qutebrowser/config/websettings.py | 3 |
3 files changed, 9 insertions, 3 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index f1857327b..6206a7774 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -706,7 +706,9 @@ class WebEngineTab(browsertab.AbstractTab): self._widget.shutdown() def reload(self, *, force=False): - self.predicted_navigation.emit(self.url()) + if self.url().isValid(): + self.predicted_navigation.emit(self.url()) + if force: action = QWebEnginePage.ReloadAndBypassCache else: @@ -931,6 +933,7 @@ class WebEngineTab(browsertab.AbstractTab): @pyqtSlot(QUrl) def _on_predicted_navigation(self, url): """If we know we're going to visit an URL soon, change the settings.""" + qtutils.ensure_valid(url) self.settings.update_for_url(url) @pyqtSlot(usertypes.NavigationRequest) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 422645e61..934fdb3c3 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -701,7 +701,9 @@ class WebKitTab(browsertab.AbstractTab): self._widget.shutdown() def reload(self, *, force=False): - self.predicted_navigation.emit(self.url()) + if self.url().isValid(): + self.predicted_navigation.emit(self.url()) + if force: action = QWebPage.ReloadAndBypassCache else: diff --git a/qutebrowser/config/websettings.py b/qutebrowser/config/websettings.py index c069f7d56..cfb53e658 100644 --- a/qutebrowser/config/websettings.py +++ b/qutebrowser/config/websettings.py @@ -22,7 +22,7 @@ from PyQt5.QtGui import QFont from qutebrowser.config import config, configutils -from qutebrowser.utils import log, usertypes, urlmatch +from qutebrowser.utils import log, usertypes, urlmatch, qtutils from qutebrowser.misc import objects UNSET = object() @@ -141,6 +141,7 @@ class AbstractSettings: Return: A set of settings which actually changed. """ + qtutils.ensure_valid(url) changed_settings = set() for values in config.instance: if not values.opt.supports_pattern: |