diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index a4ca69856..2b9ae55e2 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -33,7 +33,7 @@ from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile, from qutebrowser.browser import shared from qutebrowser.browser.webengine import spell -from qutebrowser.config import config, websettings, configutils +from qutebrowser.config import config, websettings from qutebrowser.utils import (utils, standarddir, javascript, qtutils, message, log, objreg) diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index be7929510..ab0b866ca 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -894,14 +894,17 @@ class WebEngineTab(browsertab.AbstractTab): def _on_load_finished(self, ok): """Display a static error page if JavaScript is disabled.""" super()._on_load_finished(ok) - if not ok and not self.settings.test_attribute('content.javascript.enabled'): + js_enabled = self.settings.test_attribute('content.javascript.enabled') + if not ok and not js_enabled: self.dump_async(self._error_page_workaround) + if ok and self._reload_url is not None: # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656 log.config.debug( "Reloading {} because of config change".format( self._reload_url.toDisplayString())) - QTimer.singleShot(100, lambda url=self._reload_url: self.openurl(url)) + QTimer.singleShot(100, lambda url=self._reload_url: + self.openurl(url)) self._reload_url = None @pyqtSlot(QUrl) @@ -914,8 +917,9 @@ class WebEngineTab(browsertab.AbstractTab): super()._on_navigation_request(navigation) if navigation.accepted and navigation.is_main_frame: changed = self.settings.update_for_url(navigation.url) - if (changed & {'content.plugins', 'content.javascript.enabled'} and - navigation.navigation_type != navigation.Type.link_clicked): + needs_reload = {'content.plugins', 'content.javascript.enabled'} + 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 diff --git a/qutebrowser/browser/webkit/webkitsettings.py b/qutebrowser/browser/webkit/webkitsettings.py index d8cbfbb2e..9b120e514 100644 --- a/qutebrowser/browser/webkit/webkitsettings.py +++ b/qutebrowser/browser/webkit/webkitsettings.py @@ -29,7 +29,7 @@ import os.path from PyQt5.QtGui import QFont from PyQt5.QtWebKit import QWebSettings -from qutebrowser.config import config, websettings, configutils +from qutebrowser.config import config, websettings from qutebrowser.utils import standarddir, urlutils from qutebrowser.browser import shared