Karl Seguin
14cc87e1a5
Use latest tls.zig (with new allocation-free API)
...
Add more fuzz tests around async tls.
2025-03-23 19:05:37 +08:00
Karl Seguin
2a0d1b0a48
Switch to nonblocking socket
...
Improve test server handshake performance, allowing for a few more fuzz
iterations without making tests unbearably slow.
2025-03-23 19:05:37 +08:00
Karl Seguin
22aa126b29
Cleaner merge
...
Switch to non-blocking sockets.
Fix TLS handshake/receive/send ordering
2025-03-23 19:05:35 +08:00
Karl Seguin
feb2046549
add TLS integration test for sync client
2025-03-23 19:01:40 +08:00
Karl Seguin
2f362f2aa2
handle redirects on asynchronous calls
2025-03-23 19:01:40 +08:00
Karl Seguin
de160d9170
Cleanup synchronous connection for tls and non-tls.
...
Drain response prior to redirect.
2025-03-23 19:01:40 +08:00
Karl Seguin
226c18cb56
handle redirects on synchronous calls
2025-03-23 19:01:40 +08:00
Karl Seguin
314aea4e1e
fix double dereference
2025-03-23 19:01:40 +08:00
Karl Seguin
807d3a600c
Support transfer-encoding: chunked, fix async+tls integration
2025-03-23 19:01:40 +08:00
Karl Seguin
2017d4785b
replace zig-async-io and std.http.Client with a custom HTTP client
2025-03-23 19:01:40 +08:00
Pierre Tachoire
b972c9fe30
Merge pull request #484 from lightpanda-io/telemetry_batch
...
e2e-test / zig build release (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
send telemetry events in batches (up to 20)
2025-03-23 11:21:56 +01:00
Karl Seguin
3d6dd06b99
Generate non-persisted iid if app_path is null
2025-03-22 23:58:57 +08:00
Karl Seguin
81759fa57a
Use makePath to create any missing intermediate directories for app dir
...
https://github.com/lightpanda-io/browser/issues/486
2025-03-22 23:53:46 +08:00
Karl Seguin
2aee346299
send telemetry events in batches (up to 20)
2025-03-21 22:40:10 +08:00
Pierre Tachoire
7607ab2c84
cdp: target: implement detach from target
2025-03-20 09:36:00 +01:00
Pierre Tachoire
fe7f6bee1c
cdp: create a cdp state for target_auto_attach
2025-03-20 09:35:59 +01:00
Pierre Tachoire
b43658eb3f
cdp: target: add test for #474
...
Can't attach to just created target
2025-03-20 09:35:59 +01:00
Pierre Tachoire
55a942aa22
wpt: fix zig-0.14 compat
2025-03-19 16:48:22 +01:00
Karl Seguin
936048d478
upgrade telemetry to zig 0.14
2025-03-19 16:28:21 +01:00
Karl Seguin
21c9dde858
Zig 0.14 compatibility
2025-03-19 16:28:15 +01:00
Karl Seguin
705603a088
remove explicit thread stack size.
...
The real win is having a global http_client, so the thread only needs a pointer.
2025-03-19 16:17:41 +08:00
Karl Seguin
ba8a0179d5
Share the HTTP client globally
2025-03-19 11:09:58 +08:00
Pierre Tachoire
9fe10747ce
Merge pull request #476 from karlseguin/implicit_browser_context
...
e2e-test / zig build release (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Implicitly create BrowserContext on createTarget if one doesn't exist
2025-03-18 09:21:50 +01:00
Karl Seguin
2e7342a59c
add driver field to navigate telemetry
2025-03-18 10:40:04 +08:00
Karl Seguin
c9bc5be42b
add additition navigate fields
2025-03-18 09:56:57 +08:00
Karl Seguin
b75b36dc61
zig fmt
2025-03-18 08:27:47 +08:00
Karl Seguin
1e6a1bd3af
store iid in application data directory
2025-03-18 08:27:47 +08:00
Karl Seguin
b0a2087015
fix unit test
2025-03-18 08:27:47 +08:00
Karl Seguin
a5ee34a2db
send telemetry synchronously in a background thread
2025-03-18 08:27:47 +08:00
Karl Seguin
a6a8130234
update telemetry URL (but not vendored dependency this time)
2025-03-18 08:27:34 +08:00
Karl Seguin
288761632f
Revert "update telemetry URL"
...
This reverts commit 88850bcdd38026720f03087be8ef7e9869072ac6.
2025-03-18 08:27:34 +08:00
Karl Seguin
3b4de6a405
remove [incorrect] data version
2025-03-18 08:27:32 +08:00
Karl Seguin
75512602c3
Add log to display telemetry state
2025-03-18 08:27:02 +08:00
Karl Seguin
cd33a089d1
flatten events, include aarch + os, remove eid
2025-03-18 08:26:58 +08:00
Karl Seguin
6b83281539
Add navigate telemetry
2025-03-18 08:25:44 +08:00
Karl Seguin
2609671982
don't try (and fail) to get userData after clearing context
2025-03-18 08:02:09 +08:00
Karl Seguin
accf2c0e5e
use async-client for telemetry
2025-03-18 08:02:09 +08:00
Karl Seguin
53f6e66c23
Remove plausible, leave a dummy provider for now
...
Add batching, add install optional id (persisted) and execution id (per run)
2025-03-18 08:02:09 +08:00
Karl Seguin
56ddcc8e29
Initial usage telemetry
2025-03-18 08:02:09 +08:00
Karl Seguin
430779979e
Implicitly create BrowserContext on createTarget if one doesn't exist
2025-03-17 20:45:57 +08:00
Pierre Tachoire
087a7b5f3c
browser: use *const Page with fetchModule
2025-03-17 09:58:31 +01:00
Pierre Tachoire
229844d399
browser: use *const Script with evalScript
2025-03-17 09:51:01 +01:00
Pierre Tachoire
3fd8347943
browser: fix module URL resolution
2025-03-14 19:02:33 +01:00
Pierre Tachoire
aca01d81d6
cdp: use .zig-cache to save js script debug files
2025-03-14 11:41:21 +01:00
Pierre Tachoire
6a0b154d67
cdp: dump runtime js only in debug mode
2025-03-14 11:41:20 +01:00
Karl Seguin
3fe28d5441
Optimize memory usage
...
The two bigger changes here are:
1- The http_client has been moved from the Session to the Browser, allowing
its connection pool to be re-used across multiple sessions
2- The browser now has a page_arena which is used for all page-level allocation
and which can be re-used between pages (currently retains 1MB of memory).
Previously, pages uses an arena that was tied to the lifetime of the page,
thus it could not be re-used.
Using the Bench allocator for zig-js-runtime, allocated bytes went from
1347037879 to 834932438 (in a RUNS=1000 of puppeteer demo).
Various other changes to try to simplify the API and remove the possibility
of invalid states. For example, session.newPage() now includes the logic for
page.start() so that there should now never be a page that wasn't started.
2025-03-12 13:38:22 +08:00
Karl Seguin
e3409a27e7
fix test
2025-03-11 10:51:40 +08:00
Karl Seguin
5182edce6f
Remove CDP FrameId
...
I don't know if FrameId is related to an <iframe>, and whether each Page has
1 implicit "frame". But, playwright seems to treat frameId and targetId as
interchangeable, and chrome seems to agree (at leas to some degree); chrome will
return a targetId and reuse that value for the frameId.
So the simplest solution is just to remove our concept of a frameId and use
targetId exclusively. This doesn't seem to cause any issues with puppeteer.
2025-03-11 10:37:43 +08:00
Pierre Tachoire
bd7b84e136
loop: reset the loop after page end
2025-03-10 15:59:46 +01:00
Pierre Tachoire
6ca1e6c6dd
cdp: let the inspector return the response
...
When a command is forwarded to the inspector, it handles directly the
reponse to the message.
2025-03-10 14:57:10 +01:00