mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
catch js results that are received after collection closed
This commit is contained in:
parent
a8cadfdc3b
commit
2868ec0e8b
1 changed files with 14 additions and 4 deletions
|
@ -288,7 +288,12 @@ body {{ zoom: {}; {} }}
|
||||||
|
|
||||||
def _evalWithCallback(self, js, cb):
|
def _evalWithCallback(self, js, cb):
|
||||||
if cb:
|
if cb:
|
||||||
self.page().runJavaScript(js, cb)
|
def handler(val):
|
||||||
|
if self._shouldIgnoreWebEvent():
|
||||||
|
print("ignored late js callback", cb)
|
||||||
|
return
|
||||||
|
cb(val)
|
||||||
|
self.page().runJavaScript(js, handler)
|
||||||
else:
|
else:
|
||||||
self.page().runJavaScript(js)
|
self.page().runJavaScript(js)
|
||||||
|
|
||||||
|
@ -310,10 +315,15 @@ body {{ zoom: {}; {} }}
|
||||||
def _openLinksExternally(self, url):
|
def _openLinksExternally(self, url):
|
||||||
openLink(url)
|
openLink(url)
|
||||||
|
|
||||||
|
def _shouldIgnoreWebEvent(self):
|
||||||
|
# async web events may be received after the profile has been closed
|
||||||
|
# or the underlying webview has been deleted
|
||||||
|
from aqt import mw
|
||||||
|
return not mw.col or sip.isdeleted(self)
|
||||||
|
|
||||||
def _onBridgeCmd(self, cmd):
|
def _onBridgeCmd(self, cmd):
|
||||||
# ignore webchannel messages that arrive after underlying webview
|
if self._shouldIgnoreWebEvent():
|
||||||
# deleted
|
print("ignored late bridge cmd", cmd)
|
||||||
if sip.isdeleted(self):
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if cmd == "domDone":
|
if cmd == "domDone":
|
||||||
|
|
Loading…
Reference in a new issue