From 85de230f313da81cbbd061e66e8de64e5b33104c Mon Sep 17 00:00:00 2001 From: i-c-b <133848861+i-c-b@users.noreply.github.com> Date: Mon, 11 Mar 2024 11:03:02 -0500 Subject: [PATCH] fix(core): race between drop old JS listeners and create new listeners on page load (#9144) * fix(core): race between drop old JS listeners and create new listeners on page load * Create fix-js-unlisten-all-race.md --- .changes/fix-js-unlisten-all-race.md | 5 +++++ core/tauri/src/webview/mod.rs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changes/fix-js-unlisten-all-race.md diff --git a/.changes/fix-js-unlisten-all-race.md b/.changes/fix-js-unlisten-all-race.md new file mode 100644 index 000000000..bf3be508a --- /dev/null +++ b/.changes/fix-js-unlisten-all-race.md @@ -0,0 +1,5 @@ +--- +"tauri": patch:bug +--- + +Fix old JS listeners being dropped on page load after it was possible to create new listeners. diff --git a/core/tauri/src/webview/mod.rs b/core/tauri/src/webview/mod.rs index 0c740d057..093e21765 100644 --- a/core/tauri/src/webview/mod.rs +++ b/core/tauri/src/webview/mod.rs @@ -571,7 +571,7 @@ tauri::Builder::default() .on_page_load_handler .replace(Box::new(move |url, event| { if let Some(w) = manager_.get_webview(&label_) { - if let PageLoadEvent::Finished = event { + if let PageLoadEvent::Started = event { w.unlisten_all_js(); } if let Some(handler) = self.on_page_load_handler.as_ref() {