From 37756958ead7c98112b7c7bbca5437f45b5839f1 Mon Sep 17 00:00:00 2001 From: amankumarsingh77 Date: Sun, 26 Jul 2026 11:35:13 +0530 Subject: fix(client): guard page-info evaluation against a missing documentElement The page-info probe read document.documentElement.scrollWidth/scrollHeight directly, which throws when documentElement is absent. Fall back to zeroed dimensions so evaluation returns a usable PageInfo instead of failing. Co-Authored-By: Claude Opus 5 (1M context) --- src/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/client.ts') diff --git a/src/client.ts b/src/client.ts index 4d8c3a8..9808e59 100644 --- a/src/client.ts +++ b/src/client.ts @@ -256,7 +256,7 @@ export const createBrowserClient = (opts: BrowserClientOptions): BrowserClient = const currentTid = session.current()?.targetId; const cached = currentTid ? pageCaches.get(currentTid) : undefined; if (cached && !dirty && Date.now() - cached.at < PAGE_INFO_TTL_MS) return ok(cached.info); - const expr = safeJs`JSON.stringify({url:location.href,title:document.title,w:innerWidth,h:innerHeight,sx:scrollX,sy:scrollY,pw:document.documentElement.scrollWidth,ph:document.documentElement.scrollHeight})`; + const expr = safeJs`JSON.stringify((function(){var e=document.documentElement||{scrollWidth:0,scrollHeight:0};return {url:location.href,title:document.title,w:innerWidth,h:innerHeight,sx:scrollX,sy:scrollY,pw:e.scrollWidth,ph:e.scrollHeight};})())`; const raw = await evaluateJs(expr); if (!raw.success) return raw; if (typeof raw.data !== "string") return err(cdpError("invalid_response", "page info evaluation did not return a string")); -- cgit v1.2.3