Commit Graph

8347 Commits

Author SHA1 Message Date
Karl Seguin
0793a548bf Merge pull request #2724 from lightpanda-io/preload_onload_event
webapi: preload onload/onerror callback timing
2026-06-16 19:04:54 +08:00
Karl Seguin
a32b72e84b Merge pull request #2720 from lightpanda-io/slot
WebAPI: much better shadowdom slot support
2026-06-16 19:03:44 +08:00
Karl Seguin
a523359ba5 webapi: fire iframe load on next tick
Unblocks some WPT tests, but more generally, adds correctness so that the onload
on an iframe doesn't fire before subsequent scripts. Imagine something like:

<iframe src=blah onload=done>
<script>
function done() {
 //...
}
</script>

(Which is an approximation of what some WPT tests do)...kind of important that
we don't fire the onload while we're still parsing.
2026-06-16 17:11:32 +08:00
Karl Seguin
0d966f42a7 webapi: Node.baseURI to use document frame if available 2026-06-16 16:12:30 +08:00
Karl Seguin
4aa291c468 webapi, url: Add URL.parse, better setter compliance
Most URL setters (e.g. hostname) don't throw on error. They just do nothing.
This helps ~230 WPT cases pass.

Also added URL.parse.
2026-06-16 15:11:07 +08:00
Adrià Arrufat
85dc343d0c Merge pull request #2750 from lightpanda-io/agent-fix-save-prompts
tools: update save script prompts for Page API
2026-06-16 08:27:18 +02:00
Adrià Arrufat
f52bbc0f48 agent: scrub remaining global-goto/extract refs from messages and docs 2026-06-16 08:10:43 +02:00
Adrià Arrufat
56030d148b tools: update save script prompts for Page API
Updates the synthesis prompts and rules for the `save` tool to reflect
the new `Page` class API. Scripts now instantiate `Page`, use async
`await page.goto()`, call other builtins as synchronous methods on
`page`, and use `return` to output results.
2026-06-16 08:03:55 +02:00
Adrià Arrufat
54e0d6b1eb Merge branch 'main' into agent 2026-06-16 07:48:27 +02:00
Adrià Arrufat
cc08e744e4 Merge pull request #2748 from lightpanda-io/agent-page-syntax
script: introduce Page API with async goto
2026-06-16 07:47:58 +02:00
Karl Seguin
2907587bcc Merge pull request #2693 from lightpanda-io/module_preload
perf, http: Preload modules
0.3.2
2026-06-16 06:37:16 +08:00
Adrià Arrufat
39924dcd8e Agent: record navigating read tools as goto commands 2026-06-16 00:03:12 +02:00
Adrià Arrufat
7e5777b3e7 Merge branch 'agent' into agent-page-syntax 2026-06-15 23:16:36 +02:00
Adrià Arrufat
78dfc03007 agent: probe Ollama reachability for completions
Lazily probes and caches Ollama server reachability for `/provider`
autocomplete. Validates Ollama availability when manually setting
the provider. Updates zenai dependency.
2026-06-15 23:13:56 +02:00
Adrià Arrufat
e7cfc2f72a agent: avoid double Ollama probe at startup
Renames `wouldResolve` to `hasDetectableKey` and removes the Ollama
probe from it. Defers printing the welcome banner for Ollama-only
paths to prevent probing the local server twice. Also bumps zenai.
2026-06-15 22:56:20 +02:00
Adrià Arrufat
21477b39c9 script: introduce Page API with async goto
Replaces global blocking functions with a `Page` class. `page.goto` is
now asynchronous and must be awaited, while other methods remain
synchronous. Scripts are wrapped in an async IIFE to support top-level
await, and output is returned via `return <value>`.
2026-06-15 22:48:12 +02:00
Adrià Arrufat
7a9924ab22 Agent: support HF_BILL_TO for Hugging Face
Passes the `HF_BILL_TO` environment variable to the ZenAI client
to route Hugging Face billing to an organization. Also updates
the `zenai` dependency.
2026-06-15 19:27:58 +02:00
Adrià Arrufat
3e5294318c Agent: add support for Huggingface inference
Updates the zenai dependency to the latest commit and adds HF_TOKEN to
the API keys hint.
2026-06-15 19:12:05 +02:00
Muki Kiboigo
515ae12ab4 free cached response data on eviction 2026-06-15 07:31:30 -07:00
Muki Kiboigo
f4db7c7e94 send both etag and last modified if present on revalidation 2026-06-15 07:20:21 -07:00
Muki Kiboigo
be3aadf739 clean stale entry on error or shutdown if present 2026-06-15 07:20:21 -07:00
Muki Kiboigo
83a690cdf9 fix max-age tracking on no-cache directive 2026-06-15 07:20:18 -07:00
Karl Seguin
01cda6d80e Merge pull request #2698 from lightpanda-io/remove_snapshot_create_fallback
bridge: Remove snapshot create fallback
2026-06-15 22:05:43 +08:00
Pierre Tachoire
21a2c2c800 Merge pull request #2697 from lightpanda-io/ci_snapshot_cache_bust
ci: Include v8 version in Snapshot cache key
2026-06-15 15:59:17 +02:00
Adrià Arrufat
2c35d760d8 Merge branch 'main' into agent 2026-06-15 15:21:54 +02:00
Adrià Arrufat
cf3cae8aa3 Merge pull request #2747 from lightpanda-io/agent-fix-save-path-reset
agent: reset save destination on /clear and /reset
2026-06-15 15:18:05 +02:00
Adrià Arrufat
e35c66c2a6 agent: reset save destination on /clear and /reset
clearConversation reset the recorded action buffer but left save_path
set, so after /clear or /reset a /save <newfile> was rejected with
"already saving to <oldfile>". Free and clear save_path alongside the
buffer so a cleared session can save to a fresh file.
2026-06-15 14:54:26 +02:00
Karl Seguin
15d4968cc8 Merge pull request #2745 from lightpanda-io/silence_a_test_log
dev: silence a test that uses/needs console
2026-06-15 17:16:08 +08:00
Karl Seguin
78d7793327 dev: silence a test that uses/needs console 2026-06-15 16:59:04 +08:00
Karl Seguin
7edf6f5eb9 webapi: Use document._frame rather than executing frame
This continues some previous fixes aimed at iframe/popup scenarios where the DOM
is manipulated from a different frame. The simplest example is:

