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
Adrià Arrufat
dea492fd64
Unify dump flags into --dump <format>
2026-02-17 00:42:06 +09:00
Karl Seguin
00ab7f04fa
handle undefined symbol in debug log
2026-02-16 23:41:04 +08:00
Adrià Arrufat
d3ba714aba
Rename --dump flag to --html
...
--dump is still supported but deprecated
2026-02-17 00:35:15 +09:00
Adrià Arrufat
748b37f1d6
Rename --dump-markdown to --markdown
2026-02-17 00:21:10 +09: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
Adrià Arrufat
3c14dbe382
Trim trailing whitespace in pre blocks in Markdown
2026-02-16 21:34:46 +09:00
Adrià Arrufat
b49b2af11f
Stop escaping periods in markdown
2026-02-16 21:29:57 +09:00
Adrià Arrufat
425a36aa51
Add support for table rendering in Markdown
2026-02-16 21:24:24 +09:00
Adrià Arrufat
ec0b9de713
Add support for ordered lists in Markdown
2026-02-16 21:04:06 +09:00
Adrià Arrufat
9f13b14f6d
Add support strikethrough and task lists in Markdown
2026-02-16 20:55:51 +09: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
Adrià Arrufat
be4e6e5ba5
Escape special characters and handle whitespace in Markdown
2026-02-16 00:10:00 +09:00
Adrià Arrufat
1b5efea6eb
Add --dump-markdown flag
...
Add a new module to handle HTML-to-Markdown conversion and
integrate it into the fetch command via a new CLI flag.
2026-02-15 23:18:01 +09: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