Disable loadFinished workaround on unaffected versions
With QtWebEngine 5.15.5+, we shouldn't need the workaround anymore.
This also seems to fix flakiness in
tests/end2end/features/test_navigate_bdd.py::test_navigating_up_in_qutehelp
where sometimes no loadFinished signal was found.
Relevant commits: git log -G 65223
Partially reverts 1106d82591.
TODO: Changelog
TODO: Pick to master?
This commit is contained in:
parent
e4bc609ff4
commit
0ace4a5fee
|
|
@ -1294,6 +1294,9 @@ class WebEngineTab(browsertab.AbstractTab):
|
|||
self._child_event_filter = None
|
||||
self._saved_zoom = None
|
||||
self._scripts.init()
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-65223
|
||||
self._needs_qtbug65223_workaround = (
|
||||
version.qtwebengine_versions().webengine < utils.VersionNumber(5, 15, 5))
|
||||
|
||||
def _set_widget(self, widget):
|
||||
# pylint: disable=protected-access
|
||||
|
|
@ -1533,22 +1536,25 @@ class WebEngineTab(browsertab.AbstractTab):
|
|||
def _on_load_progress(self, perc: int) -> None:
|
||||
"""QtWebEngine-specific loadProgress workarounds.
|
||||
|
||||
WORKAROUND for https://bugreports.qt.io/browse/QTBUG-65223
|
||||
"""
|
||||
super()._on_load_progress(perc)
|
||||
if (perc == 100 and
|
||||
self.load_status() != usertypes.LoadStatus.error):
|
||||
if (
|
||||
self._needs_qtbug65223_workaround and
|
||||
perc == 100 and
|
||||
self.load_status() != usertypes.LoadStatus.error
|
||||
):
|
||||
self._update_load_status(ok=True)
|
||||
|
||||
@pyqtSlot(bool)
|
||||
def _on_load_finished(self, ok: bool) -> None:
|
||||
"""QtWebEngine-specific loadFinished workarounds."""
|
||||
"""QtWebEngine-specific loadFinished code."""
|
||||
super()._on_load_finished(ok)
|
||||
|
||||
if not ok:
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-65223
|
||||
if not self._needs_qtbug65223_workaround or not ok:
|
||||
# With the workaround, this should only run with ok=False
|
||||
self._update_load_status(ok)
|
||||
|
||||
if not ok:
|
||||
self.dump_async(functools.partial(
|
||||
self._error_page_workaround,
|
||||
self.settings.test_attribute('content.javascript.enabled')))
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ from qutebrowser.mainwindow import tabwidget, mainwindow
|
|||
from qutebrowser.browser import signalfilter, browsertab, history
|
||||
from qutebrowser.utils import (log, usertypes, utils, qtutils, objreg,
|
||||
urlutils, message, jinja, version)
|
||||
from qutebrowser.misc import quitter
|
||||
from qutebrowser.misc import quitter, objects
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
|
|
@ -227,9 +227,14 @@ class TabbedBrowser(QWidget):
|
|||
|
||||
self.widget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
|
||||
# load_finished instead of load_started as WORKAROUND for
|
||||
# https://bugreports.qt.io/browse/QTBUG-65223
|
||||
self.cur_load_finished.connect(self._leave_modes_on_load)
|
||||
if (
|
||||
objects.backend == usertypes.Backend.QtWebEngine and
|
||||
version.qtwebengine_versions().webengine < utils.VersionNumber(5, 15, 5)
|
||||
):
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-65223
|
||||
self.cur_load_finished.connect(self._leave_modes_on_load)
|
||||
else:
|
||||
self.cur_load_started.connect(self._leave_modes_on_load)
|
||||
|
||||
# handle mode_override
|
||||
self.current_tab_changed.connect(lambda tab: self._mode_override(tab.url()))
|
||||
|
|
|
|||
Loading…
Reference in New Issue