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
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
Pierre Tachoire
65102edc98
axtree: remove useless error return
2026-01-15 15:37:44 +01:00
Pierre Tachoire
04eda96416
axtree: reverse writeNode return logic
2026-01-15 15:37:44 +01:00
Pierre Tachoire
f5036bdf5e
axtree: use a simpler union switch
2026-01-15 15:37:44 +01:00
Pierre Tachoire
b6df85da7a
axtree: add improvements
2026-01-15 15:37:43 +01:00
Pierre Tachoire
9775b39a8d
axnode: use absolute urls
2026-01-15 15:37:43 +01:00
Pierre Tachoire
d6d74c5024
first version of AXTree
2026-01-15 15:37:42 +01:00
Pierre Tachoire
e09d15b12a
add more generic HTML types
2026-01-15 15:37:35 +01:00
Karl Seguin
6d33d23935
Merge pull request #1371 from lightpanda-io/reject_non_new_constructor
...
e2e-test / zig build release (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
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
Reject constructor calls without new
2026-01-15 12:06:55 +00:00
Karl Seguin
47760e00f7
Reject constructor calls without new
...
This was previously a fixed bug, but it got lost in the direct_v8 merging.
https://github.com/lightpanda-io/browser/pull/1316
2026-01-15 19:25:43 +08:00
Karl Seguin
72e8421099
Merge pull request #1366 from lightpanda-io/details_are_values
...
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
use js.Value when input can be a value
2026-01-14 23:25:17 +00:00
Karl Seguin
844b0ed457
Merge pull request #1368 from lightpanda-io/dupe_remove_id
...
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
Make removeIds lookup own the key
2026-01-14 11:52:06 +00:00
Karl Seguin
7e37db796f
Make removeIds lookup own the key
...
Virtually all string are page-owned (in the page.arena), but because of the
Small String Optimization we use (string.zig), a string could be stack-allocated
The correct solution is probably to change the key to be a string.String. But
I want to give more thought to memory in general, and strings specifically need
to be thought about. So this is a quick fix for crashing.
2026-01-14 18:35:26 +08:00
Karl Seguin
3e5b506675
Merge pull request #1367 from lightpanda-io/readable_stream_cancel_persist
...
persist the readable stream's cancel callback
2026-01-14 10:20:14 +00:00
Karl Seguin
d356dbfc06
Merge pull request #1365 from lightpanda-io/try_catch_caught
...
Try catch caught
2026-01-14 09:59:19 +00:00
Karl Seguin
f5aee1f4c0
persist the readable stream's cancel callback
2026-01-14 17:58:41 +08:00
Karl Seguin
de4926d87d
fix legacy runner, manual merge
2026-01-14 17:49:27 +08:00
Karl Seguin
56a39e2cc7
Apply tryCatch change to wpt runner
2026-01-14 17:34:08 +08:00
Karl Seguin
8e14dacc32
Improve ergonomics of try catch (and Function's tryCall)
...
It now returns a Caught struct which contains all information. The Caught struct
can be logged directly, providing more consistent logs for caught errors.
2026-01-14 17:34:02 +08:00
Karl Seguin
05102c673a
use js.Value when input can be a value
...
We previously treated v8::Object and v8::Values interchangeably, and would just
ptrCast one to the other. So, if an API was defined with a js.Object but was
given a non-object value, e.g. 9001, it would still work.
This has since been tightened. If an API takes a js.Object, than the v8 value
must be an object. Passing a non-object will result in a InvalidArgument error.
CustomEvent.detail and PerformanceMark.detail can both be any value, so the
apis/fields have been updated from js.Object -> js.Value.
2026-01-14 15:38:34 +08:00
Karl Seguin
db2ecfe159
Merge pull request #1307 from lightpanda-io/direct_v8
...
Direct v8
2026-01-14 07:27:42 +00:00
Karl Seguin
640cb0d489
Merge pull request #1364 from lightpanda-io/observer_try_catch
...
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 trycatch to Intersection and Performance Observers
2026-01-14 02:10:56 +00:00
Karl Seguin
223a6170d5
Fix use-after free
...
On CDP.BrowserContext.deinit, clear the isolated world ExecutionContext before
terminating the session. This is important as the isolated_world list is
allocated from the session.arena.
Also, semi-revert 63f1c85964 . Before all this
we were running microtasks on ExecutionWorld.removeContext. That didn't seem
right (and I thought it was the original source of the bug). But, for the "real"
Page context, this is critical, since Microtasks can reference the Page object.
Since microTasks are isolation-level, it's possible for a microtasks for Page1
to execute after Page1 goes away (if we create a new page, Page2). This re-adds
the microtask "draining", but only for the Page (i.e. in Page.deinit).
2026-01-14 09:37:10 +08:00
Karl Seguin
63f1c85964
Remove unnecessary microtask run.
...
This crashes linux in releasesafe without an embedded snapshot. Not sure why,
but it shouldn't be necessary. This was added back when we were executing
microtasks on a schedule, rather than manually at explicit points.
2026-01-13 18:09:58 +08:00
Karl Seguin
c252c8e870
update v8 dep version
2026-01-13 16:12:28 +08:00
Karl Seguin
801c019150
update v8
2026-01-13 16:07:49 +08:00
Karl Seguin
d77a6620f3
merge main
2026-01-13 13:05:16 +08:00
Karl Seguin
4e4a615df8
Move Env's FunctionTemplate from Global -> Eternal
...
(we'll move more to Eternal's, this is just a first teaser)
2026-01-13 12:58:31 +08:00
Karl Seguin
1b0ea44519
merge main
2026-01-13 12:58:31 +08:00
Karl Seguin
86f4ea108d
Store snapshot templates in isolate, not context.
...
This lets us load the isolate without having to create a temp/dummy context
just to get the templates.
Call ContextDisposedNotification when a context is removed. Supposedly this can
help/hint to the isolate about memory management.
2026-01-13 12:58:30 +08:00
Karl Seguin
2322cb9b83
remove unused code, remove references to v8::Persistent
2026-01-13 12:58:30 +08:00
Karl Seguin
4720268426
Don't dupe StartupData, use what v8 gives us directly.
2026-01-13 12:58:30 +08:00
Karl Seguin
b4f134bff6
Prefer js.Value over js.Object in History/Navigation
...
Persist function callback in PerformanceObserver
2026-01-13 12:58:30 +08:00
Karl Seguin
f2a9125b99
js.v8 is not equal to js.v8.c
...
This means the C funtions/types now sit in the root of v8.
2026-01-13 12:58:30 +08:00
Karl Seguin
8438b7d561
remove remaining direct v8 references
2026-01-13 12:58:30 +08:00
Karl Seguin
18c846757b
migrate almost all types
2026-01-13 12:58:28 +08:00