mirror of
https://github.com/apache/superset.git
synced 2026-05-12 19:35:17 +00:00
fix(webdriver): address review feedback on cache warmup WebDriver changes
- Fix _auth() to authenticate self._driver in-place instead of creating a second, leaked driver (critical bug: persistent driver was never authenticated) - Replace assert with explicit RuntimeError for driver creation failure - Fix get_dash_url() to strip trailing slash from WEBDRIVER_BASEURL to avoid double-slash URLs (e.g. http://host//superset/dashboard/1/) - Fix BaseScreenshot.get_screenshot() to call driver.destroy() in a try/finally block, preventing Selenium process leaks for one-off screenshots - Fix webdriver_pool._destroy_driver() to directly call close()/quit() on the raw WebDriver since destroy() is now an instance method, not static Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -419,7 +419,8 @@ class WebDriverSelenium(WebDriverProxy):
|
||||
def driver(self) -> WebDriver:
|
||||
if not self._driver:
|
||||
self._driver = self._create()
|
||||
assert self._driver # for mypy
|
||||
if not self._driver:
|
||||
raise RuntimeError("WebDriver creation failed")
|
||||
self._driver.set_window_size(*self._window)
|
||||
if self._user:
|
||||
self._auth(self._user)
|
||||
@@ -558,10 +559,11 @@ class WebDriverSelenium(WebDriverProxy):
|
||||
logger.debug("Init selenium driver")
|
||||
return driver_class(**kwargs)
|
||||
|
||||
def _auth(self, user: User) -> WebDriver:
|
||||
driver = self._create()
|
||||
return machine_auth_provider_factory.instance.authenticate_webdriver(
|
||||
driver, user
|
||||
def _auth(self, user: User) -> None:
|
||||
"""Authenticate the persistent driver in-place."""
|
||||
assert self._driver is not None
|
||||
machine_auth_provider_factory.instance.authenticate_webdriver(
|
||||
self._driver, user
|
||||
)
|
||||
|
||||
def _destroy(self, tries: int = 2) -> None:
|
||||
|
||||
Reference in New Issue
Block a user