(
udid: &str,
http_origin: Option<&str>,
port: u16,
entry: &Value,
)
| 689 | } |
| 690 | |
| 691 | fn build_chrome_inspector_target( |
| 692 | udid: &str, |
| 693 | http_origin: Option<&str>, |
| 694 | port: u16, |
| 695 | entry: &Value, |
| 696 | ) -> Option<ChromeDevToolsTarget> { |
| 697 | let target_key = string_value(entry, "id") |
| 698 | .or_else(|| string_value(entry, "webSocketDebuggerUrl")) |
| 699 | .or_else(|| string_value(entry, "url")) |
| 700 | .or_else(|| string_value(entry, "title"))?; |
| 701 | chrome_inspector_websocket_debugger_url(port, entry)?; |
| 702 | let id = format!("cdp-{port}-{}", path_safe_id(&target_key)); |
| 703 | let title = string_value(entry, "title") |
| 704 | .or_else(|| string_value(entry, "url")) |
| 705 | .unwrap_or_else(|| format!("DevTools target on {DEVTOOLS_HOST}:{port}")); |
| 706 | let description = string_value(entry, "description") |
| 707 | .unwrap_or_else(|| format!("Chrome DevTools target on {DEVTOOLS_HOST}:{port}")); |
| 708 | let web_socket_path = format!("/api/simulators/{udid}/devtools/targets/{id}/socket"); |
| 709 | let proxied_web_socket_url = websocket_url(http_origin.unwrap_or(""), &web_socket_path); |
| 710 | let devtools_frontend_url = chrome_inspector_frontend_url(&proxied_web_socket_url); |
| 711 | let url = string_value(entry, "url") |
| 712 | .unwrap_or_else(|| format!("devtools://{DEVTOOLS_HOST}:{port}/{target_key}")); |
| 713 | |
| 714 | Some(ChromeDevToolsTarget { |
| 715 | id, |
| 716 | title, |
| 717 | target_type: string_value(entry, "type").unwrap_or_else(|| "page".to_owned()), |
| 718 | url, |
| 719 | description, |
| 720 | devtools_frontend_url, |
| 721 | web_socket_debugger_url: proxied_web_socket_url, |
| 722 | source: SOURCE_CHROME_INSPECTOR.to_owned(), |
| 723 | process_identifier: 0, |
| 724 | bundle_identifier: None, |
| 725 | app_name: None, |
| 726 | }) |
| 727 | } |
| 728 | |
| 729 | fn chrome_inspector_websocket_debugger_url(port: u16, entry: &Value) -> Option<String> { |
| 730 | string_value(entry, "webSocketDebuggerUrl") |
no test coverage detected