Commit Graph
2568 Commits
Author SHA1 Message Date
Karl Seguin 8bb2158a2a Add Range.compareBoundaryPoints
Also rename start_container and end_container to start_node and end_node.
2025-08-21 16:47:33 +08:00
Karl Seguin 557f8444b2 Merge pull request #955 from lightpanda-io/replace_deprecated_build
Makes build.zig Zig 0.15 ready
2025-08-21 10:09:59 +08:00
Karl Seguin 65088b8644 swap unnecessary addModule with createModule 2025-08-21 09:59:42 +08:00
Karl Seguin 7cc9521cbb Merge pull request #958 from lightpanda-io/http_request_done_notification
Emits a http_request_done internal notification.
2025-08-21 09:23:41 +08:00
Karl Seguin 4ad19fc4d8 use merged v8 commit 2025-08-21 09:23:11 +08:00
Pierre Tachoire ff8a847795 Merge pull request #957 from lightpanda-io/remove_header_callback
Remove the http/Client.zig header_callback.
2025-08-20 14:35:06 +02:00
Karl Seguin 6b001c50a4 Emits a http_request_done internal notification.
With networking enabled, CDP listens to this event and emits a
`Network.loadingFinished` event. This is event is used by puppeteer to know that
details about the response (i.e. the body) can be queries.

