Pierre Tachoire
6a8174a15c
cdp: don't dispatch executionContextsCleared on frame navigation
2026-03-04 14:45:21 +01:00
Karl Seguin
b39bbb557f
Merge pull request #1713 from lightpanda-io/dynamic_module_instantiation
...
Force dynamic module instantiation if not already instantiated
2026-03-04 16:27:06 +08:00
Karl Seguin
f7682cba67
Force dynamic module instantiation if not already instantiated
...
I couldn't come up with a reproducible case where this was needed, but we're
seeing some crash reports indicate that this is happening.
2026-03-04 16:12:11 +08:00
Pierre Tachoire
f94c07160a
Merge pull request #1712 from lightpanda-io/css-selector-quote
...
Handle commas inside quoted attributes
2026-03-04 09:00:01 +01:00
Karl Seguin
bbe6692580
Merge pull request #1711 from lightpanda-io/iframe_about_blank
...
iframe handling for src = "about:blank"
2026-03-04 15:56:26 +08:00
Karl Seguin
9266a1c4d9
Merge pull request #1709 from lightpanda-io/expand_event_dispatch_handle_scope
...
Use a single HandleScope for event dispatch
2026-03-04 15:56:13 +08:00
Pierre Tachoire
220d80f05f
Handle commas inside quoted attributes
...
In CSS selector, commas inside quoted attribute are not selector separators, but part of
the attribute value.
2026-03-04 08:49:33 +01:00
Karl Seguin
9144c909dd
Merge pull request #1710 from lightpanda-io/custom_element_clone
...
Support for clone custom elements that attach them self in their cons…
2026-03-04 15:47:39 +08:00
Karl Seguin
7981fcec84
iframe handling for src = "about:blank"
...
Don't try to resolve an iframe's source if it's about:blank
Extend the page's handling of about:blank to render an empty document
2026-03-04 15:43:07 +08:00
Pierre Tachoire
71264c56fc
Merge pull request #1696 from lightpanda-io/textencoder-stream
...
Add TextEncoderStream and TextDecoderStream implementation
2026-03-04 07:58:56 +01:00
Karl Seguin
ca0f77bdee
Support for clone custom elements that attach them self in their constructor
...
When we createElement, we assume the element is detached. This is usually true
except for Custom Elements where the constructor can do anything, including
connecting the element. This broken assumption results in cloneNode crashing.
2026-03-04 14:54:34 +08:00
Karl Seguin
fc8b1b8549
Use a single HandleScope for event dispatch
...
https://github.com/lightpanda-io/browser/pull/1690 narrowed the lifetime of
HandleScopes to once per listener. I think that was just an accident of
refactoring, and not some intentional choice.
The narrower HandleScope lifetime makes it so that when we do run microtask
queue at the end of event dispatching, some locals in the queue may not longer
be valid.
HS1
HS2
queueMicrotask(func)
runMicrotask
In the above flow, `func` is only valid while HS2 is alive, so when we run
the microtask queue in HS1, it is no longer valid.
2026-03-04 11:43:09 +08:00
Karl Seguin
bc8c44f62f
Merge pull request #1707 from lightpanda-io/nikneym/details
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
Add `HTMLDetailsElement`
2026-03-04 07:44:11 +08:00
Karl Seguin
01fab5c92a
Merge pull request #1706 from lightpanda-io/cdp-attach-to-browser
...
cdp: fix send CDP raw command with Playwright
2026-03-04 07:40:05 +08:00
Karl Seguin
1c07d786a0
Merge pull request #1705 from lightpanda-io/nikneym/track
...
` Track`: implement kind and constants
2026-03-04 07:34:12 +08:00
Karl Seguin
6f0cd87d1c
Merge pull request #1703 from lightpanda-io/client_and_script_manager
...
Fix a few issues in Client
2026-03-04 07:32:14 +08:00
Karl Seguin
e44308cba2
Merge pull request #1695 from lightpanda-io/iframe_src_nav
...
Iframe src nav
2026-03-04 07:27:23 +08:00
Karl Seguin
50245c5157
Merge pull request #1667 from lightpanda-io/terminate_isolate
...
On Client.stop, terminate the isolate
2026-03-04 07:27:10 +08:00
Pierre Tachoire
9ca5188e12
cdp: set consistent target's default
...
with about:blank for url and empty title.
2026-03-03 17:24:08 +01:00
Pierre Tachoire
e25c33eaa6
Merge pull request #1673 from arrufat/mcp
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
wpt / zig build release (push) Has been cancelled
wpt / build wpt runner (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
Add Model Context Protocol (MCP) server support
v0.2.5
2026-03-03 15:18:34 +01:00
Pierre Tachoire
56cc881ac0
Fcdp: fix attachtToTarget and attachToBrowserTarget resp
2026-03-03 15:01:53 +01:00
Adrià Arrufat
7bddc0a89c
mcp: remove search and over tools
2026-03-03 22:50:06 +09:00
Halil Durak
50896bdc9d
HTMLDetailsElement: add tests
2026-03-03 15:12:12 +03:00
Halil Durak
8dd4567828
HTMLDetailsElement: implement HTMLDetailsElement
2026-03-03 15:12:02 +03:00
Pierre Tachoire
06ef6d3e6a
cdp: attachToTarget must add the session id
2026-03-03 12:58:00 +01:00
Pierre Tachoire
14b58e8062
add target.attachToBrowserTarget
2026-03-03 12:58:00 +01:00
Pierre Tachoire
eee232c12c
cdp: allow multiple calls to attachToTarget
...
Playwright, when creating a new CDPSession, sends an
attachToBrowserTarget followed by another attachToTarget to re-attach
itself to the existing target.
see playwright/axtree.js from demo/ repository.
2026-03-03 12:58:00 +01:00
Halil Durak
febe321aef
Track: add tests
2026-03-03 14:41:05 +03:00
Halil Durak
28777ac717
Track: implement kind and constants
2026-03-03 14:40:53 +03:00
Karl Seguin
403f42bf38
Merge pull request #1702 from arrufat/cdp-namespaces
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Add LP domain for CDP and getMarkdown method
2026-03-03 18:08:45 +08:00
Karl Seguin
523efbd85a
Fix a few issues in Client
...
Most significantly, if removing from the multi fails, the connection
is added to a "dirty" list for the removal to be retried later. Looking at
the curl source code, remove fails on a recursive call, and we've struggled with
recursive calls before, so I _think_ this might be happening (it fails in other
cases, but I suspect if it _is_ happening, it's for this reason). The retry
happens _after_ `perform`, so it cannot fail for due to recursiveness. If it
fails at this point, we @panic. This is harsh, but it isn't easily recoverable
and before putting effort into it, I'd like to know that it's actually happening.
Fix potential use of undefined when a 401-407 request is received, but no
'WWW-Authenticate' or 'Proxy-Authenticate' header is received.
Don't call `curl_multi_remove_handle` on an easy that hasn't been added yet do
to error. Specifically, if `makeRequest` fails during setup, transfer_conn is
nulled so that `transfer.deinit()` doesn't try to remove the connection. And the
conn is removed from the `in_use` queue and made `available` again.
On Abort, if getting the private fails (extremely unlikely), we now still try
to remove the connection from the multi.
Added a few more fields to the famous "ScriptManager.Header recall" assertion.
2026-03-03 18:02:06 +08:00
Pierre Tachoire
fcacc8bfc6
remove the isString type check into TransformStream write
2026-03-03 09:40:32 +01:00
Adrià Arrufat
b2e301418f
cdp.lp: use page.document instead of window._document
2026-03-03 17:11:16 +09:00
Adrià Arrufat
334a2e44a1
lp: simplify dom_node resolution in getMarkdown
2026-03-03 17:08:43 +09:00
Pierre Tachoire
252b3c3bf6
Ignore BOM only when the option is set on TextDecoderStream
2026-03-03 09:04:41 +01:00
Adrià Arrufat
c9121a03d2
cdp: move LP.getMarkdown test to lp domain
2026-03-03 16:39:31 +09:00
Adrià Arrufat
cc93180d57
cdp: add LP domain and getMarkdown method
...
This PR introduces a custom CDP domain 'LP' (Lightpanda) to expose browser-specific tools. The first method, 'LP.getMarkdown', allows retrieving a Markdown representation of the DOM or a specific node by its 'nodeId'. This is optimized for AI agents and LLM-based scraping tasks.
2026-03-03 16:35:48 +09:00
Pierre Tachoire
24221748e1
Merge pull request #1699 from lightpanda-io/textencoder-stream-enhancements
...
Textencoder stream enhancements
2026-03-03 08:12:07 +01:00
Pierre Tachoire
4062a425cb
Merge pull request #1700 from lightpanda-io/minor_cleanup
...
Remove unused file and unused .gitignore paths
2026-03-03 08:09:44 +01:00
Karl Seguin
cce533ebb6
Merge pull request #1701 from arrufat/markdown-test-namespace
...
markdown: namespace tests
2026-03-03 14:21:24 +08:00
Adrià Arrufat
48df38cbfe
mcp: improve evaluate error reporting and refactor tool result types
2026-03-03 15:17:59 +09:00
Adrià Arrufat
f982f073df
mcp: optimize memory re-use and add thread safety to Server.sendResponse
2026-03-03 14:50:13 +09:00
Adrià Arrufat
34999f12ca
mcp: migrate tests to expectJson
2026-03-03 14:40:20 +09:00
Adrià Arrufat
c8d5665653
mcp: use testing allocator in tests
2026-03-03 14:32:29 +09:00
Adrià Arrufat
ddebaf87d0
markdown: namespace tests
2026-03-03 14:22:45 +09:00
Adrià Arrufat
6b80cd6109
mcp: namespace tests
2026-03-03 14:19:36 +09:00
Karl Seguin
7635d8d2a5
Remove unused file and unused .gitignore paths
2026-03-03 12:08:53 +08:00
Karl Seguin
141ae053db
leverage JS bridge's type mapping
2026-03-03 11:43:13 +08:00
Karl Seguin
10ec4ff814
Create Zig wrapper generator for js.Function creation
...
This allows us to leverage the Caller.Function.call method, which does type
mapping, caching, etc... and allows the Zig function callback to be written like
any other Zig WebAPI function.
2026-03-03 11:41:00 +08:00
Pierre Tachoire
d2da0b7c0e
remove useless _page field from WritableStream*
2026-03-02 18:09:46 +01:00