fix: support remote host in CDP discovery (#854)
* fix: support remote host in CDP discovery (#851) `discover_cdp_url` now accepts a host parameter instead of hardcoding 127.0.0.1, allowing `connect "http://<remote-ip>:<port>"` to query the correct remote `/json/version` endpoint. The returned webSocketDebuggerUrl is rewritten to match the requested host and port, since Chrome always reports 127.0.0.1 regardless of the interface it was reached through. * style: apply cargo fmt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: unify discover_cdp_url and discover_cdp_url_with_request_timeout Merge the two discovery functions into discover_cdp_url(host, port) and discover_cdp_url_with_timeout(host, port, timeout), eliminating duplicated logic. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: merge discover_cdp_url into single function with optional timeout Replace discover_cdp_url + discover_cdp_url_with_timeout with a single discover_cdp_url(host, port, timeout) where timeout is Option<Duration>. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: replace Option<Duration> with separate discover_cdp_url_with_timeout Split back into two functions for cleaner call sites: - discover_cdp_url(host, port) for default timeout - discover_cdp_url_with_timeout(host, port, timeout) for custom timeout Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: bracket IPv6 addresses in CDP discovery HTTP URL Extract bracket_ipv6 helper and apply it in fetch_cdp_info to produce valid URLs like http://[::1]:9222/json/version instead of malformed http://::1:9222/json/version. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: hyunjinee <leehj0110@kakao.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
hyunjinee
parent
8163f6cdca
commit
0883813cd3
@@ -1285,15 +1285,17 @@ async fn resolve_cdp_url(input: &str) -> Result<String, String> {
|
||||
}
|
||||
|
||||
if input.starts_with("http://") || input.starts_with("https://") {
|
||||
// Parse out the port and discover
|
||||
let parsed = url::Url::parse(input).map_err(|e| format!("Invalid CDP URL: {}", e))?;
|
||||
let host = parsed
|
||||
.host_str()
|
||||
.ok_or_else(|| format!("No host in CDP URL: {}", input))?;
|
||||
let port = parsed.port().unwrap_or(9222);
|
||||
return discover_cdp_url(port).await;
|
||||
return discover_cdp_url(host, port).await;
|
||||
}
|
||||
|
||||
// Try as numeric port
|
||||
if let Ok(port) = input.parse::<u16>() {
|
||||
return discover_cdp_url(port).await;
|
||||
return discover_cdp_url("127.0.0.1", port).await;
|
||||
}
|
||||
|
||||
Err(format!(
|
||||
|
||||
Reference in New Issue
Block a user