This commit is contained in:
Florian Bruhin 2018-02-25 16:08:15 +01:00
parent 97e00ba4b5
commit a32d74e983
3 changed files with 10 additions and 6 deletions

View File

@ -33,7 +33,7 @@ from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile,
from qutebrowser.browser import shared from qutebrowser.browser import shared
from qutebrowser.browser.webengine import spell 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, from qutebrowser.utils import (utils, standarddir, javascript, qtutils,
message, log, objreg) message, log, objreg)

View File

@ -894,14 +894,17 @@ class WebEngineTab(browsertab.AbstractTab):
def _on_load_finished(self, ok): def _on_load_finished(self, ok):
"""Display a static error page if JavaScript is disabled.""" """Display a static error page if JavaScript is disabled."""
super()._on_load_finished(ok) 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) self.dump_async(self._error_page_workaround)
if ok and self._reload_url is not None: if ok and self._reload_url is not None:
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656 # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656
log.config.debug( log.config.debug(
"Reloading {} because of config change".format( "Reloading {} because of config change".format(
self._reload_url.toDisplayString())) 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 self._reload_url = None
@pyqtSlot(QUrl) @pyqtSlot(QUrl)
@ -914,8 +917,9 @@ class WebEngineTab(browsertab.AbstractTab):
super()._on_navigation_request(navigation) super()._on_navigation_request(navigation)
if navigation.accepted and navigation.is_main_frame: if navigation.accepted and navigation.is_main_frame:
changed = self.settings.update_for_url(navigation.url) changed = self.settings.update_for_url(navigation.url)
if (changed & {'content.plugins', 'content.javascript.enabled'} and needs_reload = {'content.plugins', 'content.javascript.enabled'}
navigation.navigation_type != navigation.Type.link_clicked): if (changed & needs_reload and navigation.navigation_type !=
navigation.Type.link_clicked):
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656 # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-66656
self._reload_url = navigation.url self._reload_url = navigation.url

View File

@ -29,7 +29,7 @@ import os.path
from PyQt5.QtGui import QFont from PyQt5.QtGui import QFont
from PyQt5.QtWebKit import QWebSettings 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.utils import standarddir, urlutils
from qutebrowser.browser import shared from qutebrowser.browser import shared