fix(webdriver): windows: make native webdriver close with parent process (fix #8610) (#10108)

* fix(webdriver): windows: make native webdriver close with parent process

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
This commit is contained in:
Mateusz Kurowski
2025-04-14 22:57:44 +02:00
committed by GitHub
parent 82406c61e0
commit 577c7ffc45
4 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
---
"tauri-driver": patch:bug
---
Ensure the webdriver process is closed when the tauri-driver process finishes.

21
Cargo.lock generated
View File

@@ -8644,6 +8644,7 @@ dependencies = [
"signal-hook-tokio",
"tokio",
"which",
"win32job",
]
[[package]]
@@ -10161,6 +10162,16 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
[[package]]
name = "win32job"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b2b1bf557d947847a30eb73f79aa6cdb3eaf3ce02f5e9599438f77896a62b3c"
dependencies = [
"thiserror 1.0.69",
"windows 0.52.0",
]
[[package]]
name = "winapi"
version = "0.3.9"
@@ -10207,6 +10218,16 @@ dependencies = [
"windows-version",
]
[[package]]
name = "windows"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
dependencies = [
"windows-core 0.52.0",
"windows-targets 0.52.6",
]
[[package]]
name = "windows"
version = "0.59.0"

View File

@@ -33,3 +33,6 @@ which = "7"
[target."cfg(unix)".dependencies]
signal-hook = "0.3"
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
[target."cfg(windows)".dependencies]
win32job = "2"

View File

@@ -28,6 +28,16 @@ fn main() {
fn main() {
let args = pico_args::Arguments::from_env().into();
#[cfg(windows)]
let _job_handle = {
let job = win32job::Job::create().unwrap();
let mut info = job.query_extended_limit_info().unwrap();
info.limit_kill_on_job_close();
job.set_extended_limit_info(&mut info).unwrap();
job.assign_current_process().unwrap();
job
};
// start the native webdriver on the port specified in args
let mut driver = webdriver::native(&args);
let driver = driver