Pierre Tachoire
c88bc65379
cookie: use a ; w/o space for cookie separator in requests
2025-04-11 12:40:16 +02:00
Pierre Tachoire
37340dc549
dom: implement document.cookie
2025-04-11 12:19:11 +02:00
Pierre Tachoire
f034065247
Merge pull request #520 from lightpanda-io/navigate_notifications
...
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
Communicate page navigation state via notifications
2025-04-10 13:42:30 +02:00
Pierre Tachoire
22307239ae
url: accept about:blank
2025-04-10 13:00:14 +02:00
Karl Seguin
3fc7ffadbf
rename ts => timestamp, ctx => notify_ctx
2025-04-10 18:27:14 +08:00
Karl Seguin
c775de260a
Remove the WPT js_env.wait() on error.
...
40c0c7d421
Makes it unecessary as wait is now always called on deinit.
2025-04-10 16:30:44 +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
41bd3704ef
update lightpanda and wpt URL usage
2025-04-09 19:21:59 +08: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
f9c4cefe59
Update zig-js-runtime, wait for loop on wpt error
...
Updates zig-js-runtime to latest, reverting the loop reset change. This solves
the introduced memory leak.
On WPT error, call js_env.wait() to ensure all pending events are completed.
Without this, on error, the code is likely to crash as the timeout callback
executes AFTER env.deinit() is called. This is now possible to do safely on
Mac now that cancel is pseudo-implemented.
2025-04-09 09:01:04 +08:00
Pierre Tachoire
27ec1a13da
wpt: add missing renderer
2025-04-08 17:34:18 +02:00
Karl Seguin
0fbf48ab4d
actually dispatch click
2025-04-08 22:51:19 +08: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
Pierre Tachoire
647575261e
Merge pull request #515 from karlseguin/html_document_subtype
...
add 'node' subtype to htmldocument
2025-04-08 15:45:40 +02:00
Pierre Tachoire
3c2b348ce5
Merge pull request #502 from lightpanda-io/cdp_node_children
...
Cdp node children
2025-04-08 15:45:16 +02:00
Karl Seguin
8aef6ca372
add 'node' subtype to htmldocument
2025-04-08 10:40:52 +08:00
Karl Seguin
0139437c3d
Wrap getDocument response in a root object
2025-04-08 10:05:32 +08:00
Pierre Tachoire
ad0117e060
browser: script with type text/javascript are js
2025-04-07 22:06:39 +02:00
Pierre Tachoire
309d70c142
Merge pull request #509 from lightpanda-io/browser-no-content-type
...
browser: assume no-content type is html
2025-04-07 17:39:54 +02:00
Karl Seguin
ec9a1416a1
Don't emit incorrect empty chunk
...
When we only have 1 or 2 bytes missing from a chunk (i.e. the tailing \n or
\r\n), don't emit an empty chunk if we have more data available to process.
2025-04-07 22:40:02 +08:00
Pierre Tachoire
dac622fc46
browser: assume no-content type is html
2025-04-07 14:07:55 +02:00
Karl Seguin
8f4be9b76f
break when child node list fails
2025-04-07 10:40:46 +08:00
Pierre Tachoire
5cbcb901f1
browser: fix buffer url usage w/ the arena
2025-04-04 09:53:47 +02:00
Karl Seguin
4d075818f6
Lazily load nodes
...
Node registry now only tracks the node id (which we need to be consistent) and
the underlying parser.Node. All other data is loaded on-demand (i.e. when we
serialize the node). This allows us to serialize node values as they appear
when they are serialized, as opposed to when they are registered.
2025-04-04 11:24:34 +08:00
Pierre Tachoire
4302be5619
browser: update urls after redirection
2025-04-03 18:27:49 +02:00
Karl Seguin
68d1be3b94
Add children node to CDP Node representation
...
Add Node writer. Different CDP messages want different child depths. For now,
only support immediate children, but the new writer should make it easy to
support variable.
2025-04-03 21:28:57 +08:00
Karl Seguin
af68b10c5d
Better CDP node serialization
...
Include direct descendant, with hooks for other serialization options.
Don't include parentId if null.
2025-04-03 21:18:18 +08:00
Pierre Tachoire
8b16d0e7ed
Merge pull request #495 from lightpanda-io/cdp_node
...
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
Add CDP Node Registry
2025-04-01 17:25:25 +02:00
Pierre Tachoire
0110ac62bf
Merge pull request #490 from karlseguin/cookies
...
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 Cookie support to browser & xhr requests
2025-03-31 14:35:28 +02:00
Karl Seguin
d21821a0fb
add cookie_jar to wpt script
2025-03-31 18:44:09 +08:00
Karl Seguin
84dfde2e51
add cookies to XHR requests
2025-03-31 18:44:09 +08:00
Karl Seguin
22d33fa286
Add cookie support to browser (not XHR yet) requests
2025-03-31 18:44:09 +08:00
Pierre Tachoire
cf015b2ce7
main: exit 1 on memory leak detection
2025-03-31 12:35:33 +02:00
Pierre Tachoire
95cae6e7de
Merge pull request #498 from karlseguin/pool_polish
...
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 / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Accommodate zig-js-runtime loop changes
2025-03-31 12:35:09 +02:00
Karl Seguin
b2d9f835bf
Zig fmt
2025-03-31 15:29:54 +08:00
Karl Seguin
735772f43a
On a non websocket upgrade connection, close the connection
...
Solves slow startup time with chromedp
2025-03-31 15:26:37 +08:00
Karl Seguin
75f66a6cb2
Accommodate zig-js-runtime loop changes
2025-03-31 14:59:40 +08:00
Karl Seguin
be9e953971
Add CDP Node Registry
...
This expands on the existing CDP node work used in DOM.search. It introduces
a node registry to track all nodes returned to the client and give lookups to
get a node from a Id or a *parser.node.
Eventually, the goal is to have the Registry emit the DOM.setChildNodes event
whenever necessary, as well as support many of the missing DOM actions.
Added tests to existing search handlers. Reworked search a little bit to avoid
some unnecessary allocations and to hook it into the registry.
The generated Node is currently incomplete. The parentId is missing, the
children are missing. Also, we still need to associate the v8 ObjectId to the
node.
Finally, I moved all action handlers into a nested "domain" folder.
2025-03-28 19:00:29 +08:00
Pierre Tachoire
82e67b7550
Merge pull request #489 from lightpanda-io/microtasks
...
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 / perf-fmt (push) Has been cancelled
zig-test / zig build dev (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
run v8 micro tasks
2025-03-27 17:15:50 +01:00
Pierre Tachoire
e347e7e5fb
browser: use loop.resetJS
2025-03-27 15:49:48 +01:00
Pierre Tachoire
3f1d0df7f9
cdp: run microtasks after send inspector
2025-03-27 15:49:48 +01:00