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 _close = browser.close
async def new_close(*args: Any, **kwargs: Any): async def new_close(*args: Any, **kwargs: Any):
await _close(*args, **kwargs) try:
if virtual_display: await _close(*args, **kwargs)
virtual_display.kill() except Exception:
raise
finally:
if virtual_display:
virtual_display.kill()
browser.close = new_close browser.close = new_close
browser._virtual_display = virtual_display browser._virtual_display = virtual_display
@ -324,9 +328,13 @@ def sync_attach_vd(
_close = browser.close _close = browser.close
def new_close(*args: Any, **kwargs: Any): def new_close(*args: Any, **kwargs: Any):
_close(*args, **kwargs) try:
if virtual_display: _close(*args, **kwargs)
virtual_display.kill() except Exception:
raise
finally:
if virtual_display:
virtual_display.kill()
browser.close = new_close browser.close = new_close
browser._virtual_display = virtual_display browser._virtual_display = virtual_display