Karl Seguin
7f732c94da
add HTMLElementLink get/set href
2025-07-09 13:28:32 +08:00
Karl Seguin
bdc49a65aa
Merge pull request #859 from lightpanda-io/document_fragment_query_selector
...
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 querySelect and querySelectorAll to DocumentFragment
2025-07-09 10:25:35 +08:00
Karl Seguin
73d82dd0ba
I guess we can't use the call_arena for querySelectorAll
2025-07-09 10:19:16 +08:00
Karl Seguin
dfa4403c8a
arena -> call_arena for querySelectorAll
2025-07-09 10:11:26 +08:00
Karl Seguin
b8f3b19499
Merge pull request #857 from lightpanda-io/improved_native_proto
...
Improve prototype resolution for native types
2025-07-09 10:01:38 +08:00
Karl Seguin
448718d112
Merge pull request #858 from lightpanda-io/callback_with_new_this
...
Allow JS Callback to be called with a previously-unseen this.
2025-07-09 09:34:14 +08:00
Karl Seguin
d7fba81f8f
Add querySelect and querySelectorAll to DocumentFragment
2025-07-08 19:24:35 +08:00
Karl Seguin
29ac13185c
Allow JS Callback to be called with a previously-unseen this.
2025-07-08 19:17:59 +08:00
Karl Seguin
3a49ee83ce
Improve prototype resolution for native types
...
Prototype resolution of Zig types previously had 2 limitations (bug?). The first
was that the Zig prototype chain could only be 1 deep. You couldn't do A->B->C
where each of those was a Zig type (but you could do A->B->C->D->E ... so long
as every other type was a C opaque value).
The other limitation was that Zig prototypes only worked when the nested field
was directly embedded in the struct (i.e. not a pointer). So you could do:
```zig
const X = struct {
proto: XParent,
};
```
But not:
```zig
const X = struct {
proto: *XParent,
};
```
This addresses both limitations. The first issue is solved by keeping track
of the cumulative offset
2025-07-08 18:37:24 +08:00
Karl Seguin
95cbbc3b45
add dummy ResizeObserver
2025-07-08 18:35:25 +08:00
Karl Seguin
b74863873b
zig fmt
2025-07-08 18:28:21 +08:00
Karl Seguin
7b46fe9cc8
Merge pull request #848 from lightpanda-io/fix_insecure_forward_proxy
...
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 non-tls forward-proxy
2025-07-08 09:52:23 +08:00
Karl Seguin
38bbad6e88
Revert "fix secure connection logic"
...
This reverts commit b6132f2497 .
2025-07-08 09:33:53 +08:00
Karl Seguin
1df47fd415
remove std.debug.print
2025-07-08 09:33:19 +08:00
Pierre Tachoire
faf21c5fff
Merge pull request #853 from lightpanda-io/typo-fix
...
typo fix
2025-07-07 17:24:28 -07:00
Karl Seguin
2aee580795
Merge pull request #849 from lightpanda-io/mutation_observer_loop
...
Rework MutationObserver callback.
2025-07-08 08:15:02 +08:00
Pierre Tachoire
404c027546
typo fix
2025-07-07 17:14:52 -07:00
Karl Seguin
04e59c6df2
Merge pull request #850 from lightpanda-io/set_attribute_value
...
Attribute.set_value uses element, if possible
2025-07-08 08:14:52 +08:00
Pierre Tachoire
2cdc9e9f5f
cdp: use a polyfill loader per isolate
2025-07-07 16:31:54 -07:00
Pierre Tachoire
13c623755c
js: remove existing unknown property debug
...
Because it will be displayed only if the property is non-native.
So if your property is set in pureJS, you will still have the log...
2025-07-07 16:31:54 -07:00
Pierre Tachoire
bdfceec520
refacto a bit the missing callback into polyfill
...
Add a debug global unknown property
2025-07-07 16:31:53 -07:00
Pierre Tachoire
941dace7f9
enable conditionnal loading for polyfill
2025-07-07 16:31:53 -07:00
Karl Seguin
07693e54af
Add support for the signal option of addEventListener
2025-07-07 20:56:19 +08:00
Karl Seguin
b6132f2497
fix secure connection logic
2025-07-07 19:56:21 +08:00
Karl Seguin
b3fe3d02c9
Attribute.set_value uses element, if possible
...
Only when setAttribute is called directly on the element, does libdom raise
a `DOMAttrModified` event (which MutationObserver uses).
From what I can tell, libdom's element set attribute _does_ rely on the
underlying attribute set value, so the behavior should be pretty close, it just
does extra things on top of that.
2025-07-07 19:47:17 +08:00
Karl Seguin
e880b18bb1
Rework MutationObserver callback.
...
Previously, MutationObserver callbacks where called using the `jsCallScopeEnd`
mechanism. This was slow and resulted in records split in a way that callers
might not expect. `jsCallScopeEnd` has been removed.
The new approach uses the loop.timeout mechanism, much like a window.setTimeout
and only registers a timeout when events have been handled. It should perform
much better.
Exactly how MutationRecords are supposed to be grouped is still a mystery to me.
This new grouping is still wrong in many cases (according to WPT), but appears
slightly less wrong; I'm pretty hopeful clients don't really have hard-coded
expectations for this though.
Also implement the attributeFilter option of MutationObserver. (Github)
2025-07-07 19:29:10 +08:00
Karl Seguin
74a299eef7
Fix non-tls forward-proxy
2025-07-07 11:03:04 +08:00
Karl Seguin
300428ddfb
Merge pull request #840 from lightpanda-io/xhr_readystatechange
...
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 readystate change event to XHR
2025-07-06 08:59:19 +08:00
Karl Seguin
8a80f0b3dd
Merge pull request #843 from lightpanda-io/empty_anchor_fix
...
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
An empty anchor should return empty strings for its getters
2025-07-04 23:43:10 +08:00
Karl Seguin
fcc74b63d3
correct comment
2025-07-04 23:17:48 +08:00
Karl Seguin
d7155e6662
An empty anchor should return empty strings for its getters
...
document.createElement('a').host or .href or .. should return an empty string.
However, URL.constructor(document.createElement('a')) should fail.
Because HTMLAnchorElement uses URL.constructor, we have the wrong behavior.
This adds a guard for an empty anchor. This might not cover all of the cases
which are valid for an anchor but invalid for a URL.constructor, but it's
the most common.
2025-07-04 19:23:19 +08:00
Karl Seguin
42c3841639
Merge pull request #842 from lightpanda-io/fix_elementFromPoint_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
Rely on js.zig for float->int translation
2025-07-04 19:12:46 +08:00
Karl Seguin
c331713401
set correct state on xhr.abort and send correct events
2025-07-04 19:12:26 +08:00
Karl Seguin
002d9c1747
Merge pull request #841 from lightpanda-io/scroll_events
...
make window.scrollTo triggers scroll and scrollend events
2025-07-04 19:00:28 +08:00
Karl Seguin
2885ceceb1
document use of i32
2025-07-04 18:55:14 +08:00
sjorsdonkers
22a644ba01
rename tls_in_tls to tlsproxy
2025-07-04 10:00:22 +02:00
sjorsdonkers
bab120a75d
secure changes
2025-07-04 10:00:22 +02:00
sjorsdonkers
e881d2f6cf
tls proxy tweaks
2025-07-04 10:00:22 +02:00
Francis Bouvier
e2cc404571
Handle TLS proxy, both for HTTP and HTTPS (tls in tls) endpoints
2025-07-04 10:00:22 +02:00
sjorsdonkers
be71eaae47
TLS connect proxy WIP
2025-07-04 10:00:22 +02:00
Karl Seguin
ed31a452b2
Rely on js.zig for float->int translation
...
Not only does this ensure compatibility with browsers, it doesn't crash when
the value is NaN of Infinity.
2025-07-04 11:34:34 +08:00
Pierre Tachoire
9d1dc97766
remove useless debug log
2025-07-03 09:49:01 -07:00
Pierre Tachoire
b78729f685
test: inject platform to the serveCDP app
2025-07-03 09:49:00 -07:00
Pierre Tachoire
44a76e59f9
run pumpmessageloop in its own loop
2025-07-03 09:49:00 -07:00
Pierre Tachoire
1504e36a68
use comptime test for platform existence
2025-07-03 09:49:00 -07:00
Pierre Tachoire
80348ef190
fix wpt tests with platform requirement
2025-07-03 09:48:59 -07:00
Pierre Tachoire
a3c14748d3
fix unit testing with platform deps requirement
2025-07-03 09:48:59 -07:00
Pierre Tachoire
3c0143af92
add runIdleTasks
2025-07-03 09:48:57 -07:00
Pierre Tachoire
22a93a9c39
add pump message loop calls
2025-07-03 09:47:50 -07:00
Karl Seguin
e8866a6431
Merge pull request #838 from lightpanda-io/improved_js_value_printing
...
Improve JS value printing
2025-07-04 00:30:35 +08:00