summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/webengine/webenginetab.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/webengine/webenginetab.py')
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index c793a1929..f9b636bde 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -401,6 +401,16 @@ class WebEngineCaret(browsertab.AbstractCaret):
self._js_call('reverseSelection')
def _follow_selected_cb_wrapped(self, js_elem, tab):
+ if sip.isdeleted(self):
+ # Sometimes, QtWebEngine JS callbacks seem to be stuck, and will
+ # later get executed when the tab is closed. However, at this point,
+ # the WebEngineCaret is already gone.
+ log.webview.warning(
+ "Got follow_selected callback for deleted WebEngineCaret. "
+ "This is most likely due to a QtWebEngine bug, please report a "
+ "qutebrowser issue if you know a way to reproduce this.")
+ return
+
try:
self._follow_selected_cb(js_elem, tab)
finally:
@@ -1593,7 +1603,9 @@ class WebEngineTab(browsertab.AbstractTab):
up doing it twice.
"""
super()._on_url_changed(url)
- if url.isValid() and qtutils.version_check('5.13'):
+ if (url.isValid() and
+ qtutils.version_check('5.13') and
+ not qtutils.version_check('5.14')):
self.settings.update_for_url(url)
@pyqtSlot(usertypes.NavigationRequest)