summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-06-01 11:26:11 +0200
committerFlorian Bruhin <me@the-compiler.org>2021-06-01 16:49:30 +0200
commit67e0500e61400c68b38400602b389ce1798d4690 (patch)
treee4252ed9aef7d1f97dfaf7f6bea35bce49886e02
parent6c1bff8fa5a5206c37cd435f001f16bcdbeff880 (diff)
downloadqutebrowser-67e0500e61400c68b38400602b389ce1798d4690.tar.gz
qutebrowser-67e0500e61400c68b38400602b389ce1798d4690.zip
Speculative fix for deleted WebEngineCaret
(Hopefully) fixes #6394. (cherry picked from commit a3f9cad456f69a9febb65a27510f56d0d8b2f34f)
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index c793a1929..181fb724f 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: