Skip to content

Migrate from BrowserUp Proxy to another HAR solution #1998

@basil

Description

@basil

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions