Commit Graph

192 Commits

Author SHA1 Message Date
Pierre Tachoire
e97c9959fa cdp: add page.Close 2025-12-18 10:46:54 +01:00
Pierre Tachoire
42440f1503 fix mime.charsetString() 2025-12-12 18:00:20 +01:00
Pierre Tachoire
26827efe34 cdp: use same value for requestId and loaderId
For all events regarding an HTTP request, the values of requestId
and loaderId must be the same.
2025-12-12 17:04:18 +01:00
Pierre Tachoire
e2682ab9fe cdp: dispatch Page.navigate response after navigation 2025-12-11 17:51:17 +01:00
Pierre Tachoire
34518dfa98 cdp: add missing fields to Network.requestWillBeSent 2025-12-10 18:22:44 +01:00
Pierre Tachoire
9579f727b3 cdp: add mimeType and charset to Network.Response 2025-12-10 18:21:32 +01:00
Pierre Tachoire
ea757407f5 cdp: implement DOM.requestNode 2025-12-08 15:27:34 +01:00
Karl Seguin
f058cf0697 Merge pull request #1221 from lightpanda-io/cdp-get-targets
Some checks failed
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
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
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
cdp: add Target.getTargets
2025-11-20 19:50:17 +08:00
Karl Seguin
346ae14bcd Merge pull request #1222 from lightpanda-io/cdp-multi-attachtotarget
cdp: accept multiple attachToTarget calls
2025-11-20 19:49:18 +08:00
Karl Seguin
c30de2bb32 Merge pull request #1224 from lightpanda-io/accessibility-domain
cdp: add accessibility domain
2025-11-20 19:47:58 +08:00
Pierre Tachoire
cf7bddd887 cdp: add accessibility domain 2025-11-19 16:13:35 +01:00
Pierre Tachoire
455fe5d2ba cdp: use default value for grantUniveralAccess
In createIsolatedWorld, we set  a default value to false for optional
grantUniveralAccess parameter.
2025-11-19 16:12:18 +01:00
Pierre Tachoire
b764a7a0dc cdp: return valid url and title for getTargets 2025-11-19 15:58:52 +01:00
Pierre Tachoire
b776cf1647 cdp: add getTargets 2025-11-19 15:39:44 +01:00
Pierre Tachoire
4c37a8e766 cdp: accept multiple attachToTarget calls 2025-11-19 15:26:09 +01:00
Pierre Tachoire
4f236d0b30 cdp: return document's title on targetinfo 2025-11-19 09:11:48 +01:00
Pierre Tachoire
0e3f8c9e42 cdp: don't navigate for about:blank
If the create target url is `about:blank`, don't navigate.
Indeed, Chrome doesn't navigate if the url is blank.
2025-11-18 18:11:57 +01:00
Pierre Tachoire
c2827a0f16 cdp: add browser.Close but ignore it 2025-11-13 18:29:38 +01:00
Pierre Tachoire
263dab0bdf cdp: add DOM.getOuterHTML 2025-11-13 18:29:13 +01:00
Pierre Tachoire
1d91d24b12 cdp: add browser permissions noop 2025-10-28 15:02:24 +01:00
Pierre Tachoire
d0b83c674c Merge pull request #1138 from lightpanda-io/navigation
add `Navigation` WebAPI
2025-10-24 09:30:09 +02:00
Pierre Tachoire
b58ff2c869 Merge pull request #1171 from lightpanda-io/cdp-lifecycle
support url on createTarget and send lifecycle events
2025-10-24 08:33:11 +02:00
Pierre Tachoire
2422c8718c renderer: set a default box size of 5 pixels 2025-10-22 15:54:43 +02:00
Pierre Tachoire
b5ef8418a6 cdp: fix double createTarget response 2025-10-22 14:18:53 +02:00
Muki Kiboigo
e9b08f19cf fix navigation and related tests 2025-10-21 18:29:28 -07:00
Pierre Tachoire
2d8a95946a cdp: dispatch lifecycle events when enable 2025-10-21 17:48:51 +02:00
Pierre Tachoire
a7c3bad9ad cdp: implement url parameter on createTarget 2025-10-21 17:45:19 +02:00
Pierre Tachoire
510c61cc20 cdp: add test for setIgnoreCertificateErrors 2025-10-21 14:08:26 +02:00
Pierre Tachoire
d2065f713f cdp: implement Security.setIgnoreCertificateErrors 2025-10-21 13:44:29 +02:00
Pierre Tachoire
0aaed08c1e cdp: add input.insertText 2025-10-15 13:52:21 +02:00
Karl Seguin
76e8506022 Remove potential processing blocking with CDP
When using CDP, we poll the HTTP clients along with the CDP socket. Because this
polling can be long, we first process any pending message. This can end up
processing _all_ messages, in which case the poll will block for a long time.

This change makes it so that when the initial processing processes 1+ message,
we do not poll, but rather return. This allows the page lifecycle to be
processed normally (and not just blocking on poll, waiting for the CDP client
to send data).
2025-10-09 13:18:47 +08:00
Karl Seguin
2ba6737c41 Merge pull request #1119 from lightpanda-io/cdp_log_entry
Emit Log.addEntry
2025-10-06 16:45:48 +08:00
Karl Seguin
fe9a10c617 Emit Log.addEntry
Currently, this hooks a single log.Interceptor into the logging framework, but
changing it to take a list shouldn't be too hard. Biggest issue is who will own
it, as we'd need an allocator to maintain a list / lookup (which log doesn't
currently have).

Uses logFmt format, and, for now, always filters out debug messages and a few
particularly verbose scopes.
2025-10-03 17:29:01 +08:00
Karl Seguin
2e734fae57 This is the last of the big changes to the js code
This Pr largely tightens up a lot of the code. 'v8' is no longer imported
outside of js. A number of helper functions have been moved to the js.Context.
For example, js.Function.getName used to call:

```zig
return js.valueToString(allocator, name, self.context.isolate, self.context.v8_context);
```

It now calls:

```zig
return self.context.valueToString(name, .{ .allocator = allocator });
```

Page.main_context has been renamed to `Page.js`. This, in combination with new
promise helpers, turns:

```zig
const resolver = page.main_context.createPromiseResolver();
try resolver.resolve({});
return resolver.promise();
```

into:

```zig
return page.js.resolvePromise({});
```
2025-10-03 15:06:16 +08:00
Karl Seguin
dab8012b6a Start extract JS structs into their own files
Renames JsContext -> js.Context, JsObject -> js.Object and JsThis -> js.This
which is more consistent with the other types. The JsObject -> js.Object is
the reason so many files were touched.

This is still a [messy] transition, with more refactoring planned to clean it
up.
2025-10-02 12:48:50 +08:00
Muki Kiboigo
05e7079178 functional history WebAPI 2025-09-24 00:21:16 -07:00
Pierre Tachoire
283a9af406 cdp: start nodeId from 1 instead of 0
chromedp expects the nodeId starts to 1.
A start to 0 make it enter in infinite loop b/c it expects the Go's
default int, ie 0, to be nil from a map to stop the loop.
If the 0 index is set, it will loop...
2025-09-19 17:58:37 +02:00
Karl Seguin
024f7ad9ef Merge pull request #1056 from lightpanda-io/DOM_NO_ERR
Convert more DOM_NO_ERR cases to assertions
2025-09-18 19:06:32 +08:00
Pierre Tachoire
2d24e3c7f7 Merge pull request #972 from lightpanda-io/fetch
Fetch + ReadableStream
2025-09-18 09:29:05 +02:00
Muki Kiboigo
1b3707ad33 add fetch to cdp domain 2025-09-17 08:42:20 -07:00
Muki Kiboigo
a133a71eb9 proper fetch method and body setting 2025-09-17 08:41:22 -07:00
Pierre Tachoire
5d1e17c598 cdp: use for...else instead of found bool 2025-09-17 14:42:08 +02:00
Pierre Tachoire
94fe34bd10 cdp: multiple isolated worlds 2025-09-17 14:42:08 +02:00
Pierre Tachoire
e68ff62723 cdp: use depth param on DOM.describeNode 2025-09-17 14:42:08 +02:00
Pierre Tachoire
49a27a67bc cdp: send a warning for pierce parameter 2025-09-17 14:42:07 +02:00
Pierre Tachoire
745de2ede2 cdp: add Runtime.getProperties 2025-09-17 14:42:07 +02:00
Pierre Tachoire
82e5698f1d cdp: accept neg depth in describeNode 2025-09-17 14:42:06 +02:00
Pierre Tachoire
9cb4431e89 cdp: add initiator on request will be send 2025-09-17 14:42:06 +02:00
Pierre Tachoire
2221d0cb6f cdp: send the chrome's error on missing node 2025-09-17 14:42:05 +02:00
Pierre Tachoire
5ea97c4910 cdp: add send error options with session id by default 2025-09-17 14:42:05 +02:00