From 0a75c5a302e230dabe4457ce6321660d3cae04ff Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 6 Mar 2018 07:44:20 +0100 Subject: [PATCH] Make sure options in needs_reload are valid --- qutebrowser/browser/webengine/webenginetab.py | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index f9130f27a..972145edd 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -33,6 +33,7 @@ from PyQt5.QtNetwork import QAuthenticator from PyQt5.QtWidgets import QApplication from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript +from qutebrowser.config import configdata from qutebrowser.browser import browsertab, mouse, shared from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory, interceptor, webenginequtescheme, @@ -938,14 +939,18 @@ class WebEngineTab(browsertab.AbstractTab): @pyqtSlot(usertypes.NavigationRequest) def _on_navigation_request(self, navigation): super()._on_navigation_request(navigation) - if navigation.accepted and navigation.is_main_frame: - changed = self.settings.update_for_url(navigation.url) - needs_reload = {'content.plugins', 'content.javascript.enabled', - 'content.javascript.can_access_clipboard'} - if (changed & needs_reload and navigation.navigation_type != - navigation.Type.link_clicked): - # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656 - self._reload_url = navigation.url + if not navigation.accepted or not navigation.is_main_frame: + return + + needs_reload = {'content.plugins', 'content.javascript.enabled', + 'content.javascript.can_access_clipboard'} + assert needs_reload.issubset(configdata.DATA) + + changed = self.settings.update_for_url(navigation.url) + if (changed & needs_reload and navigation.navigation_type != + navigation.Type.link_clicked): + # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656 + self._reload_url = navigation.url def _connect_signals(self): view = self._widget