-
Notifications
You must be signed in to change notification settings - Fork 249
Description
HAR recording currently uses the BrowserUp Proxy library, which is archived:
ANNOUNCEMENT:
-- The BrowserUp Proxy is now deprecated. --
We have moved our business over to the mitmproxy. It is available here
The reasons:
After multiple tries, we could not make the current architecture support websockets and http/2. without a massive rewrite. HTTP/3 will complicate things even further.
mitm proxy is great! The upstream maintainers are awesome. We have, and hope to continue to make code contributions.
- It has HTTP/2 Support
- It has Websocket Support
Not only is it end-of-life, but it is explicitly documented not to support WebSocket, which we now rely on via WebDriver BiDi. While it does not fail outright, it is flaky. Local testing has shown that flakiness disappears when disabling HAR recording.
The recommended replacement is mitmproxy, which is not a Java library but a Python application. There is an Ubuntu package for it as well as a Docker image. For the purposes of this repository, which uses an all-in-one Docker image containing Firefox and everything else, the Ubuntu package would make sense. For CloudBees, which uses Docker Compose and multiple Docker containers, the Docker image would make more sense. So the implementation would ideally support both, for example using an environment variable to specify the proxy URL for the Docker use case, or otherwise starting the process itself.