Added dummy handling for the Network.getResponseBody message. Returns an
empty body. Needed because we emit the loadingFinished event which signals
to drivers that they can ask for the body.
2025-08-20 19:32:19 +08:00
Karl Seguin 5759c88932 Remove the http/Client.zig header_callback.
The callback which was called on a per-header basis is removed. Only XHR was
using this, and it was created before the HeaderIterator existed (because I
didn't know we could iterate through the response headers in curl after the fact).

The header_done_callback remains, but is now called header_callback (a bit
confusing in the short term).

The only difficulty was with fulfilled requests, which do not have an easy
handle for our HeaderIterator. The existing code would segfault if
transfer.responseHeaderIterator() was called on a fulfilled requests.
The HeaderIterator is now a tagged union that abstracts whether the source of
the response header is a curl easy, or just an injected list from the fulfilled
requests.
2025-08-20 17:49:37 +08:00
Karl Seguin 00c11d9bd4 Merge pull request #956 from lightpanda-io/typo-fix
typo fix
2025-08-20 17:06:16 +08:00
Pierre Tachoire ed99acebfe typo fix 2025-08-20 09:25:47 +02:00
Pierre Tachoire bade412d30 Merge pull request #953 from lightpanda-io/is_navigation_and_arena
Use Transfer.arena in a few more places, correctly set is_navigation …
2025-08-20 08:59:32 +02:00
Pierre Tachoire 191e9ba073 Merge pull request #954 from lightpanda-io/remove_managed_arraylist
Replace all std.ArrayList with std.ArrayListUnmanaged
2025-08-20 08:55:03 +02:00
Karl Seguin b21688a0ac Makes build.zig Zig 0.15 ready
Our build.zig is using a number of deprecated features, which are removed in
0.15.

This updates build.zig so that it still works in 0.14 and [hopefully] will work
in 0.15.

Related: https://github.com/lightpanda-io/zig-v8-fork/pull/87
2025-08-20 14:54:27 +08:00
Karl Seguin a4d4da4d96 Replace all std.ArrayList with std.ArrayListUnmanaged
Very minor, but the more we can do upfront to align the code for Zig 0.15, the
better.
2025-08-20 12:30:39 +08:00
Karl Seguin 16c85c5b8a Use Transfer.arena in a few more places, correctly set is_navigation on redirect
Following up to Request Interception PR (1) and Cookie Redirect PR (2) which
both introduced features that were useful to the other. This PR closes that
loop.

(1) https://github.com/lightpanda-io/browser/pull/946
(2) https://github.com/lightpanda-io/browser/pull/948
2025-08-20 11:39:38 +08:00
Karl Seguin 2c7b39927a Merge pull request #952 from lightpanda-io/fix_compilation_error
Fix compilation error
2025-08-20 10:28:54 +08:00
Karl Seguin 7f47692ad4 Fix compilation error
bad auto merge?
2025-08-20 10:04:15 +08:00
Karl Seguin af4066da87 Merge pull request #946 from lightpanda-io/request_interception
Request Interception
2025-08-20 07:53:08 +08:00
Pierre Tachoire 4de4e7504d Merge pull request #951 from lightpanda-io/wpt_range
Improve correctness of Node.compareDocumentPosition and Range api.
2025-08-19 17:23:39 +02:00
Karl Seguin b46c181b07 zig fmt 2025-08-19 22:01:14 +08:00
Karl Seguin e4f89092b3 add Range.intersectsNode and cover a few more edge-cases 2025-08-19 22:00:59 +08:00
Pierre Tachoire 4fbedf5b20 Merge pull request #948 from lightpanda-io/redirect-cookies
handle cookies on redirection manually
2025-08-19 14:48:37 +02:00
Karl Seguin d51a03f1b6 Improve correctness of Node.compareDocumentPosition and Range api.
Should fix a good chunk (~20K I think) of the recently broken WPT tests.
2025-08-19 18:23:54 +08:00
Pierre Tachoire f7eee0d461 http: add an arena to Transfer 2025-08-19 11:10:52 +02:00
Pierre Tachoire 39178d8d2b http: remove uselesss Client.arena 2025-08-19 11:10:25 +02:00
Pierre Tachoire 7795916c08 apply review comments 2025-08-19 10:01:35 +02:00
Pierre Tachoire 0e2a3d8009 handle cookies on redirection manually 2025-08-19 10:01:11 +02:00
Karl Seguin 38a0b6905e Merge pull request #949 from lightpanda-io/network_path_reference_stitch
Fix network-path reference stitching
2025-08-19 15:38:43 +08:00
Karl Seguin 8797549369 Fix network-path reference stitching 2025-08-18 23:05:11 +08:00
Karl Seguin f5ec74252d Add fulfillRequest and more complete continueRequest 2025-08-18 18:29:10 +08:00
Karl Seguin 211012d367 move intercept_state and extra_headers from CDP instance to BrowserContext 2025-08-18 13:23:17 +08:00
Karl Seguin c1319d1f27 add proper resourceType 2025-08-18 12:42:18 +08:00
Pierre Tachoire d4d8773fd1 Merge pull request #927 from lightpanda-io/window-frames
Partial window.frames implementation
2025-08-15 14:54:29 +02:00
Karl Seguin 01223601f2 Reduce allocations made during request interception
Stream (to json) the Transfer as a request and response object in the various
network interception-related events (e.g. Network.responseReceived).

Add a page.request_intercepted boolean flag for CDP to signal the page that
requests have been intercepted, allowing Page.wait to prioritize intercept
handling (or, at least, not block it).
2025-08-15 14:01:57 +08:00
Karl Seguin d9ed4cfca8 Merge pull request #940 from lightpanda-io/redirect-cookies
enable curl cookie engine
2025-08-15 08:50:25 +08:00
Pierre Tachoire 7d0e4b6270 use CURLOPT_COOKIE to set cookies 2025-08-14 15:33:02 +02:00
Pierre Tachoire b2f645a5ce enable curl cookie engine
Enabling Curl cookie engine brings advantage:
* handle cookies during a redirection: when a srv redirects including
  cookies, curl sends back the cookies correctly during the next request
2025-08-14 15:32:56 +02:00
Karl Seguin 6a29d6711c Merge pull request #945 from lightpanda-io/remove_unecessary_content_type_parse
Remove unecessary content type parse
2025-08-14 19:07:41 +08:00
Karl Seguin 5b2806a784 expose response header amount 2025-08-14 18:57:57 +08:00
Karl Seguin a2f15ce0b2 Remove unecessary content type parse
getResponseHeader takes header index
2025-08-14 18:26:01 +08:00
Karl Seguin 68400f3bcf Merge pull request #944 from lightpanda-io/fix_memory_leak
fix memory leak
2025-08-14 18:20:53 +08:00
Karl Seguin 31f3c2771a fix build error...sorry 2025-08-14 18:07:14 +08:00
Karl Seguin f9352e26cb same memory leak, different place 2025-08-14 18:00:56 +08:00
Karl Seguin 4fa542bc38 fix memory leak 2025-08-14 17:51:40 +08:00
Pierre Tachoire a707e10af7 Merge pull request #922 from lightpanda-io/nonblocking_libcurl
Nonblocking libcurl
2025-08-14 11:43:19 +02:00
Pierre Tachoire 1e095fede5 zig fmt build.zig 2025-08-14 11:29:56 +02:00
Karl Seguin 96b10f4b85 Optimize Network.responseReceived
Add a header iterator to the transfer. This removes the need for NetworkState,
duping header name/values, and the http_header_received event.
2025-08-14 15:50:56 +08:00
Karl Seguin 5100e06f38 fix header done callback 2025-08-14 14:51:02 +08:00
Karl Seguin 35e2fa5058 Merge pull request #943 from lightpanda-io/integer-overflow
fix integer overflow for sleeping delay
2025-08-14 05:43:49 +08:00
Pierre Tachoire 8d2d4ffdd2 fix integer overflow for sleeping delay 2025-08-13 19:44:06 +02:00