Spaces:
Running
Running
# -*- coding: utf-8 -*- | |
# @Time : 2025/1/2 | |
# @Author : wenshao | |
# @ProjectName: browser-use-webui | |
# @FileName: custom_browser.py | |
import logging | |
from browser_use.browser.browser import Browser, BrowserConfig | |
from browser_use.browser.context import BrowserContextConfig, BrowserContext | |
from .custom_context import CustomBrowserContext | |
logger = logging.getLogger(__name__) | |
class CustomBrowser(Browser): | |
async def new_context( | |
self, | |
config: BrowserContextConfig = BrowserContextConfig(), | |
context=None | |
) -> BrowserContext: | |
"""Create a browser context with custom implementation""" | |
# First get/create the underlying Playwright browser | |
playwright_browser = await self.get_playwright_browser() | |
return CustomBrowserContext( | |
browser=self, # Pass self instead of playwright browser | |
config=config, | |
context=context | |
) | |
async def get_playwright_browser(self): | |
"""Ensure we have a Playwright browser instance""" | |
if not self.playwright_browser: | |
await self._init() | |
return self.playwright_browser | |