diff options
| author | amankumarsingh77 <amankumarsingh7702@gmail.com> | 2026-07-26 11:35:13 +0530 |
|---|---|---|
| committer | amankumarsingh77 <amankumarsingh7702@gmail.com> | 2026-07-26 11:56:12 +0530 |
| commit | 37756958ead7c98112b7c7bbca5437f45b5839f1 (patch) | |
| tree | 63889bac525208aa6e27f789a746cd118b3df816 | |
| parent | 352ac1f95570ae7c64e917ef55e23877a3e5f0ca (diff) | |
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) <noreply@anthropic.com>
| -rw-r--r-- | src/client.ts | 2 |
1 files changed, 1 insertions, 1 deletions
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")); |
