diff --git a/CHANGELOG.md b/CHANGELOG.md index 76a798e..cde1582 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## v3.3.18 (2024/05/20) + +* Fix LANG ENV for Linux +* Fix Chrome v124+ not closing on Windows. Thanks @RileyXX + ## v3.3.17 (2024/04/09) * Fix file descriptor leak in service on quit(). Thanks @zkulis diff --git a/Dockerfile b/Dockerfile index 7c1c7ca..2cb2be8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,17 +62,17 @@ ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["/usr/local/bin/python", "-u", "/app/flaresolverr.py"] # Local build -# docker build -t ngosang/flaresolverr:3.3.17 . -# docker run -p 8191:8191 ngosang/flaresolverr:3.3.17 +# docker build -t ngosang/flaresolverr:3.3.18 . +# docker run -p 8191:8191 ngosang/flaresolverr:3.3.18 # Multi-arch build # docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # docker buildx create --use -# docker buildx build -t ngosang/flaresolverr:3.3.17 --platform linux/386,linux/amd64,linux/arm/v7,linux/arm64/v8 . +# docker buildx build -t ngosang/flaresolverr:3.3.18 --platform linux/386,linux/amd64,linux/arm/v7,linux/arm64/v8 . # add --push to publish in DockerHub # Test multi-arch build # docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # docker buildx create --use -# docker buildx build -t ngosang/flaresolverr:3.3.17 --platform linux/arm/v7 --load . -# docker run -p 8191:8191 --platform linux/arm/v7 ngosang/flaresolverr:3.3.17 +# docker buildx build -t ngosang/flaresolverr:3.3.18 --platform linux/arm/v7 --load . +# docker run -p 8191:8191 --platform linux/arm/v7 ngosang/flaresolverr:3.3.18 diff --git a/package.json b/package.json index 19ca51b..6b2460a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flaresolverr", - "version": "3.3.17", + "version": "3.3.18", "description": "Proxy server to bypass Cloudflare protection", "author": "Diego Heras (ngosang / ngosang@hotmail.es)", "license": "MIT" diff --git a/src/flaresolverr_service.py b/src/flaresolverr_service.py index 0987fed..a92e5c9 100644 --- a/src/flaresolverr_service.py +++ b/src/flaresolverr_service.py @@ -245,6 +245,7 @@ def _resolve_challenge(req: V1RequestBase, method: str) -> ChallengeResolutionT: raise Exception('Error solving the challenge. ' + str(e).replace('\n', '\\n')) finally: if not req.session and driver is not None: + driver.close() driver.quit() logging.debug('A used instance of webdriver has been destroyed') diff --git a/src/sessions.py b/src/sessions.py index 1a635e0..dab0cdc 100644 --- a/src/sessions.py +++ b/src/sessions.py @@ -66,6 +66,7 @@ class SessionsStorage: return False session = self.sessions.pop(session_id) + session.driver.close() session.driver.quit() return True diff --git a/src/undetected_chromedriver/__init__.py b/src/undetected_chromedriver/__init__.py index 08381c5..4e7fa1a 100644 --- a/src/undetected_chromedriver/__init__.py +++ b/src/undetected_chromedriver/__init__.py @@ -788,15 +788,6 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver): logger.debug("gracefully closed browser") except Exception as e: # noqa pass - # Force kill Chrome process in Windows - # https://github.com/FlareSolverr/FlareSolverr/issues/772 - if os.name == 'nt': - try: - subprocess.call(['taskkill', '/f', '/pid', str(self.browser_pid)], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL) - except Exception: - pass if ( hasattr(self, "keep_user_data_dir") and hasattr(self, "user_data_dir") diff --git a/src/undetected_chromedriver/devtool.py b/src/undetected_chromedriver/devtool.py index 30e7c08..7322ad5 100644 --- a/src/undetected_chromedriver/devtool.py +++ b/src/undetected_chromedriver/devtool.py @@ -187,4 +187,5 @@ def test(): time.sleep(10) + driver.close() driver.quit() diff --git a/src/utils.py b/src/utils.py index 79ccf87..7c6d4f3 100644 --- a/src/utils.py +++ b/src/utils.py @@ -314,6 +314,7 @@ def get_user_agent(driver=None) -> str: raise Exception("Error getting browser User-Agent. " + str(e)) finally: if driver is not None: + driver.close() driver.quit()