Karl Seguin
69b65dbd41
Add custom panic handler to printt which file caused a panic
2025-10-01 11:24:41 +08:00
Karl Seguin
c335a545a3
Merge pull request #1107 from lightpanda-io/mutation_observer_improvement
...
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
Use correct 'this' on MutationObserver callback
2025-10-01 08:44:07 +08:00
Karl Seguin
37fa41b4a2
fix buffer ranges
2025-09-30 19:47:41 +08:00
Karl Seguin
298f959e13
Add broken TextDecoder test that should pass
2025-09-30 19:47:26 +08:00
Karl Seguin
1cb431f204
Better support for Uint8Array in ReadableStream
...
There's always going to be ambiguity between a string and a Uint8Array. We
already had TypedArray(u8) as a discriminator when _returning_ values. But now
the type is also used by mapping JS values to Zig. To support this efficiently
when probing the union, the typed array mapping logic was extracted into its
own function (so that it can be used by the probe).
2025-09-30 19:47:22 +08:00
Karl Seguin
74dc7b278b
Merge pull request #1105 from lightpanda-io/fix_bad_window_test
...
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 typo and wrong API in window test
2025-09-30 19:44:10 +08:00
Karl Seguin
b47d8a794c
Use correct 'this' on MutationObserver callback
...
Add support for MutationObserver.disconnect
2025-09-30 19:36:06 +08:00
Halil Durak
eaf845959c
Merge pull request #1106 from lightpanda-io/nikneym/window-onload-fix
...
Don't allow object to be set on `window.onload`
2025-09-30 14:12:01 +03:00
nikneym
fb37b29671
don't allow object to be set on window.onload
2025-09-30 12:38:08 +03:00
Karl Seguin
2ecf9016ba
Better support for Uint8Array in ReadableStream
...
There's always going to be ambiguity between a string and a Uint8Array. We
already had TypedArray(u8) as a discriminator when _returning_ values. But now
the type is also used by mapping JS values to Zig. To support this efficiently
when probing the union, the typed array mapping logic was extracted into its
own function (so that it can be used by the probe).
2025-09-30 16:32:55 +08:00
Karl Seguin
444b08be32
fix typo and wrong API in window test
2025-09-30 16:28:47 +08:00
Karl Seguin
2b84712eee
Add Session.fetchWait so that 'fetch' mode will follow navigation
2025-09-30 13:36:05 +08:00
Karl Seguin
20cb6cdd8b
Merge pull request #1091 from lightpanda-io/concurrent_blocking_imports
...
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
Concurrent blocking imports
2025-09-30 12:30:42 +08:00
Karl Seguin
477a5e5338
Merge pull request #1088 from lightpanda-io/nonblocking_dynamic_imports
...
nonblocking dynamic imports
2025-09-30 12:30:31 +08:00
nikneym
1d50e091c7
add window.onload test
2025-09-29 14:45:47 +03:00
nikneym
c587e380a0
add window.onload getter and setter
2025-09-29 14:45:35 +03:00
Karl Seguin
54f9bfba84
Merge pull request #1099 from lightpanda-io/nikneym/qol-changes
...
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
Small changes
2025-09-29 17:39:32 +08:00
Karl Seguin
489ba131c5
Merge pull request #1097 from lightpanda-io/check_visibility_opts
...
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
add missing checkVisibility options
2025-09-29 15:18:10 +08:00
Karl Seguin
d7ce6bdeff
Replace HTMLCollection postAttach's with indexed/named getter
...
This solves two issues. First, it's more correct, the indexers should be live.
Second, it makes sure that anything with an HTMLCollection prototype, like
HTMLOptionsCollection, also gets access to the index getters.
We could solve the 2nd issue by making `postAttach` work up the prototype
chain, but since postAttach is wrong (not live), I prefer this solution.
2025-09-29 14:03:59 +08:00
Karl Seguin
e88473d090
add missing checkVisibility options
2025-09-29 12:04:11 +08:00
nikneym
b9024ab032
set_innerHTML: simpler iteration
2025-09-26 15:38:23 +03:00
nikneym
98906be0f6
parseData: remove iterator variant
2025-09-26 15:38:22 +03:00
Pierre Tachoire
a579977f66
Merge pull request #1086 from lightpanda-io/history
...
Implement `History` WebAPI.
2025-09-26 12:15:07 +02:00
Karl Seguin
418dc6fdc2
Start downloading all synchronous imports ASAP
...
This changes how non-async module loading works. In general, module loading
is triggered by a v8 callback. We ask it to process a module (a <script type=
module>) and then for every module that it depends on, we get a callback. This
callback expects the nested v8.Module instance, so we need to load it then and
there (as opposed to dynamic imports, where we only have to return a promise).
Previously, we solved this by issuing a blocking HTTP get in each callback. The
HTTP loop was able to continuing downloading already-queued resources, but if
a module depended on 20 nested modules, we'd issue 20 blocking gets one after
the other.
Once a module is compiled, we can ask v8 for a list of its dependent module. We
can them immediately start to download all of those modules. We then evaluate
the original module, which will trigger our callback. At this point, we still
need to block and wait for the response, but we've already started the download
and it's much faster. Sure, for the first module, we might need to wait the same
amount of time, but for the other 19, chances are by the time the callback
executes, we already have it downloaded and ready.
2025-09-26 15:38:50 +08:00
Karl Seguin
2aa4b03673
try to cleanup persisted references
2025-09-26 15:34:32 +08:00
Karl Seguin
f236a65a79
Merge pull request #1092 from lightpanda-io/nikneym/insert-adjacent-html
...
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 `Element#insertAdjacentHTML`
2025-09-26 14:51:08 +08:00
nikneym
f7b08a1160
prefer orelse return instead of orelse unreachable
2025-09-26 09:43:30 +03:00
Karl Seguin
eed10dd1bb
Apply suggestions from code review
...
fix typos
Co-authored-by: Pierre Tachoire <pierre@lightpanda.io >
2025-09-26 10:37:31 +08:00
Muki Kiboigo
9992bd0999
clean up history api
2025-09-25 12:33:30 -07:00
nikneym
6912175e7e
prefer $ instead of document.querySelector
2025-09-25 19:30:10 +03:00
nikneym
a59c32757e
assert that nodes exist
2025-09-25 19:29:44 +03:00
nikneym
2438a0e60b
fix comment
2025-09-25 19:17:08 +03:00
nikneym
a850a902ce
make sure parent is not Document in beforebegin and afterend
2025-09-25 15:04:26 +03:00
nikneym
b7ba993ba6
improve insertAdjacentHTML test
2025-09-25 14:42:58 +03:00
nikneym
3eb0d57d5b
correct element insertation in insertAdjacentHTML
...
* also DRY since the loop is repeated multiple times.
2025-09-25 14:41:50 +03:00
Karl Seguin
6bf2ff9168
Protect against context changing during module resolution.
2025-09-25 13:39:02 +08:00
Karl Seguin
134424dfdc
add script dataurl test
2025-09-25 08:18:59 +08:00
nikneym
902b8fc789
add insertAdjacentHTML test
2025-09-24 20:26:05 +03:00
nikneym
923491a510
make ref_node of nodeInsertBefore nullable
2025-09-24 20:21:48 +03:00
nikneym
255b45d07b
initial insertAdjacentHTML attempt
2025-09-24 20:21:08 +03:00
Pierre Tachoire
8f68b5b289
fix data uri scripts
2025-09-24 17:29:23 +02:00
Karl Seguin
252fd78473
remove duplicate put, add more assertions
2025-09-24 22:44:46 +08:00
Karl Seguin
b692c5db60
nonblocking dynamic imports
...
Allows dynamic imports to be loading asynchronously. I know reddit isnt the
best example, since it doesn't fully load, but this reduced the load time from
~7.2s to ~4.8s.
2025-09-24 22:28:22 +08:00
Pierre Tachoire
eff7d58f4b
Merge pull request #1087 from lightpanda-io/fix-beyboardevent
...
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
fix pointer parameter into KeyboardEvent contructor
2025-09-24 09:56:47 +02:00
Pierre Tachoire
17e9bdf8e8
fix pointer parameter into MouseEvent contructor
2025-09-24 09:40:24 +02:00
Pierre Tachoire
22d2694b71
fix pointer parameter into KeyboardEvent contructor
2025-09-24 09:29:37 +02:00
Muki Kiboigo
e74d7fa454
add popstate event for History
2025-09-24 00:22:20 -07:00
Muki Kiboigo
464f42a121
add history tests
2025-09-24 00:21:16 -07:00
Muki Kiboigo
05e7079178
functional history WebAPI
2025-09-24 00:21:16 -07:00
Muki Kiboigo
f03fcc9a31
support for returning Env.Value
2025-09-24 00:21:16 -07:00