Adrià Arrufat
463aac9b59
browser.actions: refactor click to use trusted MouseEvent
2026-03-17 13:22:55 +09:00
Adrià Arrufat
44a83c0e1c
browser.actions: use .wrap directly
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-03-17 12:55:10 +09:00
Adrià Arrufat
f508d37426
lp: validate params in node actions and rename variables
2026-03-16 23:50:15 +09:00
Adrià Arrufat
548c6eeb7a
browser.actions: remove redundant result ignores
2026-03-16 23:45:07 +09:00
Adrià Arrufat
c8265f4807
browser.actions: improve error handling
2026-03-16 23:41:22 +09:00
Adrià Arrufat
a74e46debf
actions: make scroll coordinates optional
...
Updates the scroll action to accept optional x and y coordinates. This
allows scrolling on a single axis without resetting the other to zero.
2026-03-16 22:44:37 +09:00
Adrià Arrufat
f5bc7310b1
actions: refactor node type checks for idiomatic flattening
2026-03-16 16:38:21 +09:00
Adrià Arrufat
21e9967a8a
actions: simplify function names
2026-03-16 16:31:33 +09:00
Adrià Arrufat
32f450f803
browser: centralize node interaction logic
...
Extracts click, fill, and scroll logic from CDP and MCP domains into a
new dedicated actions module to reduce code duplication.
2026-03-16 14:22:15 +09:00
Adrià Arrufat
1972142703
mcp: add tests for click, fill, and scroll actions
2026-03-16 14:16:20 +09:00
Adrià Arrufat
b10d866e4b
Add click, fill, and scroll interaction tools
...
Adds click, fill, and scroll functionality to both CDP and MCP
to support programmatic browser interactions.
2026-03-16 13:55:37 +09:00
Adrià Arrufat
ddd34dc57b
Merge pull request #1836 from mvanhorn/osc/1822-fix-axvalue-integer-string
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / wba-demo-scripts (push) Has been cancelled
e2e-test / wba-test (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
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
fix: serialize AXValue integer as string per CDP spec
2026-03-16 09:55:54 +09:00
Karl Seguin
265c5aba2e
Merge pull request #1850 from navidemad/fix/cdp-websocket-timeout-during-navigation
...
Fix CDP WebSocket connection dying during complex page navigation
2026-03-16 08:41:36 +08:00
Adrià Arrufat
21fc6d1cf6
cdp: explain buffer size for int serialization
2026-03-16 09:41:28 +09:00
Karl Seguin
1a7fe6129c
Merge pull request #1847 from lightpanda-io/blob_fixes
...
Fix issues with blobs
2026-03-16 08:34:38 +08:00
Karl Seguin
37462a16c5
Merge pull request #1853 from lightpanda-io/fix-ignore-partition-key
...
Fix ignore partition key
2026-03-16 08:19:09 +08:00
Karl Seguin
323ec0046c
zig fmt
2026-03-16 07:36:14 +08:00
Karl Seguin
dc7c6984fb
Merge pull request #1852 from lightpanda-io/fix-domparser-error-doc
...
Fix domparser error doc
2026-03-16 07:35:50 +08:00
Karl Seguin
92f7248a16
Merge pull request #1851 from lightpanda-io/fix-fetch-error-reject
...
Fix fetch error reject
2026-03-16 07:35:38 +08:00
Karl Seguin
1ec3e156fb
Fix partitionKey ignore PR
...
Fixes https://github.com/lightpanda-io/browser/pull/1821 so that it compiles
2026-03-16 07:28:14 +08:00
Karl Seguin
1121bed49b
remove test that I guess isn't reliable (CI?)
2026-03-16 07:20:57 +08:00
Karl Seguin
0eb43fb530
Fix test
...
Fixes test associated with https://github.com/lightpanda-io/browser/pull/1827
2026-03-16 07:16:27 +08:00
Karl Seguin
1f50dc38c3
Merge pull request #1845 from navidemad/fix-cdp-unknown-domain-disconnect
...
fix(cdp): don't kill WebSocket on unknown domain/method errors
2026-03-16 07:14:18 +08:00
Karl Seguin
a9d044ec10
revert domparser test change that belongs to a different PR
2026-03-16 07:11:06 +08:00
Navid EMAD
1bdf464ef2
Fix CDP WebSocket connection dying during complex page navigation
...
The CDP timeout handler in httpLoop had two compounding bugs:
1. Unit mismatch: timestamp(.monotonic) returns seconds, but
ms_remaining is in milliseconds. The comparison and subtraction
mixed units.
2. Double-counting: In the .done branch, elapsed was computed as
absolute time since last_message, but last_message was never
updated in this branch. Each iteration subtracted the growing
total elapsed seconds from an already-decremented ms_remaining.
During complex page loads, Session._wait() returns .done rapidly
(due to JS macrotask execution, background tasks, or errors). Each
rapid .done return subtracted the growing elapsed (seconds) from
ms_remaining (milliseconds), draining it to zero in ~2 seconds
instead of the configured 10-second timeout.
Fix: use milliTimestamp() for consistent units, update last_message
in the .done branch for incremental elapsed tracking, and use >= for
correct boundary comparison.
Fixes #1849
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 23:07:23 +01:00
katie-lpd
a70da0d176
Update README.md
2026-03-15 16:57:09 +01:00
katie-lpd
8c52b8357c
Update README.md
2026-03-15 16:33:53 +01:00
Karl Seguin
0243c6b450
Fix issues with blobs
...
https://github.com/lightpanda-io/browser/pull/1775 made blobs finalizable and
https://github.com/lightpanda-io/browser/pull/1795 made it possible to navigate
from blobs (important for WPT tests). This fixes a number of issues related to
both.
First, weak/strong ref'ing a value now uses the resolved value. When registering
a finalizer, we use the resolved value (the most specific type in the prototype
chain). For this reason, when toggling a weak/strong ref, we have to use the
same resolved value. This solves a segfault where a File is created, but
extended as a Blob (e.g. in createObjectURL).
Next, two issues were fixed when navigating to an invalid blob. First, the frame
is properly removed from the parent list on frame navigation error. Second,
on frame navigation error, we don't stop _all_ other navigations, we just log
the error and move on to the next frame.
2026-03-15 21:03:55 +08:00
Adrià Arrufat
f7071447cb
Merge pull request #1834 from evalstate/mcp-ping
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / wba-demo-scripts (push) Has been cancelled
e2e-test / wba-test (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
feat(mcp): add ping request handling
2026-03-15 18:15:51 +09:00
Halil Durak
c038bfafa1
Merge pull request #1772 from lightpanda-io/nikneym/failing-body-onload-tests
...
Add failing `body.onload` tests
2026-03-15 10:58:39 +03:00
sjhddh
4d60f56e66
test: add test case for fetch throwing TypeError on network errors
2026-03-15 07:26:18 +00:00
sjhddh
56d3cf51e8
test: update empty xml parse error case in domparser.html
2026-03-15 07:25:47 +00:00
sjhddh
3013e3a9e6
fix(net): fetch() should reject with a TypeError on network errors
2026-03-15 07:25:47 +00:00
Navid EMAD
fe9b2e672b
fix(test): update tests to match new CDP error handling behavior
...
processMessage no longer returns Zig errors when dispatchCommand fails —
it sends a CDP error response and continues. Update all expectError calls
to use processMessage + expectSentError instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 05:52:20 +01:00
Navid EMAD
a2e66f85a1
fix(cdp): don't kill WebSocket on unknown domain/method errors
...
When a CDP command with an unrecognized domain (e.g. `NonExistent.method`)
was sent, the error response was correctly returned but the connection
died immediately after. This happened because dispatch() re-returned the
error after sending the error response, which propagated up through
processMessage() → handleMessage() where `catch return false` closed
the WebSocket connection.
Now the error is only propagated if sendError itself fails (e.g. broken
pipe). Otherwise dispatch() returns normally and the read loop continues.
Fixes #1843
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 04:36:47 +01:00
Karl Seguin
a9b9cf14c3
Merge pull request #1841 from lightpanda-io/reject_error
...
Improve ergonomics around rejecting a promise with a proper JS error
2026-03-15 10:19:24 +08:00
Karl Seguin
d4b941cf30
zig fmt
2026-03-15 10:06:20 +08:00
Karl Seguin
4b6bf29b83
Improve ergonomics around rejecting a promise with a proper JS error
2026-03-15 09:55:13 +08:00
Matt Van Horn
5bc00045c7
fix: serialize AXValue integer as string per CDP spec
...
The CDP Accessibility spec defines AXValue.value as always being a
string, but integer values were serialized as JSON numbers. This
breaks CDP clients with strict deserialization (e.g., Rust serde).
Fixes #1822
2026-03-14 14:09:49 -07:00
evalstate
93ea95af24
feat(mcp): add ping request handling
2026-03-14 17:48:29 +00:00
Karl Seguin
42bb2f3c58
Merge pull request #1823 from lightpanda-io/remove_double_free
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / wba-demo-scripts (push) Has been cancelled
e2e-test / wba-test (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
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
Remove frame double-free on navigate error
2026-03-14 19:36:27 +08:00
hobostay
68337a6989
Fix compilation errors: add missing log import and remove duplicate
...
- Add missing `const log = @import("../../log.zig");` in network.zig
- Remove duplicate `log` declaration inside setCdpCookie in storage.zig
(already declared at file scope)
Fixes compilation errors:
- src/cdp/domains/network.zig:124:9: error: use of undeclared identifier 'log'
- src/cdp/domains/storage.zig:135:15: error: local constant shadows declaration of 'log'
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 17:32:48 +08:00
sjhddh
a204f40968
fix(dom): return parsererror document on XML parse failure
2026-03-14 08:36:06 +00:00
Karl Seguin
fe3faa0a5a
Merge pull request #1825 from sjhddh/fix-tracking-allocator-resize
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / wba-demo-scripts (push) Has been cancelled
e2e-test / wba-test (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
fix: only increment TrackingAllocator reallocation_count on successful resizes
v0.2.6
2026-03-14 15:48:49 +08:00
Karl Seguin
39d5a25258
Merge pull request #1820 from hobostay/fix-tracking-allocator-stats
...
Fix TrackingAllocator reallocation_count being incremented on failed operations
2026-03-14 15:48:13 +08:00
Karl Seguin
f4044230fd
Merge pull request #1824 from sjhddh/fix-option-gettext-leak
...
fix: resolve memory leak in Option.getText() by using page arena
2026-03-14 15:45:53 +08:00
sjhddh
4d6d8d9a83
fix(test): properly count successful reallocations in TrackingAllocator
2026-03-14 06:57:04 +00:00
sjhddh
c4176a282f
fix: resolve memory leak in Option.getText() by using page arena
2026-03-14 06:50:26 +00:00
Karl Seguin
1352839472
Remove frame double-free on navigate error
...
The explicit deinit isn't needed as here's already an errdefer in play.
2026-03-14 14:02:58 +08:00
Karl Seguin
535128da71
Merge pull request #1814 from lightpanda-io/nikneym/window-onload-alias
...
Make `body.onload` getter/setter alias to `window.onload`
2026-03-14 13:30:10 +08:00