Muki Kiboigo
56420bf7b7
create Cache interface file
2026-03-31 12:12:22 -07:00
Karl Seguin
469a6ecaea
Merge pull request #2051 from lightpanda-io/structureClone_host_object
...
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 fmt (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
Provide a failing callback to ValueSerializer for host objects
2026-03-31 22:33:54 +08:00
Karl Seguin
4ad8282e75
Merge pull request #2047 from lightpanda-io/fancy-wait
...
Add --wait-selector, --wait-script and --wait-script-file options to …
2026-03-31 20:59:48 +08:00
Karl Seguin
3d624a97a7
Merge pull request #2052 from lightpanda-io/xhr_expand_ref
...
Expand the lifetime of the XHR reference
2026-03-31 20:59:28 +08:00
Karl Seguin
571c346316
use releaseSelfRef on done just to be extra safe
2026-03-31 20:39:11 +08:00
Karl Seguin
af19cbc726
use remaining instead of timeout_ms, else, what's the point?
...
Co-authored-by: Adrià Arrufat <1671644+arrufat@users.noreply.github.com >
2026-03-31 19:42:32 +08:00
Karl Seguin
9716150530
rename has_ref -> active_request
2026-03-31 19:15:01 +08:00
Karl Seguin
20cadd2282
Merge pull request #2053 from lightpanda-io/remove_dead_code
...
remove dead code
2026-03-31 18:24:48 +08:00
Karl Seguin
4c4f395b1e
Merge pull request #2036 from lightpanda-io/remove_cdp_generics
...
Removing remaining CDP generic
2026-03-31 17:54:34 +08:00
Karl Seguin
26653120fa
Removing remaining CDP generic
...
Follow up to https://github.com/lightpanda-io/browser/pull/1990 which makes
both BrowserContext and Command non-generic.
2026-03-31 16:53:58 +08:00
Karl Seguin
a4a024ce9c
remove dead code
2026-03-31 16:48:47 +08:00
Karl Seguin
492fd86bad
Expand the lifetime of the XHR reference
...
We need to take the self-reference to the XHR object as soon as the request is
made. Previously, we were waiting until we got the start callback, but v8 could
(and does) drop the reference before that happens. Unfortunately, that means
we can no longer use _transfer == null to tell if we own a reference or not, so
a new boolean was added.
2026-03-31 16:46:31 +08:00
Karl Seguin
c3c465347d
Provide a failing callback to ValueSerializer for host objects
...
V8 needs our help when serializing host (e.g. a Zig dom instance) objects. We
don't currently have this implemented, so this provides the callback that throws
an error. Our wrapper returns Nothing when no callback is provided, which v8
doesn't allow (via assertion).
2026-03-31 16:13:55 +08:00
Adrià Arrufat
55666ab7cd
Merge pull request #2049 from lightpanda-io/refactor/getNodeDetails-param-order
...
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 fmt (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
SemanticTree: reorder getNodeDetails params
2026-03-31 07:58:28 +02:00
Adrià Arrufat
008235222b
SemanticTree: reorder getNodeDetails params
2026-03-31 07:29:33 +02:00
Adrià Arrufat
b03dbc77ab
Merge pull request #2048 from lightpanda-io/feature/semantic-tree-checked-state
...
SemanticTree: add checked state to node data and output
2026-03-31 07:08:36 +02:00
Adrià Arrufat
fc057a3bb3
SemanticTree: add checked state to node data and output
2026-03-31 06:43:01 +02:00
Karl Seguin
ab6c63b24b
Add --wait-selector, --wait-script and --wait-script-file options to fetch
...
These new optional parameter run AFTER --wait-until, allowing the (imo) useful
combination of `--wait-until load --wait-script "report.complete === true"`.
However, if `--wait-until` IS NOT specified but `--wait-selector/script` IS,
then there is no default wait and it'll just check the selector/script. If
neither `--wait-selector` or `--wait-script/--wait-script-file` are specified
then `--wait-until` continues to default to `done`.
These waiters were added to the Runner, and the existing Action.waitForSelector
now uses the runner's version. Selector querying has been split into distinct
parse and query functions, so that we can parse once, and query on every tick.
We could potentially optimize --wait-script to compile the script once and call
it on each tick, but we'd have to detect page navigation to recompile the script
in the new context. Something I'd rather optimize separately.
2026-03-31 12:30:46 +08:00
Adrià Arrufat
16f17ead9a
Merge pull request #2045 from lightpanda-io/semantic-tree-node-details
...
SemanticTree: Add nodeDetails tool
2026-03-31 05:28:24 +02:00
Adrià Arrufat
367d20d39f
SemanticTree: simplify lp.String.wrap calls
2026-03-31 05:20:32 +02:00
Karl Seguin
a6a8752787
Merge pull request #2032 from lightpanda-io/cdp_navigation_event_order
...
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 fmt (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
Improve/Fix CDP navigation event order
2026-03-31 07:12:14 +08:00
Karl Seguin
568fa25add
Remove DOMContentLoaded and Loaded events from page_navigated
...
These were moved to their own distinct events, and should have been removed from
here.
2026-03-31 06:56:01 +08:00
Karl Seguin
752184b12b
Improve/Fix CDP navigation event order
...
These changes all better align with chrome's event ordering/timing.
There are two big changes. The first is that our internal page_navigated event,
which is kind of our heavy hitter, is sent once the header is received as
opposed to (much later) on document load. The main goal of this internal event
is to trigger the "Page.frameNavigated" CDP event which is meant to happen
once the URL is committed, which _is_ on header response.
To accommodate this earlier trigger, new explicit events for DOMContentLoaded
and load have be added.
This drastically changes the flow of events as things go from:
Start Page Navigation
Response Received
Start Frame Navigation
Response Received
End Frame Navigation
End Page Navigation
context clear + reset
DOMContentLoaded
Loaded
TO:
Start Page Navigation
Response Received
End Page Navigation
context clear + reset
Start Frame Navigation
Response Received
End Frame Navigation
DOMContentLoaded
Loaded
So not only does it remove the nesting, but it ensures that the context are
cleared and reset once the main page's navigation is locked in, and before any
frame is created.
2026-03-31 06:56:00 +08:00
Pierre Tachoire
47afdc003a
Merge pull request #2044 from lightpanda-io/proxy-auth-challenge
...
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 fmt (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
http: add connect code into auth challenge detection
2026-03-30 17:18:56 +02:00
Adrià Arrufat
9c8fe9b20f
SemanticTree: Add nodeDetails tool
...
Adds a tool to retrieve detailed node metadata and updates the
semantic tree to track and display the disabled state of elements.
2026-03-30 16:38:23 +02:00
Pierre Tachoire
7606528b37
ci: fix request interception proxy challenge
2026-03-30 15:32:38 +02:00
Pierre Tachoire
9ca6bf42ae
http: add connect headers to auth challenge detection
2026-03-30 15:17:12 +02:00
Pierre Tachoire
a272a2c314
http: add connect code into auth challenge detection
2026-03-30 15:08:36 +02:00
katie-lpd
cafa16d190
Update README.md
...
Updating benchmark text to fit the image
2026-03-30 13:38:46 +02:00
Pierre Tachoire
a5ed3cdaee
Merge pull request #2042 from lightpanda-io/security.md
...
add SECURITY.md
2026-03-30 11:30:42 +02:00
Pierre Tachoire
b473f0e681
add SECURITY.md
2026-03-30 11:28:46 +02:00
Karl Seguin
be7226fc7b
Merge pull request #2024 from lightpanda-io/finalizers
...
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 fmt (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
Rework finalizers
2026-03-30 17:03:08 +08:00
Karl Seguin
5cd356631c
unregister before releasingRef to avoid potential use-after-free
2026-03-30 15:42:08 +08:00
Pierre Tachoire
8723ecdd2d
Merge pull request #2028 from lightpanda-io/http_client_safe_kill
...
Protect transfer.kill() the way transfer.abort() is protected
2026-03-30 09:22:40 +02:00
Pierre Tachoire
451178558a
Merge pull request #2026 from lightpanda-io/invalid_access_dom_exception
...
Add missing InvalidAccessError DOMException mapping
2026-03-30 09:21:51 +02:00
Karl Seguin
70dc0f6b95
Merge pull request #2027 from lightpanda-io/mcp-protocol-version
...
mcp: allow configuring protocol version
2026-03-30 13:38:06 +08:00
Adrià Arrufat
d99599fa21
zig fmt
2026-03-30 07:24:08 +02:00
Adrià Arrufat
20e62a5551
mcp: inline mcpVersion helper from Config
2026-03-30 07:13:45 +02:00
Adrià Arrufat
e083d4a3d1
Config: remove LIGHTPANDA_MCP_VERSION env var
2026-03-30 07:07:23 +02:00
Karl Seguin
7a23686cbd
Merge pull request #2033 from lightpanda-io/canvas_context_cache
...
Canvas context cache
2026-03-30 12:27:04 +08:00
Karl Seguin
25889ff918
Improve canvas context caching
...
Improve https://github.com/lightpanda-io/browser/pull/2022 to also cache webgl
context and add tests.
2026-03-30 12:14:32 +08:00
Karl Seguin
b4e3f246ca
Merge remote-tracking branch 'evan108108/fix/canvas-getcontext-caching' into canvas_context_cache
2026-03-30 11:58:45 +08:00
Karl Seguin
8eeeeda8c1
Merge pull request #2021 from evan108108/fix/navigator-spec-compliance
...
fix: navigator.languages should include base language per spec
2026-03-30 11:40:49 +08:00
Karl Seguin
75dc4d5b0e
Merge pull request #2031 from lightpanda-io/cdp-add-script-to-evaluate-on-new-document
...
Cdp add script to evaluate on new document
2026-03-30 11:16:39 +08:00
Karl Seguin
0d40aed1b7
zig fmt
2026-03-30 09:32:22 +08:00
Karl Seguin
78cb766298
Log for unimplemented parameter
...
Wrap script_on_new_document execution in try/catch for better error reporting.
Improve test for script_on_new_document
2026-03-30 09:31:13 +08:00
Karl Seguin
f60e5cce6d
Protect transfer.kill() the way transfer.abort() is protected
...
Transfer.abort() is protected from aborting the transfer while inside of a
libcurl callback (since libcurl doesn't support mutating the easy while inside
of a callback AND it causes issues in the zig code).
This applies similar logic to Transfer.kill() which is less likely to be called
but worse if it is called in a callback, as transfer.kill() deinit's the
transfer - something the callback caller is not expecting. Since killing isn't
safe to do, we flag the transfer as aborted AND null/noop all the callbacks.
Fixes WPT crash /content-security-policy/frame-src/frame-src-blocked-path-matching.sub.html
2026-03-29 19:48:47 +08:00
Adrià Arrufat
81d4bdb157
mcp: change default protocol version to 2024-11-05
2026-03-29 08:34:24 +02:00
Adrià Arrufat
cf5e4d7d1e
mcp: allow configuring protocol version
...
Closes #2023
2026-03-29 08:29:04 +02:00
Karl Seguin
9f81d7d3ff
Add missing InvalidAccessError DOMException mapping
...
Fixes WPT crash /WebCryptoAPI/sign_verify/eddsa_curve25519.https.any.html
2026-03-29 11:46:44 +08:00