iframe.contentDocument.domain

should return the domain of the iframe, not the domain of the context this is
being run in. For a case like this, it's easy, use self._frame rather than
the calling context's frame.

Besides these easy cases, there are two other changes here:

1 - ResolveURL has to get an Element's owning document's frame
2 - getElementById has to get the lookup from the element's document

As part of #2, `Frame.getElementByIdFromNode` was optimized to avoid the
double document lookup. Rather than calling isConnected() then finding the root
node, we can just call getRootNode().
2026-06-15 16:47:21 +08:00
Karl Seguin
98dcd12a82 Merge pull request #2735 from lightpanda-io/cdp_setExtraHTTPHeaders
Cdp set extra http headers
2026-06-15 16:21:20 +08:00
Karl Seguin
3984082c3b Merge pull request #2700 from navidemad/fix-b14-sequential-focus
webapi: run sequential focus navigation on Tab
2026-06-15 06:34:52 +08:00
Muki Kiboigo
2414a67d28 header callback returns a HeaderResult 2026-06-14 09:17:26 -07:00
Muki Kiboigo
38c2fcdf7b working cache revalid 2026-06-14 09:17:26 -07:00
Muki Kiboigo
2fd9e5231b better handling of stale entry 2026-06-14 09:17:26 -07:00
Muki Kiboigo
fff8ec8a8a send served from cache notification in one place 2026-06-14 09:17:26 -07:00
Muki Kiboigo
b99521c738 simplify CacheLayer request logic 2026-06-14 09:17:26 -07:00
Muki Kiboigo
65c8d6fe21 update CacheControl test 2026-06-14 09:17:26 -07:00
Muki Kiboigo
dd6dbd27da etag and last_modified null by default 2026-06-14 09:17:26 -07:00
Muki Kiboigo
2728cfc65e Cache.revalidate -> Cache.renew 2026-06-14 09:17:25 -07:00
Muki Kiboigo
17f3bf557b properly notify and serve from cache on revalidation 2026-06-14 09:17:25 -07:00
Muki Kiboigo
feefcd4650 Cache Revalidation 2026-06-14 09:16:33 -07:00
Muki Kiboigo
a6c8a28977 add Cache.revalidate + supporting logic 2026-06-14 09:16:31 -07:00
Karl Seguin
9ace686d1e perf: avoid excessive tabIndex lookup/parse
Store tab index for current, edge, chosen in a local, and only get/parse it
once per candidate (vs twice).
2026-06-14 21:57:03 +08:00
Karl Seguin
02115bef72 Merge pull request #2682 from navidemad/agent-discovery-signals
Surface server-side agent-discovery signals: Link response header (RFC 8288) + robots.txt Content-Signal
2026-06-14 20:31:47 +08:00
Adrià Arrufat
4147274fa8 Merge branch 'main' into agent 2026-06-14 10:28:21 +02:00
Karl Seguin
a4c5d09075 Merge pull request #2729 from navidemad/fix-a47-page-navigate-failed-response
cdp: answer Page.navigate with errorText when navigation fails
2026-06-14 13:39:43 +08:00
Karl Seguin
ed5d9213fb Merge pull request #2736 from lightpanda-io/debug_assert
debug: Use normal crash report assertion in debug
2026-06-14 13:38:53 +08:00
Karl Seguin
3dcdea77eb Merge pull request #2739 from navidemad/fix-select-type-option-label
webapi: implement HTMLSelectElement.type and HTMLOptionElement.label
2026-06-14 13:38:38 +08:00
Karl Seguin
eec06238d0 nits: just personalizing the code as a means to understand it. 2026-06-14 10:17:39 +08:00