Halil Durak
95920bf207
ArrayBufferRef(...).Global: consistent, persisted typed arrays
2026-02-18 21:43:19 +03:00
Halil Durak
2426abd17a
introduce persisted typed arrays
2026-02-17 16:35:42 +03:00
Pierre Tachoire
db4a97743f
Merge pull request #1562 from lightpanda-io/robots-cdp-failure
...
dispatch .page_navigated event on page error callback and create HTML page
2026-02-17 14:17:44 +01:00
Pierre Tachoire
7ca98ed344
Merge pull request #1568 from lightpanda-io/invalid_cookie_samesite
...
protect against long invalid samesite cookie values
2026-02-17 14:10:24 +01:00
Karl Seguin
7e097482bc
protect against long invalid samesite cookie values
2026-02-17 19:09:29 +08:00
Pierre Tachoire
df1b151587
Merge pull request #1567 from lightpanda-io/http_linefeed_only_ending
...
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 using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Support HTTP headers which are \n terminated (as opposed to \r\n).
2026-02-17 12:09:05 +01:00
Karl Seguin
45eb59a5aa
Support HTTP headers which are \n terminated (as opposed to \r\n).
...
Looks like curl will accept these as valid headers, and won't normalize the
header, so we have to deal with either a 2-byte or 1-byte terminated header
2026-02-17 18:55:50 +08:00
Karl Seguin
687c17bbe2
Merge pull request #1557 from lightpanda-io/internal_field_caching
...
Add internal field caching (for window.document and window.console)
2026-02-17 18:25:51 +08:00
Pierre Tachoire
7505aec706
generate always an HTML on pageDoneCallback
...
Add also image support
2026-02-17 10:31:47 +01:00
Pierre Tachoire
c7b414492d
add image content type detection into Mime
2026-02-17 10:30:47 +01:00
Pierre Tachoire
14b0095822
move page error HTML creation into pageDoneCallback
...
Now pageErrCllaback call pageDoneCallback to finalize the page.
2026-02-17 09:47:45 +01:00
Karl Seguin
a1256b46c8
Merge pull request #1553 from lightpanda-io/nikneym/image-data
...
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 using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Basic support for `ImageData`
2026-02-17 08:57:31 +08:00
Halil Durak
094270dff7
prefer snake case in enums
2026-02-17 02:48:30 +03:00
Halil Durak
d4e24dabc2
internal -> handle
2026-02-17 02:47:51 +03:00
Halil Durak
842df0d112
extern struct -> struct
2026-02-17 02:46:36 +03:00
Halil Durak
cfa9427d7c
ImageData: make sure that width and height are not 0
2026-02-17 02:18:43 +03:00
Halil Durak
3c01e24f02
ImageData: remove unnecessary comments
2026-02-17 02:18:13 +03:00
Karl Seguin
22dbf63ff9
Merge pull request #1563 from lightpanda-io/wp/mrdimidium/fix-sighandler-rc
...
Fix race condition in sighandler
2026-02-17 07:08:39 +08:00
Karl Seguin
814f7394a0
Merge pull request #1556 from lightpanda-io/robots-perf
...
`robots.txt` performance improvements
2026-02-17 06:58:28 +08:00
Halil Durak
9a4cebaa1b
ImageData: prefer new typed array type
2026-02-17 01:45:40 +03:00
Halil Durak
c30207ac63
introduce js.createTypedArray
...
A new way to create typed arrays that allows using the same memory.
2026-02-17 01:45:19 +03:00
Nikolay Govorov
77afbddb91
Fix race condition in sighandler
2026-02-16 21:28:29 +00:00
Nikolay Govorov
18feeabe15
Merge pull request #1561 from lightpanda-io/wp/mrdimidium/drop-logs-interceptors
...
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 using v8 in debug mode (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
Remove logs interceptors feature
2026-02-16 17:45:58 +00:00
Pierre Tachoire
c3811d3a14
Merge pull request #1559 from lightpanda-io/handle_undefined_symbol
...
handle undefined symbol in debug log
2026-02-16 18:32:50 +01:00
Pierre Tachoire
f20d6b551d
Merge pull request #1558 from lightpanda-io/empty_array_buffer
...
don't try to create empty backing store data
2026-02-16 18:31:51 +01:00
Pierre Tachoire
311bcadacb
create HTML page error on page error callback.
2026-02-16 18:17:07 +01:00
Pierre Tachoire
2189c8cd82
dispatch .page_navigated event on page error callback
...
When a CDP client navigates to a page and the page generates an error,
it blocks waiting for the .page_navigated event.
It currently happens w/ robots.txt denied page.
Example: https://httpbin.io/deny
2026-02-16 17:46:37 +01:00
Nikolay Govorov
6553bb8147
Remove los interceptors feature
2026-02-16 15:48:18 +00:00
Karl Seguin
00ab7f04fa
handle undefined symbol in debug log
2026-02-16 23:41:04 +08:00
Karl Seguin
b83b188aff
don't try to create empty backing store data
2026-02-16 23:18:25 +08:00
Karl Seguin
cfefa32603
Merge pull request #1555 from lightpanda-io/link_crossorigin
...
add link crossOrigin accessor
2026-02-16 22:56:50 +08:00
Karl Seguin
85d8db3ef9
Merge pull request #1554 from lightpanda-io/crypto_digest
...
Add SubtleCrypto.digest (used in nytimes)
2026-02-16 22:56:34 +08:00
Karl Seguin
01e83b45b5
Add internal field caching (for window.document and window.console)
...
This expands the caching capabilities which were first added in
https://github.com/lightpanda-io/browser/pull/1552
Internal field caching requires up-front memory, but is faster. It is currently
enabled for window.document and window.console - two very frequently accessed
values.
Implementations must correctly provide an internal field index, with
consideration for index 0 which may or may not be reserved for the type (it
depends on the type). comptime checks run to make sure this is correct, but it
would probably be nice to at least let them be declared in any order.
This commit also removes the special handling for loading the window. This used
to rely on the window not having any internal fields, but it now has them for
caching so it can't be detected that way. Instead, the window is loaded like any
other object. (But now we have to special case the initial window TAO creation
to make it behave like any other Zig instance).
2026-02-16 19:16:39 +08:00
Halil Durak
f80566e0cb
ImageData: add a type entry in bridge.zig
2026-02-16 11:21:33 +03:00
Karl Seguin
42afacf0af
add link crossOrigin accessor
2026-02-16 08:32:42 +08:00
Karl Seguin
2e61e7e682
Add SubtleCrypto.digest (used in nytimes)
2026-02-16 08:10:06 +08:00
Karl Seguin
3de9267ea7
Merge pull request #1552 from lightpanda-io/v8_private_cache
...
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 using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Add v8 private object cache + Node.childNodes caching
2026-02-16 06:58:14 +08:00
Karl Seguin
8c99d4fcd2
Merge pull request #1547 from lightpanda-io/more_events
...
add FocusEvent, TextEvent and WheelEvent
2026-02-16 06:58:03 +08:00
Halil Durak
6554f80fad
ImageData: constructor can throw DOM exceptions
2026-02-15 16:59:02 +03:00
Halil Durak
2e8a9f809e
ImageData: add test
2026-02-15 16:52:50 +03:00
Halil Durak
dc66032720
ImageData: initial support
...
We're missing fancy HDR range currently, though, most websites stick to sRGB.
2026-02-15 16:52:35 +03:00
Karl Seguin
c9433782d8
Merge pull request #1551 from lightpanda-io/nikneym/u8-clamped-array
...
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 using v8 in debug mode (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
`simpleZigValueToJs`: support `Uint8ClampedArray`
2026-02-15 19:55:11 +08:00
Karl Seguin
fef5586ff5
add FocusEvent, TextEvent and WheelEvent
2026-02-15 19:45:00 +08:00
Pierre Tachoire
1f4a2fd654
Merge pull request #1549 from lightpanda-io/script_header_assertion
...
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 using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Add more granular assertions
2026-02-15 11:52:26 +01:00
Pierre Tachoire
8243385af6
Merge pull request #1546 from lightpanda-io/document_createEvent
...
add more types to document.createEvent
2026-02-15 11:51:13 +01:00
Halil Durak
26ce9b2d4a
Uint8ClampedArray: implement .copy variant
2026-02-15 12:12:45 +03:00
Halil Durak
119f3169e2
Uint8ClampedArray: update comment + change enum literals
...
I feel `ref` and `copy` is on-point on what's being actually happening.
2026-02-15 12:11:44 +03:00
Karl Seguin
16bd22ee01
improve comments
2026-02-15 17:05:37 +08:00
Karl Seguin
f4a5f73ab2
Add v8 private object cache + Node.childNodes caching
...
Very simply, this PR ensures that:
div.childNodes === div.childNodes
Previously, each invocation of childNodes would return a distinct object. Not
just inefficient, but incorrect.
Where this gets more complicated is the how.
The simple way to do this would be to have an optional `_child_nodes` field in
Node. When it's called the first time, we load and return it and, on subsequent
calls we can return it from the field directly.
But we generally avoid this pattern for data that we don't expect to be called
often relative to the number of instances. A page with 20K nodes _might_ see
.childNodes called on 1% of those, so storing a pointer in Nodes which isn't
going to be used isn't particularly memory efficient.
Instead, we have (historically) opted to store this in a page-level map/lookup.
This is used extensively for various element properties, e.g. the page
_element_class_lists lookup.
I recently abandoned work on v8 property caching
(https://github.com/lightpanda-io/browser/pull/1511 ). But then I looked into the
performance on a specific website with _a lot_ of DOMRect creation and I started
to think about both caching and pure-v8 DOM objects. So this PR became a
two-birds with one stone kind of deal. It re-introduces caching as a means to
solve the childNodes correctness. This uses 1 specific type of caching mechanism,
hooking into a v8::object's Private data map, but the code should be easily
extendable to support a faster (but less memory efficient, depending on the use
case) option: internal fields.
2026-02-15 11:34:01 +08:00
Karl Seguin
e61a4564ea
Merge pull request #1545 from lightpanda-io/node_list_index
...
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 using v8 in debug mode (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / 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
NodeList index fix + Node.childNode fix
2026-02-15 09:32:28 +08:00