Nikolay Govorov
85742dd7eb
Cleanup threads manager
2026-01-30 13:16:57 +00:00
Nikolay Govorov
c2ba6851fa
Merge remote-tracking branch 'origin/main' into wp/mrdimidium/multicontext
2026-01-29 06:46:50 +00:00
Halil Durak
232e7a1759
Merge pull request #1430 from lightpanda-io/nikneym/attr-event-listeners
...
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
e2e-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / 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
Support HTML inline event listeners
2026-01-29 02:18:37 +03:00
Karl Seguin
c440d41d57
Merge pull request #1427 from lightpanda-io/arena_pool_double_free_detect
...
Add double-free detection to ArenaPool (in Debug Mode)
2026-01-29 07:04:33 +08:00
Karl Seguin
dfe5c24404
remove unused import and unused export
2026-01-29 07:04:20 +08:00
Karl Seguin
eba5773d56
Merge pull request #1428 from lightpanda-io/parser_arena_pool
...
Use ArenaPool when parsing HTML and for TextDecoder (with finalizer)
2026-01-29 06:49:14 +08:00
Karl Seguin
5d56fea2d3
check for leak after context is removed, as that can cause finalizers to run
2026-01-29 06:47:55 +08:00
Karl Seguin
946f02b7a2
Add double-free detection to ArenaPool (in Debug Mode)
...
Double-freeing should eventually cause a segfault (on ArenaPool.deinit, if not
sooner), but having an explicit check allows us to log the responsible owner.
2026-01-29 06:46:18 +08:00
Pierre Tachoire
d02d974cd0
Merge pull request #1429 from lightpanda-io/update-required-deps
...
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
e2e-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
update required deps for build from sources
2026-01-28 17:49:59 +01:00
Halil Durak
0a68be695d
add tests
2026-01-28 17:46:27 +03:00
Pierre Tachoire
335e781d0c
update required deps for build from sources
2026-01-28 15:37:58 +01:00
Halil Durak
9f5c2e4ca7
add getter/setter functions for attribute event listeners
...
Spec say these belong to `HTMLElement`.
2026-01-28 17:28:16 +03:00
Halil Durak
76a53bedbe
split inline event listener logic to Page.zig and Element.zig
2026-01-28 17:26:56 +03:00
Karl Seguin
b0bc84ed21
Merge pull request #1422 from lightpanda-io/log-on-call-err
...
always log try/catch error on call function
2026-01-28 18:45:02 +08:00
Pierre Tachoire
ae298fc2e6
use caught formatter and init caught into _tryCallWithThis
2026-01-28 11:27:05 +01:00
Pierre Tachoire
3b809b2910
Merge pull request #1421 from lightpanda-io/fix-context-collected
...
use inspector.resetContextGroup during cdp deinit
2026-01-28 11:22:49 +01:00
Pierre Tachoire
68fbc0bde3
use inspector.resetContextGroup during cdp deinit
...
Ensure the inspector is correctly reset from context before deinit it.
It fixes the contextCollected crash in a better way.
2026-01-28 11:11:38 +01:00
Pierre Tachoire
9d8e5263a6
Merge pull request #1418 from lightpanda-io/mem-pressure
...
use less aggressive v8 GC
2026-01-28 11:09:45 +01:00
Pierre Tachoire
7eb026cc0d
update zig-v8 deps
2026-01-28 10:38:04 +01:00
Karl Seguin
e51e6aa2b0
Use ArenaPool when parsing HTML and for TextDecoder (with finalizer)
...
Slowly more page.arena -> ArenaPool wherever possible. In some cases, an arena
from the arenapool will be preferred over the call_arena also.
2026-01-28 14:44:05 +08:00
Karl Seguin
bc700d2044
Merge pull request #1424 from lightpanda-io/parser_append_existing_parent
...
Add defensiveness around Parser.appendCallback
2026-01-28 09:21:14 +08:00
Karl Seguin
30ed58ff07
fix build
2026-01-28 08:06:22 +08:00
Nikolay Govorov
1ed2472742
Drop LimitedAllocator
2026-01-27 23:41:47 +00:00
Nikolay Govorov
891e822afa
Introduce common network thread
2026-01-27 23:36:15 +00:00
Nikolay Govorov
dc7ce0db89
Run some cdp connections
2026-01-27 23:36:13 +00:00
Nikolay Govorov
0764a44e1d
Centralizes configuration, eliminates unnecessary copying of config
2026-01-27 23:36:11 +00:00
Karl Seguin
066069baad
Add defensiveness around Parser.appendCallback
...
We're seeing an assertion in Page.appendNew fail because the node has a parent.
According to html5ever, this shouldn't be possible (appendNew is only called
from the Parser). BUT, it's possible we're mutating the node in a way that
we shouldn't...maybe there's JavaScript executing as we're parsing which is
mutating the node.
In release, this will be more defensive. In debug, this still crashes. It's
possible this is valid (like I said, maybe there's JS interleaved which is
mutating the node), but if so, I'd like to know the exact scenario that produces
this case.
2026-01-28 07:33:04 +08:00
Karl Seguin
068ec68917
Merge pull request #1420 from lightpanda-io/resolve_fix
...
Handle URL.resolve with path traversal as part of the filename
2026-01-28 06:46:35 +08:00
Halil Durak
560f028bda
remove unused getListenerType
2026-01-28 01:33:17 +03:00
Halil Durak
fd1e77df8f
parse event listeners provided as attributes
2026-01-28 01:31:43 +03:00
Karl Seguin
864ac08f16
optimize this more
2026-01-28 06:17:52 +08:00
Halil Durak
6ad1a11593
catch pointer overflows in createLookupKey
...
Its better to have this; if this is incorrect, its better to get notified.
2026-01-27 23:52:12 +03:00
Halil Durak
89174ba0b6
EventManager: introduce inline_lookup
...
Idea with this is to have a key-to-function for known event listeners. We pack pointer to event target with listener type to generate key and set function as value. By doing this, we save bytes for optionally and rarely set functions in elements.
2026-01-27 23:37:46 +03:00
Pierre Tachoire
fc5496e570
always log try/catch error on call function
...
We force log of detailled error caught during function call.
2026-01-27 18:41:12 +01:00
Karl Seguin
fd21d952ac
Handle URL.resolve with path traversal as part of the filename
2026-01-27 21:45:16 +08:00
Karl Seguin
073fea2bde
Merge pull request #1419 from lightpanda-io/arena_pool_leak_track_use_after_free
...
Reset _arena_pool_leak_track after the page.arena is reset
2026-01-27 18:04:46 +08:00
Karl Seguin
e548712f5e
Reset _arena_pool_leak_track after the page.arena is reset
2026-01-27 17:55:32 +08:00
Pierre Tachoire
c3ba83ff93
use less aggressive v8 GC
...
Isolate.lowMemoryNotification runs an aggrissive GC.
Using Isolate.memoryPressureNotification allow a more granular control
of GC.
2026-01-27 09:39:08 +01:00
Karl Seguin
451dd0fd64
Merge pull request #1411 from lightpanda-io/more_SSO
...
more small strings (string.String)
2026-01-27 13:18:56 +08:00
Karl Seguin
aa805c2428
Merge pull request #1415 from lightpanda-io/dynamic_module_import
...
Improve dynamic module loading
2026-01-27 13:09:13 +08:00
Karl Seguin
58a7590aff
Merge pull request #1416 from lightpanda-io/zigfmt
...
zig fmt
2026-01-27 13:08:54 +08:00
Karl Seguin
563ab30564
Merge pull request #1412 from lightpanda-io/response_arena
...
Add finalizer to Response and use an pooled arena
2026-01-27 12:55:52 +08:00
Karl Seguin
5050b34361
zig fmt
2026-01-27 12:55:25 +08:00
Karl Seguin
3bb86f196b
Improve dynamic module loading
...
We're seeing cases where known dynamic modules are being requested when the
module isn't compiled yet. It's not clear how this is happening. I believe an
empty cache entry is being created in postCompileModule and then the request
for the dynamic module is happening before the sycnhronous module is loaded.
This seems like the only way to get into this state ,but I can't reproduce it.
Still, we now try to handle this case by simply having the dynamic module
request overwrite the placeholder cache-entry created in postCompileModule.
2026-01-27 12:51:37 +08:00
Karl Seguin
51dca3be11
Merge pull request #1414 from lightpanda-io/cheak_leak_before_free
...
Check for arena pool leak _before_ resetting page arena
2026-01-27 08:55:31 +08:00
Karl Seguin
adeda6cd75
Merge pull request #1413 from lightpanda-io/always_trycatch_function_call
...
Always use TryCatch when calling a function
2026-01-27 08:55:20 +08:00
Karl Seguin
09665c3a4a
Check for arena pool leak _before_ resetting page arena
...
Cherry-picked from 31c0ac33d82271ee70b48b209b74a578e5e5c019
2026-01-27 06:43:23 +08:00
Karl Seguin
8f5f6212d2
Always use TryCatch when calling a function
...
And always ensure caught is initialized.
2026-01-26 20:06:47 +08:00
Karl Seguin
a11ae912b4
Add finalizer to Response and use an pooled arena
...
Unlike XHR, Response is a bit more complicated as it can exist in Zig code
without ever being given to v8. So we need to track this handoff to know who is
responsible for freeing it (zig code, on error/shutdown) or v8 code after
promise resolution.
This also cleansup a bad merge for the XHR finalizer and adds cleaning up the
`XMLHttpRequestEventTarget` callbacks.
2026-01-26 19:18:32 +08:00
Karl Seguin
3b12240615
remove newString helper in favor of .wrap
2026-01-26 08:00:04 +08:00