Karl Seguin
47c14db54c
Merge pull request #577 from lightpanda-io/unified_intrusive_events
...
Unify the Zig and JS events using an intrusive node.
2025-05-01 09:50:19 +08:00
Karl Seguin
f0e0650244
Merge pull request #568 from lightpanda-io/notifications
...
Introduce more general notification capabilities
2025-05-01 09:50:06 +08:00
Pierre Tachoire
d2a68e62e9
cdp: add attributes to the node's writer
2025-04-30 15:56:06 +02:00
Pierre Tachoire
09fbbc1e17
netsurf: node's attributes can be null
2025-04-30 15:55:34 +02:00
Karl Seguin
8971822247
Change the Linux cancel implementation to match MacOS'
...
cancel on linux was a "real" cancel, but the implementation was unsafe. It took
whatever `id` it was given and @ptrFromInt'd it. This is problematic since the
`id` is user-supplied with virtually no validation.
Using the existing MacOS canceled lookup seems both easier and safer than trying
to validate the cancellation id.
2025-04-30 21:41:52 +08:00
Karl Seguin
1f0d1920bf
Merge branch 'main' into unified_intrusive_events
2025-04-30 21:32:34 +08:00
Karl Seguin
cb7c8502b0
add console web api
2025-04-30 20:50:31 +08:00
Karl Seguin
27d1f79839
Merge pull request #583 from lightpanda-io/share-state-and-global-with-the-isolated
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / 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
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
Share underlying DOM global Window with the isolated World
2025-04-30 19:55:14 +08:00
sjorsdonkers
83ef21e699
page handlescope clarification
2025-04-30 12:01:56 +02:00
Karl Seguin
6c592669da
Introduce more general notification capabilities
...
Replaces the existing, very specialized Notification with something more
general.
Currently, the existing page_navigate and page_navigated have been migrated.
Telemetry's page navigation event now also hooks into these events to generate
the telemetry record.
2025-04-30 17:33:51 +08:00
Pierre Tachoire
88f7687646
cdp: dispatch DOM.setChildNodes on performSearch
2025-04-30 09:19:59 +02:00
Pierre Tachoire
f12a527ae3
cdp: add ParentId to Node.Writer
2025-04-30 09:01:56 +02:00
sjorsdonkers
7dde0be043
share sessionstate and underlying DOM global with the isolated
2025-04-29 23:17:39 +02:00
Pierre Tachoire
2910f4f527
Merge pull request #581 from lightpanda-io/svgelement_dummy2
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / 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
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
Svgelement dummy2
2025-04-29 18:50:16 +02:00
Pierre Tachoire
93c0df33c2
Merge pull request #578 from lightpanda-io/scope_tightening
...
Reorganize v8 contexts and scope
2025-04-29 18:46:31 +02:00
sjorsdonkers
7d9f6eef27
instanceof svgelement test
2025-04-29 18:11:47 +02:00
sjorsdonkers
7d742d62b8
SVGElement dummy
2025-04-29 18:11:47 +02:00
sjorsdonkers
4db80cb9e7
Adopt state into the isolated world
2025-04-29 18:10:55 +02:00
Pierre Tachoire
addfbcb68f
Merge pull request #582 from lightpanda-io/remove_main_shell
...
Remove unused main_shell
2025-04-29 17:31:42 +02:00
sjorsdonkers
fac46d9d0b
Redo resolveNode
2025-04-29 16:56:50 +02:00
sjorsdonkers
e38ff08de2
Remove unused main_shell
2025-04-29 14:43:14 +02:00
sjorsdonkers
c31e2d91dd
Remove global scope
2025-04-29 11:59:14 +02:00
Karl Seguin
7309fec51d
Fully fake contextCreated
...
emit contextCreated when it's needed, not when it actually happens.
I thought we could make this sync-up, but we'd need to create 3 contexts to
satisfy both puppeteer and chromedp. So rather than having it partially
driven by notifications from Browser, I rather just fake it all for now.
2025-04-29 13:29:42 +08:00
Karl Seguin
2e01fa738a
Make undefined->null safer, and apply the same trick to BrowserContext
2025-04-29 11:28:43 +08:00
Karl Seguin
9044925f32
emit context created on createTarget event for chromedp
2025-04-29 10:58:23 +08:00
Karl Seguin
2d5ff8252c
Reorganize v8 contexts and scope
...
- Pages within the same session have proper isolation
- they have their own window
- they have their own SessionState
- they have their own v8.Context
- Move inspector to CDP browser context
- Browser now knows nothing about the inspector
- Use notification to emit a context-created message
- This is still a bit hacky, but again, it decouples browser from CDP
2025-04-29 10:22:08 +08:00
Karl Seguin
072110481f
Unify the Zig and JS events using an intrusive node.
...
The approach borrows heavily from Zig's new LinkedList API.
The main benefit is that it unifies how event callbacks are done. When the
Page.windowClick event was added, the Event structure was changed to a union,
supporting a distinct Zig and JS event.
This new approach more or less treats everything like a Zig event. A JS event
is just a Zig struct that has a Env.Callback which it can invoke in its handle
method.
The intrusive nature of the EventNode means that what used to be 1 or 2
allocations is now 0 or 1.
It also has the benefit of making netsurf completely unaware of Env.Callbacks.
2025-04-26 22:22:34 +08:00
Pierre Tachoire
0fb0532875
Merge pull request #562 from lightpanda-io/mutation_observer
...
e2e-test / zig build release (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / 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
Improve MutationObserver
2025-04-25 10:53:48 +02:00
Pierre Tachoire
d8dd94c679
Merge pull request #569 from lightpanda-io/make_cdp_less_generic
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / 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
Make CDP less generic.
2025-04-25 09:50:17 +02:00
Karl Seguin
f3d7736acf
Update src/browser/dom/mutation_observer.zig
...
Co-authored-by: Pierre Tachoire <pierre@lightpanda.io >
2025-04-25 15:48:46 +08:00
Pierre Tachoire
8fbf5590f8
Merge pull request #573 from lightpanda-io/typed_arrays
...
add support for mapping integer typed arrays into zig slices
2025-04-25 09:30:44 +02:00
Pierre Tachoire
b8ac93045e
Merge pull request #574 from lightpanda-io/enable_icu
...
initialize ICU
2025-04-25 09:29:34 +02:00
Karl Seguin
89fea9b4df
initialize ICU
...
This makes functions like new Intl.DateTimeFormat() not crash.
2025-04-25 13:15:38 +08:00
Karl Seguin
a3323dc8a7
add support for mapping integer typed arrays into zig slices
2025-04-25 13:01:43 +08:00
Karl Seguin
ba0505c13c
Merge pull request #571 from lightpanda-io/remove-log.zig
...
Remove log.zig
2025-04-25 08:47:30 +08:00
Karl Seguin
dd8432e8fd
Merge pull request #572 from lightpanda-io/framenavigated-order
...
cdp: dispatch Page.frameNavigated before DOM.documentUpdated
2025-04-25 08:47:07 +08:00
Pierre Tachoire
11c7f57745
cdp: dispatch Page.frameNavigated before DOM.documentUpdated
...
chromedp client expects to receive Page.frameNavigated before
DOM.documentUpdated.
2025-04-24 18:28:43 +02:00
sjorsdonkers
89a3fac316
log.zig does not appear to be used
2025-04-24 15:17:16 +02:00
Karl Seguin
b0b3e92600
remove Browser.EnvType
2025-04-24 19:48:27 +08:00
Karl Seguin
1fca035cfe
Make CDP less generic.
...
It's still generic over the client - we need to assert messages written to and
be able to send specific commands, but it's no longer generic over Browser/
Session/Page/etc..
2025-04-24 18:06:55 +08:00
Karl Seguin
4c89bb0e0a
Improve MutationObserver
...
- Fix get_removedNodes (it was returning addedNodes)
- get_removedNodes and get addedNodes now return references
- used enum for dispatching and clean up dispatching in general
- Remove MutationRecords and simply return an array
- this allows the returned records to be iterable (as they should be)
- jsruntime ZigToJs will now map a Zig array to a JS array
-Rely on default initialize of NodeList
-Batch observed records
- Callback only executed when call_depth == 0
- Fixes crashes when a MutationObserver callback mutated the nodes being
observes.
- Fixes some WPT issues, but Netsurf's mutationEventRelatedNode does not
appear to be to spec, so most tests fail.
- Allow zig methods to execute arbitrary code when call_depth == 0
- This is a preview of how I hope to make XHR not crash if the CDP session
ends while there's still network activity
2025-04-24 17:40:37 +08:00
Pierre Tachoire
332508f563
Merge pull request #567 from lightpanda-io/kind_before_deinit
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / 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
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
access the executor kind before it becomes invalid
2025-04-24 10:43:37 +02:00
Karl Seguin
158d11e93c
access the executor kind before it becomes invalid
2025-04-24 16:36:04 +08:00
Pierre Tachoire
18a49601a0
Merge pull request #566 from lightpanda-io/null_prefix_namespace
...
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / 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
pass null namespace/prefix to libdom
2025-04-24 09:27:03 +02:00
Karl Seguin
b971b4754f
update libdom to latest version, fixing null ptr usage and stack overflow
2025-04-24 15:18:22 +08:00
Pierre Tachoire
cfef22257e
Merge pull request #560 from lightpanda-io/remove_arena_frees
...
Remove unnecessary cleanup when we know we have an arena
2025-04-24 09:04:46 +02:00
Karl Seguin
3153d8ee8c
pass null namespace/prefix to libdom
2025-04-24 11:52:01 +08:00
sjorsdonkers
b2a975fe4a
remove executionContextCreated
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / 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
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
2025-04-23 17:00:22 +02:00
sjorsdonkers
b2ba505954
Check if it works with v8 97bcfb6
2025-04-23 17:00:22 +02:00
sjorsdonkers
a1b673175a
errdefer in the right scope
2025-04-23 17:00:22 +02:00