Karl Seguin
393227a786
Merge pull request #1373 from lightpanda-io/explicit_globals
...
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
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (push) Has been cancelled
Explicit globals
2026-01-19 07:26:04 +08:00
Karl Seguin
c5870353e3
update v8 dep
2026-01-19 07:17:45 +08:00
Karl Seguin
7c9941c629
Make Promise, PromiseResolver and Module have explicit globals.
...
See bb06900b6f84abaccc7ecfd386af1a9dc0029c50 for an explanation.
2026-01-19 07:15:48 +08:00
Karl Seguin
c7dbb6792d
Make js.Object and js.Value have explicit global
...
See: bb06900b6f84abaccc7ecfd386af1a9dc0029c50 for details on this change.
2026-01-19 07:15:48 +08:00
Karl Seguin
728b2b7089
update v8 dep
2026-01-19 07:15:48 +08:00
Karl Seguin
5def997bed
Make Global Function explicit.
...
This is the first in a series of changes to make globals explicit. The ultimate
goal of having explicit Globals is to move away from the global HandleScope and
to explicit HandleScopes.
Currently, we treat globals and locals interchangeably. In fact, for Global ->
Local, we just ptrCast. This works because we have 1 global HandleScope, which
effectively disables V8's GC and thus nothing ever gets moved.
If we're going to introduce explicit HandleScopes, then we need to first have
correct Globals. Specifically, when we want to act on the global, we need to
get the local value, and that will eventually mean making sure there's a
HandleScope.
While adding explicit globals, we're keeping the global HandleScope so that we
can minimize the change. So, given that we still have the global HandleScope
the change is largely two things:
1 - js.Function.persit() returns a js.Function.Global. Types that persist global
functions must be updated to js.Function.Global.
2 - To turn js.Function.Global -> js.Function, we need to call .local() on it.
The bridge has been updated to support js.Function.Global for both input and
output parameters. Thus, window.setOnLoad can now directly take a
js.Function.Global, and window.getOnLoad can directly return that
js.Function.Global.
2026-01-19 07:15:48 +08:00
Karl Seguin
a30c65966b
Merge pull request #1380 from lightpanda-io/static_accessor_fix
...
Fix static accessors
2026-01-19 07:15:09 +08:00
Karl Seguin
cd67ed8a27
Fix static accessors
...
These are called without a self from v8, and should match that in Zig code.
2026-01-19 07:08:58 +08:00
Pierre Tachoire
5400dc783e
Merge pull request #1379 from lightpanda-io/textarea_setDefaultValue
...
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
Add TextArea.defaultValue setter
2026-01-18 17:12:49 +01:00
Pierre Tachoire
2880e9867d
Merge pull request #1378 from lightpanda-io/performance_observer_use_after_free
...
Fix potential use-after-free with PerformanceObserver.
2026-01-18 17:03:36 +01:00
Karl Seguin
58f9469a6f
Add TextArea.defaultValue setter
2026-01-18 07:49:58 +08:00
Karl Seguin
30d052db99
Fix potential use-after-free with PerformanceObserver.
...
TL;DR - use page.arena instead of page.call_arena
This probably comes from copying the implementation of MutationObserver and/or
IntersectionObserver. But those dispatches are different in that they directly
dispatch a slice (e.g. of MutationRecords) which gets mapped to a v8::Array when
doing the callback. The MutationRecords exist on the heap, not in
_pending_records, so the call_arena is fine.
PerformanceObserver returns an Zig object, not a slice. Therefore it gets mapped
to a v8::Object which references the Zig object. The state of that object, the
_entries list, has to exist for the lifetime of that object, not the call_arena.
2026-01-17 15:57:43 +08:00
Karl Seguin
744311f107
Merge pull request #1375 from lightpanda-io/nikneym/audio-constructor
...
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
e2e-test / zig build release (push) Has been cancelled
e2e-integration-test / zig build release (push) Has been cancelled
e2e-integration-test / demo-integration-scripts (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
e2e-test / browser fetch (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Add `Audio` constructor
2026-01-16 23:25:56 +00:00
Karl Seguin
656674a477
Merge pull request #1356 from lightpanda-io/nikneym/subtle-crypto
...
Initial support for `SubtleCrypto` API
2026-01-16 23:21:35 +00:00
Karl Seguin
0e4aa38aaa
Merge pull request #1312 from lightpanda-io/stagehand-zigdom
...
Stagehand zigdom
2026-01-16 23:10:19 +00:00
Pierre Tachoire
fdc267fa1f
Merge pull request #1308 from lightpanda-io/axtree-backport
...
cdp: add AXTree
2026-01-16 17:56:40 +01:00
Pierre Tachoire
4325b80d64
axnode: small fixes
2026-01-16 17:30:43 +01:00
Pierre Tachoire
fbe07836f9
cdp: return a valide response for Page.getFrameTree on STARTUP
...
Stagehand expects a valid response for this specific command.
Add also `Target.activateTarget`
2026-01-16 16:27:55 +01:00
Halil Durak
304681bd21
add simplified setAttributeNS and getAttributeNS
...
This ignores namespaces for now, we have to come up with a solution if it becomes a necessity.
2026-01-16 18:13:43 +03:00
Halil Durak
05a01bb7c4
add Audio constructor
2026-01-16 17:38:54 +03:00
Pierre Tachoire
cbc028b040
cdp: accept multiple attachToTarget calls
2026-01-16 09:10:41 +01:00
Pierre Tachoire
2074c0149f
axnode: add aria-labelledby support
2026-01-16 09:01:39 +01:00
Pierre Tachoire
61ed97dd45
axnode: use writeString for content's name
2026-01-16 09:00:57 +01:00
Pierre Tachoire
a358c46b9f
axnode: ignore script and style children
2026-01-16 08:28:16 +01:00
Pierre Tachoire
50c1e2472b
axnode: encode json string into stripWhitespaces
2026-01-16 08:27:43 +01:00
Halil Durak
ea2fc76d3c
don't @panic!
2026-01-15 20:40:53 +03:00
Halil Durak
58634b54ec
add tests for implemented bits of SubtleCrypto
2026-01-15 19:10:02 +03:00
Halil Durak
4b4bc1a4d3
don't allocate new SubtleCrypto for each access
2026-01-15 19:10:01 +03:00
Halil Durak
0549e07a90
implement deriveBits for X25519
2026-01-15 19:10:01 +03:00
Halil Durak
42666b1d30
add bindings needed for X25519 deriveBits implementation
2026-01-15 19:10:01 +03:00
Halil Durak
0a8be77233
create public/private key objects out of raw keys
...
This is needed for `deriveKey()` and `deriveBits()`.
2026-01-15 19:10:01 +03:00
Halil Durak
b26fb0e6c7
add more libcrypto bindings
2026-01-15 19:10:00 +03:00
Halil Durak
1699a92822
support x25519 init
...
Created a mess in previous commit.
2026-01-15 19:10:00 +03:00
Halil Durak
7ae3e8cb47
code cleanup, support keypairs, init support for X25519
2026-01-15 19:10:00 +03:00
Halil Durak
fd26ae4b5b
parse keyUsages properly
2026-01-15 19:10:00 +03:00
Halil Durak
9945a5f9cc
implement sign and verify for HMAC
2026-01-15 19:09:59 +03:00
Halil Durak
d5e9ae23ef
ground zero SubtleCrypto
2026-01-15 19:09:59 +03:00
Pierre Tachoire
d50e056114
axnode: ignore non-html tags
2026-01-15 16:42:40 +01:00
Pierre Tachoire
d7d956d966
axnode: fix invalid enum
2026-01-15 15:40:52 +01:00
Pierre Tachoire
bd3966bf8d
axnode: add focus on webroot
2026-01-15 15:37:49 +01:00
Pierre Tachoire
74578ba274
axnode: implement list marker
2026-01-15 15:37:49 +01:00
Pierre Tachoire
cb89742d2f
axnode: add li level
2026-01-15 15:37:48 +01:00
Pierre Tachoire
6d0f991c17
axnode: add hr properties
2026-01-15 15:37:48 +01:00
Pierre Tachoire
d126d2a0f9
axnode: ignore hidden input
2026-01-15 15:37:47 +01:00
Pierre Tachoire
b51cca5617
axnode: use select.getValue
2026-01-15 15:37:47 +01:00
Pierre Tachoire
dc54dad290
axnode: add more attributes for input elements
2026-01-15 15:37:47 +01:00
Pierre Tachoire
7d6ab5a708
axnode: force manual formatting in switches
...
In order to uses less space and improve the readability.
zig fmt allows only 1 switch case per line or all in one line.
When having a lot of conditions, splitting the line is useful.
2026-01-15 15:37:46 +01:00
Pierre Tachoire
07acb9308d
axnode: fallback button name to their tagname
2026-01-15 15:37:46 +01:00
Pierre Tachoire
ef315a46bc
axnode: don't extract all text content as name
...
ignore name extraction for more elements
2026-01-15 15:37:45 +01:00
Pierre Tachoire
eb45bd051c
axtree: simpler AXValue
2026-01-15 15:37:45 +01:00