Pierre Tachoire
f04030904e
cdp: fix tests for setchildnodes
2025-05-02 15:55:49 +02:00
Pierre Tachoire
8b9084cb73
cdp: dispatch the correct dom hierarchy wit setChildNodes
2025-05-01 19:42:04 +02:00
Pierre Tachoire
1146453dc2
cdp: add session to setChildNodes event
2025-05-01 16:51:02 +02: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
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
sjorsdonkers
4db80cb9e7
Adopt state into the isolated world
2025-04-29 18:10:55 +02:00
sjorsdonkers
fac46d9d0b
Redo resolveNode
2025-04-29 16:56:50 +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
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
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
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
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
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
d666de07a7
test scaffolding
2025-04-23 17:00:22 +02:00
sjorsdonkers
64508cec61
Executor World kind
2025-04-23 17:00:22 +02:00
sjorsdonkers
e0bcb625c2
browsercontext arena
2025-04-23 17:00:22 +02:00
sjorsdonkers
39124d2878
text fix
2025-04-23 17:00:22 +02:00
sjorsdonkers
9ae4d66194
page cleanup
2025-04-23 17:00:22 +02:00
sjorsdonkers
09850d7500
Fix executor used in resolveNode
2025-04-23 17:00:22 +02:00
sjorsdonkers
8897d9179c
isolated world
2025-04-23 17:00:22 +02:00
Karl Seguin
2d1b9d64bd
Remove unnecessary cleanup when we know we have an arena
...
Change a few old alloc+memcpy to dupe
Some other smaller cleanups.
2025-04-23 17:52:13 +08:00
sjorsdonkers
a698ff8309
describeNode feedback
2025-04-22 13:49:01 +02:00
sjorsdonkers
2ac63b6985
describeNode
2025-04-22 13:49:00 +02:00
Karl Seguin
3134ff81f4
JS clicks and MouseInput clicks trigger page navigation
2025-04-18 16:24:04 +08:00
Karl Seguin
b8d7744563
replace zig-js-runtime
2025-04-15 15:18:04 +08:00
Karl Seguin
3fc7ffadbf
rename ts => timestamp, ctx => notify_ctx
2025-04-10 18:27:14 +08:00
Karl Seguin
30fd358286
improve playwright pafe lifecycle message compatibility
2025-04-10 16:07:31 +08:00
Karl Seguin
71c3d484a9
Communicate page navigation state via notifications
...
In order to support click handling on anchors from JavaScript, we need some hook
from the page/session to the CDP instance. This first phase adds notifications
in page.navigate, as well as a primitive notification hook to the session.
CDP's existing Page.navigate uses this new notifiation system.
2025-04-10 14:25:19 +08:00
Pierre Tachoire
66bac32e33
Merge pull request #519 from lightpanda-io/url
...
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
Add URL struct
2025-04-09 16:43:44 +02:00
Pierre Tachoire
bc1a83d04a
Update src/cdp/domains/dom.zig
2025-04-09 14:46:53 +02:00
sjorsdonkers
32d9fc0d32
Pass objectGroup as groupName
2025-04-09 13:40:00 +02:00
Karl Seguin
be75b5b237
Add URL struct
...
Combine uri + rawuri into single struct.
Try to improve ownership around URIs and URI-like things.
- cookie & request can take *const std.Uri
(TODO: make them aware of the new URL struct?)
- Location (web api) should own its URL (web api URL)
- Window should own its Location
Most of these changes result in (a) a cleaner Page and (b) not having to carry
around 2 nullable objects (URI and rawuri).
2025-04-09 18:19:07 +08:00
sjorsdonkers
3a7da6665f
unittest scaffolding
2025-04-09 11:33:44 +02:00
sjorsdonkers
2f47e04de7
Use findOrAddValue for precise JsValue
2025-04-09 11:33:41 +02:00
sjorsdonkers
7dc3add5fd
reolveNode WIP
2025-04-09 11:32:23 +02:00
Karl Seguin
f38a0d2d67
Remove BrowserContext URL
...
Add BrowserContext.getURL which gets the URL from the session.page.
2025-04-08 22:51:17 +08:00
Karl Seguin
b76875bf5d
use netsurf's mousevent
2025-04-08 22:43:53 +08:00
Karl Seguin
0253de80de
Add a dumb renderer to get coordinates
...
FlatRenderer positions items on a single row, giving each a height and width of
1.
Added getBoundingClientRect to the DOMelement which, when requested for the
first time, will place the item in with the renderer.
The goal here is to give elements a fixed position and to make it easy to map
x,y coordinates onto an element. This should work, at least with puppeteer,
since it first requests the boundingClientRect before issuing a click.
2025-04-08 22:43:53 +08:00
Karl Seguin
0139437c3d
Wrap getDocument response in a root object
2025-04-08 10:05:32 +08:00
Karl Seguin
8f4be9b76f
break when child node list fails
2025-04-07 10:40:46 +08:00