mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
Previously, get_client_name was responsible for both parsing the User-Agent data as well as handling the override behavior that we want to use "website" rather than "Mozilla" as the key for the Client object. Now, it's just responsible for User-Agent, and the override behavior is entirely within process_client (the function concerned with Client objects). This has the side effect of changing what `Client` object we'll use for HTTP requests to /json/ endpoints that set the `client` attribute. I think that's in line with our intent -- we only have a use case for API clients overriding the User-Agent parsing (that feature is a workaround for situations where the third party may not control HTTP headers but does control the HTTP request payload). This loses test coverage on the `request.GET['client']` code path; I disable that for now since we don't have a real use for that behavior. (We may want to change that logic to have Client recognize individual browsers; doing so requires first using a better User-Agent parsing library). Part of #14067.