MCPcopy Create free account
hub / github.com/NanmiCoder/MediaCrawler / cleanup

Method cleanup

tools/cdp_browser.py:437–508  ·  view source on GitHub ↗

Cleanup resources Args: force: Whether to force cleanup browser process (ignoring AUTO_CLOSE_BROWSER config)

(self, force: bool = False)

Source from the content-addressed store, hash-verified

435 return []
436
437 async def cleanup(self, force: bool = False):
438 """
439 Cleanup resources
440
441 Args:
442 force: Whether to force cleanup browser process (ignoring AUTO_CLOSE_BROWSER config)
443 """
444 try:
445 # Close browser context
446 if self.browser_context:
447 try:
448 # Check if context is already closed
449 # Try to get page list, if fails means already closed
450 try:
451 pages = self.browser_context.pages
452 if pages is not None:
453 await self.browser_context.close()
454 utils.logger.info("[CDPBrowserManager] Browser context closed")
455 except:
456 utils.logger.debug("[CDPBrowserManager] Browser context already closed")
457 except Exception as context_error:
458 # Only log warning if error is not due to already being closed
459 error_msg = str(context_error).lower()
460 if "closed" not in error_msg and "disconnected" not in error_msg:
461 utils.logger.warning(
462 f"[CDPBrowserManager] Failed to close browser context: {context_error}"
463 )
464 else:
465 utils.logger.debug(f"[CDPBrowserManager] Browser context already closed: {context_error}")
466 finally:
467 self.browser_context = None
468
469 # Disconnect browser
470 if self.browser:
471 try:
472 # Check if browser is still connected
473 if self.browser.is_connected():
474 await self.browser.close()
475 utils.logger.info("[CDPBrowserManager] Browser connection disconnected")
476 else:
477 utils.logger.debug("[CDPBrowserManager] Browser connection already disconnected")
478 except Exception as browser_error:
479 # Only log warning if error is not due to already being closed
480 error_msg = str(browser_error).lower()
481 if "closed" not in error_msg and "disconnected" not in error_msg:
482 utils.logger.warning(
483 f"[CDPBrowserManager] Failed to close browser connection: {browser_error}"
484 )
485 else:
486 utils.logger.debug(f"[CDPBrowserManager] Browser connection already closed: {browser_error}")
487 finally:
488 self.browser = None
489
490 # Close browser process (skip if connected to existing browser - we didn't launch it)
491 if config.CDP_CONNECT_EXISTING:
492 utils.logger.info(
493 "[CDPBrowserManager] Connected to existing browser, skipping process cleanup"
494 )

Callers 12

launch_and_connectMethod · 0.95
async_cleanupFunction · 0.45
_force_stopFunction · 0.45
sync_cleanupMethod · 0.45
signal_handlerMethod · 0.45
closeMethod · 0.45
closeMethod · 0.45
closeMethod · 0.45
closeMethod · 0.45
closeMethod · 0.45
closeMethod · 0.45
closeMethod · 0.45

Calls 2

is_connectedMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected