MCPcopy Create free account
hub / github.com/antirez/ds4 / web_cdp_eval_string

Function web_cdp_eval_string

ds4_web.c:764–785  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

762}
763
764static char *web_cdp_eval_string(cdp_ws *ws, const char *expr,
765 char *err, size_t err_len) {
766 char *qexpr = web_json_quote(expr);
767 web_buf params = {0};
768 web_buf_puts(&params, "{\"expression\":");
769 web_buf_puts(&params, qexpr);
770 web_buf_puts(&params, ",\"returnByValue\":true,\"awaitPromise\":true,\"includeCommandLineAPI\":true}");
771 free(qexpr);
772 char *params_s = web_buf_take(&params);
773 char *resp = web_cdp_call(ws, "Runtime.evaluate", params_s, err, err_len);
774 free(params_s);
775 if (!resp) return NULL;
776 if (strstr(resp, "\"exceptionDetails\"")) {
777 web_set_err(err, err_len, "JavaScript evaluation failed");
778 free(resp);
779 return NULL;
780 }
781 char *val = web_json_get_string(resp, "value");
782 free(resp);
783 if (!val) web_set_err(err, err_len, "Runtime.evaluate did not return a string");
784 return val;
785}
786
787static bool web_wait_ready(cdp_ws *ws, char *err, size_t err_len) {
788 const char *expr = "document.readyState";

Callers 4

web_wait_readyFunction · 0.85
web_page_probeFunction · 0.85
web_scroll_dynamic_pageFunction · 0.85
web_run_page_jsFunction · 0.85

Calls 6

web_json_quoteFunction · 0.85
web_buf_putsFunction · 0.85
web_buf_takeFunction · 0.85
web_cdp_callFunction · 0.85
web_set_errFunction · 0.85
web_json_get_stringFunction · 0.85

Tested by

no test coverage detected