Skip to content

Commit bdec244

Browse files
authored
Merge pull request #3711 from seleniumbase/improve-cdp-memory-usage
Improve CDP memory usage
2 parents 614a7ab + fac6c58 commit bdec244

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

seleniumbase/__version__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# seleniumbase package
2-
__version__ = "4.37.9"
2+
__version__ = "4.37.10"

seleniumbase/plugins/sb_manager.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -1369,12 +1369,15 @@ def SB(
13691369
"%s%s%s%s%s"
13701370
% (c1, left_space, end_text, right_space, cr)
13711371
)
1372-
if hasattr(sb_config, "_cdp_aclose"):
1372+
if undetectable and hasattr(sb, "_drivers_browser_map"):
13731373
import asyncio
1374-
with suppress(Exception):
1375-
loop = asyncio.get_event_loop()
1376-
asyncio.set_event_loop(loop)
1377-
loop.run_until_complete(sb_config._cdp_aclose())
1374+
for driver in sb._drivers_browser_map.keys():
1375+
if hasattr(driver, "cdp") and driver.cdp:
1376+
asyncio.set_event_loop(driver.cdp.loop)
1377+
tasks = [tab.aclose() for tab in driver.cdp.get_tabs()]
1378+
tasks.append(driver.cdp.driver.connection.aclose())
1379+
driver.cdp.loop.run_until_complete(asyncio.gather(*tasks))
1380+
driver.cdp.loop.close()
13781381
gc.collect()
13791382
if test and test_name and not test_passed and raise_test_failure:
13801383
raise exception

seleniumbase/undetected/cdp_driver/connection.py

-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
)
2020
import websockets
2121
from websockets.protocol import State
22-
from seleniumbase import config as sb_config
2322
from . import cdp_util as util
2423
import mycdp as cdp
2524
import mycdp.network
@@ -271,7 +270,6 @@ async def aopen(self, **kw):
271270
max_size=MAX_SIZE,
272271
)
273272
self.listener = Listener(self)
274-
sb_config._cdp_aclose = self.aclose
275273
except (Exception,) as e:
276274
logger.debug("Exception during opening of websocket: %s", e)
277275
if self.listener:
@@ -446,7 +444,6 @@ async def send(
446444
if not _is_update:
447445
await self._register_handlers()
448446
await self.websocket.send(tx.message)
449-
sb_config._cdp_aclose = self.aclose
450447
try:
451448
return await tx
452449
except ProtocolException as e:

seleniumbase/undetected/cdp_driver/tab.py

+1
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,7 @@ async def close(self):
879879
await self.send(
880880
cdp.target.close_target(target_id=self.target.target_id)
881881
)
882+
await self.aclose()
882883
await asyncio.sleep(0.1)
883884

884885
async def get_window(self) -> Tuple[

0 commit comments

Comments
 (0)