Karl Seguin
dd22c55d23
migrate to htmlRunne (plus zig fmt)
2025-09-05 13:52:08 +08:00
Karl Seguin
5087b8004a
Merge pull request #1009 from lightpanda-io/migrate_some_tests_4
...
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
migrate to htmlRunner
2025-09-04 18:32:17 +08:00
Karl Seguin
d4c40242d0
Merge pull request #1008 from lightpanda-io/network_idle_page_lifecycle
...
Emit networkIdle and networkAlmostIdle Page.lifecycleEvent
2025-09-04 17:48:02 +08:00
Karl Seguin
5af55f1d5d
migrate to htmlRunner
2025-09-04 17:46:42 +08:00
Karl Seguin
55ef0a5e9e
fix some spelling in comments
2025-09-04 16:44:00 +08:00
Karl Seguin
5dda86bf4a
Emit networkIdle and networkAlmostIdle Page.lifecycleEvent
...
Most CDP drivers have a mechanism to wait for idle network, or an almost idle
network (sometimes called networkIdle2). These are events the browser must emit.
The page will now emit `networkIdle` when we are reasonably sure there's no more
network activity (this requires some slight changes to request interception,
since, I believe, intercepted requests should be considered).
`networkAlmostIdle` is currently _always_ emitted prior to emitting
`networkIdle`. We should tweak this but I can't, at a glance, think of a great
heuristic for when this should be emitted.
2025-09-04 16:36:29 +08:00
Karl Seguin
d81377b10d
Merge pull request #1007 from lightpanda-io/timeout_limit
...
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
Limit serve timeout to 1 week
2025-09-04 16:02:39 +08:00
Karl Seguin
da128f5d49
remove unecessary @intCast
2025-09-04 15:52:08 +08:00
Karl Seguin
6e5fe8e4a2
Add timeout limit to --help text
2025-09-04 15:48:01 +08:00
Karl Seguin
b3d350d41e
Limit serve timeout to 1 week
2025-09-04 15:27:03 +08:00
Karl Seguin
7c6870f8eb
Merge pull request #1006 from lightpanda-io/migrate_some_tests_3
...
migrate to htmlRunner
2025-09-04 13:18:44 +08:00
Karl Seguin
327b4e4e37
migrate to htmlRunner
2025-09-04 13:11:15 +08:00
Karl Seguin
7fdc857326
Merge pull request #1004 from lightpanda-io/migrate_some_tests_2
...
Migrate some tests 2
2025-09-04 12:19:36 +08:00
Karl Seguin
0382c2775e
Migrate more tests to html runner
...
Implement LocalStorage named get/set (i.e. localStorage["hi"])
2025-09-03 22:54:41 +08:00
Karl Seguin
a0374133cd
migrate tests to new html runner
2025-09-03 22:54:40 +08:00
Karl Seguin
055f697340
Merge pull request #1005 from lightpanda-io/e2e-output
...
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
ci: remove go runner verbose mode
2025-09-03 22:44:35 +08:00
Pierre Tachoire
ec8a9862c7
ci: remove go runner verbose mode
2025-09-03 15:42:35 +02:00
Karl Seguin
f393eb7b7d
Merge pull request #1003 from lightpanda-io/http_always_monitor_cdp
...
Http always monitor cdp
2025-09-03 20:35:49 +08:00
Karl Seguin
78285d7b1e
fix tests
2025-09-03 20:23:59 +08:00
Karl Seguin
b6137b03cd
Rework page wait again
...
Further reducing bouncing between page and server for loop polling. If there is
a page, the page polls. If there isn't a page, the server polls. Simpler.
2025-09-03 19:38:01 +08:00
Karl Seguin
e237e709b6
Change loader id on navigation
...
This appears to be what chrome is doing. I don't know why we weren't before.
2025-09-03 08:17:14 +08:00
Karl Seguin
2ac9b2088a
Always monitor the CDP client socket, even on page.wait
2025-09-03 08:17:13 +08:00
Karl Seguin
a791212d89
Merge pull request #1002 from lightpanda-io/nix-0.15.1
...
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
Update Nix Flake (Zig 0.15.1)
2025-09-03 08:07:34 +08:00
Muki Kiboigo
5cc5f45ef3
update zig-v8-fork
2025-09-02 09:25:33 -07:00
Muki Kiboigo
a11e50c087
nix flake for zig 0.15.1
2025-09-02 08:58:31 -07:00
Pierre Tachoire
4dc09360a1
Merge pull request #1001 from lightpanda-io/fix_abort_crash
...
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
fix segfault on abort if there are queued transfers
2025-09-02 15:45:51 +02:00
Karl Seguin
3a5528cc4d
Merge pull request #1000 from lightpanda-io/log_unhandled_promise_rejections
...
Log unhandled promise rejection
2025-09-02 21:18:28 +08:00
Karl Seguin
de533755e5
fix segfault on abort if there are queued transfers
2025-09-02 21:18:02 +08:00
Karl Seguin
024b69ee3e
update v8 dep
2025-09-02 19:48:56 +08:00
Karl Seguin
d7e7832e9f
Log unhandled promise rejection
2025-09-02 18:19:28 +08:00
Karl Seguin
8d4d72bf15
Merge pull request #998 from lightpanda-io/migrate_some_tests_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
Migrate some tests to the new htmlRunner
2025-09-02 16:11:08 +08:00
Pierre Tachoire
86a82d55fa
Merge pull request #999 from lightpanda-io/handle_no_certs
...
Don't panic if no certs are available
2025-09-02 08:03:44 +02:00
Karl Seguin
5a15066da3
Don't panic if no certs are available
...
https://github.com/lightpanda-io/browser/issues/982
2025-09-02 13:50:53 +08:00
Karl Seguin
81766c8517
Migrate some tests to the new htmlRunner
...
Fix events.get_timeStamp (was events.get_timestamp, wrong casing).
Rename `newRunner` to `htmlRunner`.
move tests to src/tests (from src/browser/tests). src/runtime and possibly other
parts might want to have html tests too.
2025-09-02 10:40:04 +08:00
Karl Seguin
e486f28a41
Merge pull request #995 from lightpanda-io/improved_test_runner
...
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
Looking for feedback on new test runner
2025-09-02 07:45:41 +08:00
Karl Seguin
8a9cbaf413
explicitly load testing.js
2025-09-02 07:38:03 +08:00
Karl Seguin
3a0a930b79
don't log 'long timeout ignored' during testing
2025-09-02 07:38:03 +08:00
Karl Seguin
c40704d2f3
Prototype new test runner
...
Follows up on https://github.com/lightpanda-io/browser/pull/994 and replaces
the jsRunner with a new page.navigation-based test runner.
Currently only implemented for the Window tests, looking for feedback and
converting every existing test will take time - so for a while, newRunner (to be
renamed) will sit side-by-side with jsRunner.
In addition to the benefits outlined in 994, largely around code simplicity and
putting more of the actual code under tests, I think our WebAPI tests
particularly benefit from:
1 - No need to recompile when modifying the html tests
2 - Much better assertions, e.g. you can assert that something is actually an
array, not just a string representation of an array
3 - Ability to test some edge cases (e.g. dynamic script loading)
I've put some effort into testing.js to make sure that, if the encapsulating
zig test passes, it's because it actually passed, not because it didn't run.
For the time being, console tests are removed. I think it's more useful to have
access to the console within tests, than it is to test the console (which is
just a wrapper around log, which is both tested and heavily used).
2025-09-02 07:38:02 +08:00
Karl Seguin
c0f0630e17
Merge pull request #997 from lightpanda-io/fix_build
...
fix build
2025-09-02 07:24:02 +08:00
Karl Seguin
19dbb3a778
fix build
2025-09-02 07:06:57 +08:00
Karl Seguin
d4fc6f1b35
Merge pull request #996 from lightpanda-io/revert-document-element
...
Revert "document.documentElement returns a *parser.Element"
2025-09-02 06:52:16 +08:00
Karl Seguin
7c82942912
Merge pull request #994 from lightpanda-io/test_http_server
...
Test http server
2025-09-02 06:51:52 +08:00
Karl Seguin
87d48b028b
Merge pull request #992 from lightpanda-io/http_buffer_presize
...
Pre-size the destination buffer when we know the response content length
2025-09-02 06:51:15 +08:00
Pierre Tachoire
d6640f4d15
Revert "document.documentElement returns a *parser.Element"
...
This reverts commit c1752ae5eb .
2025-09-01 15:46:16 +02:00
Karl Seguin
785a8da623
remove content-length limit
2025-09-01 18:53:00 +08:00
Karl Seguin
57dc303d90
Make getContentLength work on fulfilled responses
2025-09-01 18:40:50 +08: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
7d46e8fe80
Start unifying test and code
...
Depends on https://github.com/lightpanda-io/browser/pull/993
There's currently 3 ways to execute a page:
1 - page.navigate (as used in both the 'fetch' and 'serve' commands)
2 - jsRunner as used in unit tests
3 - main_wpt as used in the WPT runner
Both jsRunner and main_wpt replicate the page.navigate code, but in their own
hack-ish way. main_wpt re-implements the DOM walking in order to extract and
execute <script> tags, as well as the needed page lifecycle events.
This PR replaces the existing main_wpt loader with a call to page.navigate. To
support this, a test HTTP server was added. (The test HTTP server is extracted
from the existing unit test test server, and re-used between the two).
There are benefits to this approach:
1 - The code is simpler
2 - More of the actual code and flow is tested
3 - There's 1 way to do things (page.navigate)
4 - Having an HTTP server might unlock some WPT tests
Technically, we're replacing file IO with network IO i.e. http requests). This
has potential downsides:
1 - The tests might be more brittle
2 - The tests might be slower
I think we need to run it for a while to see if we get flaky behavior.
The goal for following PRs is to bring this unification to the jsRunner.
2025-09-01 13:01:08 +08:00