Pierre Tachoire
d6640f4d15
Revert "document.documentElement returns a *parser.Element"
...
This reverts commit c1752ae5eb .
2025-09-01 15:46:16 +02:00
Pierre Tachoire
ce08cc9659
Merge pull request #993 from lightpanda-io/remove_unsafe_undefine
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Remove [some] unsafe undefines from netsurf wrapper
2025-09-01 08:26:41 +02:00
Pierre Tachoire
866393743c
Merge pull request #991 from lightpanda-io/mimalloc_assertions
...
Switch mimalloc guards to assertions
2025-09-01 08:12:21 +02:00
Pierre Tachoire
ba255aa653
Merge pull request #989 from lightpanda-io/clocks
...
Improve clocks
2025-09-01 08:11:05 +02:00
Karl Seguin
6c41245c73
Remove [some] unsafe undefines from netsurf wrapper
...
Code like this:
```
var body: ?*ElementHTML = undefined;
const err = documentHTMLVtable(doc_html).get_body.?(doc_html, &body);
try DOMErr(err);
if (body == null) return null;
return @as(*Body, @ptrCast(body.?));
```
Isn't safe. It assumes that libdom will either return an error, or set body
to null or a value. However, there are cases (specifically for this API) where
libdom returns DOM_NO_ERR without ever setting body. In such cases, we return
a `body` initialized to a random (invalid) value.
This PR replaces the initial value of optional types from undefined to null
(within the libdom wrapper).
2025-09-01 11:41:37 +08:00
Karl Seguin
b2cf5df612
Switch mimalloc guards to assertions
...
The thin mimalloc API is currently defensive around incorrect setup/teardown by
guarding against using/destroying the arena when the heap is null, or creating
an arena when it already exists.
The only time these checks will fail is when the code is wrong, e.g. trying
to use libdom before or after freeing the arena. The current behavior can mask
these errors, plus add runtime overhead.
2025-08-31 19:35:53 +08:00
Karl Seguin
ada9ddd5b8
Improve clocks
...
There's a flaky performance test that I wanted to fix (1). This led to a couple
changes.
1 - Add timestamp() and milliTimestamp() to datetime.zig. Reduce some code
duplication and use better clock_ids where available
2 - Change Performance API to use milliTimestamp and store a u64 instead of a
f64. While the spec says a float, Firefox deals with u64 and implicit
conversion is always available. Makes our APIs simpler.
(1) - https://github.com/lightpanda-io/browser/actions/runs/17313296490/job/49151366798#step:4:131
2025-08-30 13:45:12 +08:00
Karl Seguin
f66f4d9aeb
Merge pull request #987 from lightpanda-io/improve_server_shutdown
...
e2e-test / zig build release (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / zig test (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
zig-test / browser fetch (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 / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
Ignore ConnectionClosed error on server shutdown
2025-08-30 12:35:12 +08:00
Pierre Tachoire
d02ba777f2
Merge pull request #984 from lightpanda-io/zig.0.15.1
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (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 / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
Zig 0.15.1
2025-08-29 10:33:00 +02:00
Karl Seguin
aef614823b
Ignore ConnectionClosed error on server shutdown
...
Our shutdown could be cleaner, but this at least removes a meaningless (because
we're shutting down) log.err that was happening on every test run.
2025-08-29 16:21:26 +08:00
Karl Seguin
431db85ecb
Merge pull request #978 from lightpanda-io/dynamic_cdp_read_buffer
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Make the CDP read buffer heap allocated & dynamic
2025-08-29 12:20:58 +08:00
Karl Seguin
1ebac06f4b
add debug line on cdp buffer growth
2025-08-29 10:55:36 +08:00
Karl Seguin
c7c5af4708
zig fmt
2025-08-29 10:51:19 +08:00
Karl Seguin
0b6a9d3a0b
use llvm. The new x86 backend crashes with v8.
2025-08-29 10:42:07 +08:00
Karl Seguin
23d6362058
fix telemetry, link libc and libcpp
2025-08-29 10:42:06 +08:00
Karl Seguin
1443f38e5f
Zig 0.15.1
...
Depends on https://github.com/lightpanda-io/zig-v8-fork/pull/89
2025-08-29 10:42:06 +08:00
Karl Seguin
94960cc842
Merge pull request #979 from lightpanda-io/app_owns_platform
...
App owns platform
2025-08-29 10:33:55 +08:00
Karl Seguin
efc983b009
Start with 16K buffer (down from 32K). Use array list growth algorithm
2025-08-29 10:33:27 +08:00
Karl Seguin
74d90f2892
fix tests
2025-08-29 10:14:59 +08:00
Karl Seguin
56f1b6cc19
Make the CDP read buffer heap allocated & dynamic
...
Rather than stack-allocating MAX_MESSAGE_SIZE upfront, we now allocate 32KB
and grow the buffer as needed for larger messages, up to MAX_MESSAGE_SIZE.
This will reduce memory usage for drivers that don't send huge payloads (like
playwright does).
While not implemented, this would also enable us to set the MAX_MESSAGE_SIZE
at runtime (e.g. via a command line option).
2025-08-29 10:14:58 +08:00
Karl Seguin
fa2cd9dfd9
Ability to start/stop CDP server.
...
Exists for cleaning up after tests.
2025-08-29 10:14:08 +08:00
Karl Seguin
687f09d952
Make the App own the Platform
...
Removes optional platform, which only existed for tests.
There is now a global `@import("testing.zig").test_app` available. This is setup
when the test runner starts, and cleaned up at the end of tests. Individual
tests don't have to worry about creating app, which I assume was the reason I
Platform optional, since that woul dhave been something else that needed to be
setup.
2025-08-29 10:14:06 +08:00
Karl Seguin
67b479b5c8
Merge pull request #983 from lightpanda-io/sigint
...
exit the browser on SIGINT signal
2025-08-29 10:10:49 +08:00
Pierre Tachoire
eac2140693
Merge pull request #986 from lightpanda-io/readme-interception
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (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 / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
README: check request interception
2025-08-28 17:19:32 +02:00
Pierre Tachoire
7a3f5de9c2
Merge pull request #985 from lightpanda-io/fulfill-content-type-len
...
http: set content_type len on fulfill request
2025-08-28 17:19:23 +02:00
Pierre Tachoire
7005bf2481
README: check request interception
2025-08-28 17:18:42 +02:00
Pierre Tachoire
b80ee3342c
http: set content_type len on fulfill request
2025-08-28 16:28:41 +02:00
Pierre Tachoire
4c7b7b1e60
handle graceful shutdown
2025-08-28 12:44:16 +02:00
Pierre Tachoire
1a4a3608c8
exit the browser on SIGINT signal
2025-08-28 12:44:12 +02:00
Pierre Tachoire
6800d50339
Merge pull request #981 from lightpanda-io/page-navigate-event
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (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 / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
page: ensure page navigate events order
2025-08-27 18:23:22 +02:00
Pierre Tachoire
036f808ec6
page: ensure page navigate events order
2025-08-27 17:36:36 +02:00
Pierre Tachoire
7647ce9e6d
Merge pull request #960 from lightpanda-io/auth-challenge
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
auth required interception
2025-08-27 15:34:51 +02:00
Karl Seguin
545d3f81ce
Merge pull request #977 from lightpanda-io/selector_by_ref
...
Select is relatively large (64 bytes), pass it by ref
2025-08-27 19:37:36 +08:00
Pierre Tachoire
455615b9c1
Merge pull request #980 from lightpanda-io/update-docker-readme
...
Update docker readme
2025-08-27 09:32:41 +02:00
Pierre Tachoire
d0e2a03da5
README: proxy support is ready
2025-08-27 09:30:43 +02:00
Pierre Tachoire
fa408e644c
cs fix
2025-08-27 09:26:10 +02:00
Pierre Tachoire
a22416584d
README: --privileged is not needed anymore
2025-08-27 09:25:51 +02:00
Karl Seguin
b8fc60df45
Merge pull request #975 from lightpanda-io/dynamic_script
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Support dynamic scripts which are added to the DOM before src is set
2025-08-27 05:59:28 +08:00
Karl Seguin
c6455cf02e
Select is relatively large (64 bytes), pass it by ref
2025-08-27 05:55:04 +08:00
Pierre Tachoire
2ac1d39367
Merge pull request #976 from lightpanda-io/webapi_file_placeholder
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (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 / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
The most basic File implementation.
2025-08-26 18:20:53 +02:00
Pierre Tachoire
041e014d68
Merge pull request #970 from lightpanda-io/remove_loop
...
Remove the loop
2025-08-26 18:17:32 +02:00
Pierre Tachoire
5defb5c442
http: build headers when auth challenge fails
2025-08-26 18:05:45 +02:00
Pierre Tachoire
520a572bb4
http: add reset and tries for transfer
2025-08-26 18:05:45 +02:00
Pierre Tachoire
4c602256da
http: remove useless field
2025-08-26 18:05:45 +02:00
Pierre Tachoire
5a40cbd655
cdp: use enum for AuthChallengeResponse
2025-08-26 18:05:45 +02:00
Pierre Tachoire
a75f9dd48d
cdp: set default username/passwd for authChallengeResponse
2025-08-26 18:05:44 +02:00
Pierre Tachoire
6b47aa2446
cdp: add auth required interception process
2025-08-26 18:05:44 +02:00
Pierre Tachoire
a847a1faae
http: replace _forbidden with _auth_challenge struct
2025-08-26 18:05:44 +02:00
Pierre Tachoire
bb381e522c
http: add creds into request
2025-08-26 18:05:39 +02:00
Karl Seguin
6962cfb91a
Merge pull request #973 from lightpanda-io/no-body-response
...
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
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Handle response without body
2025-08-26 18:44:22 +08:00