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
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
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
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
Pierre Tachoire
a579977f66
Merge pull request #1086 from lightpanda-io/history
...
Implement `History` WebAPI.
2025-09-26 12:15:07 +02: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
6912175e7e
prefer $ instead of document.querySelector
2025-09-25 19:30:10 +03:00
nikneym
b7ba993ba6
improve insertAdjacentHTML test
2025-09-25 14:42:58 +03: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
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
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
c3ad054bb3
add toJson object and fromJson value
2025-09-24 00:21:16 -07:00
Karl Seguin
202e137d77
Merge pull request #1084 from lightpanda-io/slotchange
...
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
Dispatch slotchange event
2025-09-24 09:23:28 +08:00
Karl Seguin
6b35664e37
Merge pull request #1079 from lightpanda-io/dynamic_import_caching
...
Dynamic import caching
2025-09-24 09:23:16 +08:00
Karl Seguin
1a7dbd56ac
Dispatch slotchange event
...
The first time a `slotchange` event is registered, we setup a SlotChangeMonitor
on the page. This uses a global (ugh) MutationEvent to detect slot changes.
We could improve the perfomance of this by installing a MutationEvent per
custom element, but a global is obviously a lot easier.
Our MutationEvent currently fired _during_ the changes. This is problematic
(in general, but specifically for slotchange). You can image something like:
```
slot.addEventListener('slotchange', () => {
// do something with slot.assignedNodes()
});
```
But, if we dispatch the `slotchange` during the MutationEvent, assignedNodes
will return old nodes. So, our SlotChangeMonitor uses the page scheduler to
schedule dispatches on the next tick.
2025-09-23 17:41:05 +08:00
Karl Seguin
6bad2b16e4
Set Response.type to basic on same-origin requests
2025-09-23 11:35:51 +08:00
nikneym
71bc624a74
add a link element test
2025-09-22 16:35:06 +03:00
Karl Seguin
f04754c254
Correct dynamic module loading/caching
...
Refactors some of the module loading logic. Both normal modules import and
dynamic module import now share more of the same code - they both go through
the slightly modified `module` function.
Dynamic modules now check the cache first, before loading, and when cached,
resolve the correct promise. This can now happen regardless of the module
loading state.
Also tried to replace some page arenas with call arenas and added some basic
tests for both normal and dynamic module loading.
2025-09-22 15:15:00 +08:00
Karl Seguin
b248a2515e
Merge pull request #1071 from lightpanda-io/nikneym/element-dir
...
Add `element.dir` getter & setter
2025-09-19 16:51:32 +08:00
nikneym
6826c42c65
check for correct dir in HTML elements
2025-09-19 11:30:15 +03:00
nikneym
4f041e48a3
make sure dir attribute is parsed if provided
2025-09-19 11:26:53 +03:00
nikneym
ec6800500b
add a test for element.dir
2025-09-19 11:11:58 +03:00
Muki Kiboigo
25962326d2
add support for Response.type
2025-09-18 22:27:51 -07:00
Karl Seguin
36ce227bf6
Merge pull request #1055 from lightpanda-io/env_string
...
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
Introduces an Env.String for persistent strings
2025-09-18 19:06:46 +08:00
Pierre Tachoire
2d24e3c7f7
Merge pull request #972 from lightpanda-io/fetch
...
Fetch + ReadableStream
2025-09-18 09:29:05 +02:00
Karl Seguin
66362c2762
Give tests <!DOCTYPE html> so they work correct in browser
2025-09-18 10:53:29 +08:00
Muki Kiboigo
2a0964f66b
htmlRunner for ReadableStream tests, fix ReadableStream enqueue
2025-09-17 08:46:25 -07:00
Karl Seguin
24330a7491
remove meaningless text from test
2025-09-17 08:46:16 -07:00
Karl Seguin
cd763a7a35
fix arena, add fetch test
2025-09-17 08:46:03 -07:00
Muki Kiboigo
969bfb4e53
migrate fetch tests to htmlRunner
2025-09-17 08:45:42 -07:00
Karl Seguin
6b9dc90639
Introduces an Env.String for persistent strings
...
If a webapi has a []const u8 parameter, then the page.call_arena is used. This
is our favorite arena to use, but if the string value has a lifetime beyond the
call, it then needs to be duped again (using page.arena).
When a webapi has a Env.String parameter, the page.arena will be used directly
to get the value from V8, removing the need for an intermediary dupe in the
call_arena.
This allows HTMLCollections to be streamlined. They no longer need to dupe the
filter (tag name, class name, ...), which means they can no longer fail. It also
means that we no longer need to needlessly dupe the string literals.
2025-09-17 12:12:42 +08:00
Karl Seguin
4f127c9de3
Bubble events to the Window
2025-09-15 22:24:35 +08:00
Karl Seguin
2aeeb14c21
Merge pull request #1043 from lightpanda-io/html_slot_assigned_elements
...
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
add assignedElements to HTMLSlotElement
2025-09-13 10:12:20 +08:00
Karl Seguin
e5e57ab3bd
Merge pull request #1044 from lightpanda-io/script_nonce_and_df_host
...
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
Add Script get/set nonce
2025-09-12 20:45:50 +08:00
Karl Seguin
f3ce5dcfbd
Add Script get/set nonce
2025-09-12 19:19:36 +08:00
nikneym
22b4456bce
correct indentation in tests
2025-09-12 13:39:05 +03:00
nikneym
8f31fd778b
add KeyboardEvent tests
2025-09-12 13:38:47 +03:00
nikneym
3964f8649d
initial keyboard event
2025-09-12 13:33:30 +03:00
Karl Seguin
b7fb0ef1d3
add assignedElements to HTMLSlotElement
2025-09-12 17:40:29 +08:00
Karl Seguin
0913abe806
Improve TextDecoder.decode
...
1 - Optional input (why? I don't know, but it's part of the spec and happens)
2 - Optional stream parameter
3 - More test cases
2025-09-12 12:31:28 +08:00
Karl Seguin
75f0cd6e62
fix test
2025-09-11 16:10:06 +08:00