A Chromote session talks to a Chrome process. Its browser requests follow that process’s proxy configuration, so set the arguments before creating it:

args <- c(
  chromote::get_chrome_args(),
  "--proxy-server=http://proxy.example:8080"
)
browser <- chromote::Chrome$new(args = args)
controller <- chromote::Chromote$new(browser = browser)
session <- chromote::ChromoteSession$new(parent = controller)

This keeps Chromote’s existing default arguments and adds the HTTP listener; an endpoint from the HTTP proxy list can fill the example URL for permitted public browsing. Use a socks5 URL instead only when the endpoint actually speaks SOCKS5. Remove a conflicting existing proxy switch when assembling the argument vector.

Perform the intended CDP operations through session, then close the session, controller and owned browser as part of the R workload’s cleanup. A try/finally-style R cleanup path is useful if navigation raises an error.

For applications using Chromote’s shared default browser, set_chrome_args changes the defaults for future browser construction. It does not restart an existing process. Creating an explicit Chrome object, as above, makes ownership and startup timing visible.

R’s own http_proxy or https_proxy environment can configure an R downloader without changing this browser. Likewise, changing Chrome’s route does not configure a separate R API call. Identify which side of the CDP connection sends the request.

Related articles