Ensure virtual display cleanup runs on browser close failure

This commit is contained in:
joaoneves0 2025-04-14 14:23:38 -03:00
parent 95cc4489d0
commit fd1bb2f878

View file

@ -302,9 +302,13 @@ async def async_attach_vd(
_close = browser.close
async def new_close(*args: Any, **kwargs: Any):
await _close(*args, **kwargs)
if virtual_display:
virtual_display.kill()
try:
await _close(*args, **kwargs)
except Exception:
raise
finally:
if virtual_display:
virtual_display.kill()
browser.close = new_close
browser._virtual_display = virtual_display
@ -324,9 +328,13 @@ def sync_attach_vd(
_close = browser.close
def new_close(*args: Any, **kwargs: Any):
_close(*args, **kwargs)
if virtual_display:
virtual_display.kill()
try:
_close(*args, **kwargs)
except Exception:
raise
finally:
if virtual_display:
virtual_display.kill()
browser.close = new_close
browser._virtual_display = virtual_display