Muki Kiboigo
1a246f2e38
robots in the actual http client
2026-02-04 12:15:49 -08:00
Muki Kiboigo
48ebc46c5f
add getRobotsUrl to URL
2026-02-04 12:09:05 -08:00
Muki Kiboigo
e27803038c
initial implementation of Robots
2026-02-04 12:09:05 -08:00
Pierre Tachoire
babf8ba3e7
Merge pull request #1469 from lightpanda-io/ci-v8-debug
...
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
ci: use v8 debug mode
2026-02-04 15:20:23 +01:00
Nikolay Govorov
6ccd3f277b
Fix race condition
2026-02-04 13:48:07 +00:00
Halil Durak
9d6f9aae9a
Merge pull request #1440 from lightpanda-io/nikneym/lazy-eval-handlers
...
Lazily evaluate inline event listeners
2026-02-04 16:45:09 +03:00
Halil Durak
95a000c279
getOnSubmit can return errors
2026-02-04 16:15:02 +03:00
Halil Durak
b19debff14
move everything to global_event_handlers.zig
2026-02-04 16:11:02 +03:00
Halil Durak
39c9024747
!?js.Function.Global
...
Also more clear warning in `stringToPersistedFunction` failure.
2026-02-04 16:11:02 +03:00
Halil Durak
3c660f2cb0
remove unnecessary comptime
2026-02-04 16:11:02 +03:00
Halil Durak
13dbdc7dc7
import order
2026-02-04 16:11:02 +03:00
Halil Durak
f903e4b2de
bunch of renaming
2026-02-04 16:11:01 +03:00
Halil Durak
b96cb2142b
add getAttributeFunction
2026-02-04 16:11:01 +03:00
Halil Durak
cc51cd4476
remove eager event listener parsing
2026-02-04 16:11:01 +03:00
Halil Durak
8a995fc515
createLookupKey -> calcAttrListenerKey
2026-02-04 16:11:01 +03:00
Halil Durak
078eccea2d
update doc comment
2026-02-04 16:11:00 +03:00
Karl Seguin
190119bcd4
Merge pull request #1461 from lightpanda-io/blocking_auth_intercept_fix
...
Fix [I hope] blocking auth interception
2026-02-04 19:40:06 +08:00
Pierre Tachoire
7672b42fbc
ci: add missing -Dtsan=tru option
2026-02-04 12:13:46 +01:00
Pierre Tachoire
c590658f16
ci: use debug v8 with zig test
2026-02-04 12:08:12 +01:00
Karl Seguin
017d4e792b
Fix [I hope] blocking auth interception
...
On a blocking request that requires authentication, we now handle the two cases
correctly:
1 - if the request is aborted, we don't continue processing (if we did, that
would result in (a) transfer.deinit being called twice and (b) the callbacks
being called twice
2 - if the request is "continue", we queue the transfer to be re-issued, as
opposed to just processing it as-is. We have to queue it because we're
currently inside a process loop and it [probaby] isn't safe to re-enter it.
By using the queue, we wait until the next call to `tick` to re-issue the
request.
2026-02-04 18:39:23 +08:00
Pierre Tachoire
2f9ed37db2
ci: remove invalid install option
2026-02-04 11:18:38 +01:00
Karl Seguin
2cf2db3eef
Merge pull request #1466 from lightpanda-io/form_onsubmit
...
Execute form.onsubmit when a form is being submitted
2026-02-04 18:13:15 +08:00
Karl Seguin
11ad025e5d
Merge pull request #1467 from lightpanda-io/inspector_context_destroyed
...
Call Inpsector::ContextDestroyed
2026-02-04 18:12:58 +08:00
Karl Seguin
630cf05b2f
Merge pull request #1463 from lightpanda-io/wp/mrdimidium/cleanup-configuration
...
Centralizes configuration, eliminates unnecessary copying of config
2026-02-04 17:36:39 +08:00
Nikolay Govorov
a72782f91e
Eliminates duplication in the creation of HTTP headers
2026-02-04 09:08:57 +00:00
Karl Seguin
fbd554a15f
Call Inpsector::ContextDestroyed
...
This seems to solve some potential use-after-free issues. By informing the
Inspector that the context is gone, it seems to effectively ensure that no more
messages are sent from the inspector for things related to the context.
2026-02-04 16:24:48 +08:00
Nikolay Govorov
f71aa1cad2
Centralizes configuration, eliminates unnecessary copying of config
2026-02-04 07:57:59 +00:00
Nikolay Govorov
6d9517f6ea
Merge pull request #1465 from lightpanda-io/wp/mrdimidium/direct-telemetry
...
Telemetry without notifications
2026-02-04 07:51:46 +00:00
Nikolay Govorov
fd8c488dbd
Move Notification from App to BrowserContext
2026-02-04 07:33:45 +00:00
Nikolay Govorov
dbf18b90a7
Removes telemetry dependence on notifications
2026-02-04 07:30:38 +00:00
Pierre Tachoire
d318fe24b8
Merge pull request #1460 from lightpanda-io/dupe-url-nav
...
fix slice alias crash after same document navigation
2026-02-04 08:25:32 +01:00
Karl Seguin
1352315441
Execute form.onsubmit when a form is being submitted
2026-02-04 13:45:53 +08:00
Karl Seguin
3c635532c4
Merge pull request #1426 from lightpanda-io/update_page_js
...
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 (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Update page.js based on the current context.
2026-02-04 08:51:53 +08:00
Karl Seguin
f8703bf884
Merge pull request #1459 from lightpanda-io/browser_context_arenas
...
Add a dedicated browser_context and page_arena to CDP.
2026-02-04 07:51:35 +08:00
Karl Seguin
eea3aa7a27
Merge pull request #1457 from lightpanda-io/arena_pool_free_list_len
...
Properly maintain the ArenaPool's free_list_len
2026-02-04 07:50:33 +08:00
Nikolay Govorov
6eff448508
Merge pull request #1464 from lightpanda-io/wp/mrdimidium/update-zig-v8-fork
...
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 (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
Use asan/tsan for building v8
2026-02-03 16:18:23 +00:00
Nikolay Govorov
eb8cac5980
Use asan/tsan for building v8
2026-02-03 16:01:18 +00:00
Karl Seguin
1a4086c98c
de-duplicate context shutdown in isolated worl deinit
2026-02-03 23:04:44 +08:00
Karl Seguin
5c91076660
Merge pull request #1458 from lightpanda-io/tweaks
...
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 (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
A few small tweaks
2026-02-03 20:09:38 +08:00
Karl Seguin
5467b8dd0d
A few small tweaks
...
1 - Embed Page into Session, avoids having to allocate/deallocate the page
2 - Fix false-positive arena pool leak detection
3 - On form submit, pre-check if navigation will allowed before building the
contents
4 - Make sure QueuedNavigation structure isn't use after page is removed
2026-02-03 20:07:47 +08:00
Karl Seguin
d46a9d6286
Merge pull request #1462 from lightpanda-io/check_for_leaks_after_all_releases
...
Only check for arena leaks AFTER we've triggered all releases
2026-02-03 18:43:40 +08:00
Karl Seguin
2fa7810128
Only check for arena leaks AFTER we've triggered all releases
...
We already did this for the Context, but shutting down the HTTP client can also
release resources.
2026-02-03 18:31:04 +08:00
Pierre Tachoire
8249725ae7
fix slice alias crash after same document navigation
...
The WPT tests navigation-api/navigation-methods/navigate-history-push-same-url.html
crashed with a @memcpy arguments alias error.
It seems to be due to the reuse of the previous page.url string.
Forcing to duplicate it fixes the crash.
2026-02-03 11:00:45 +01:00
Karl Seguin
c07b83335b
add a few comments
2026-02-03 15:58:29 +08:00
Karl Seguin
7e575c501a
Add a dedicated browser_context and page_arena to CDP.
...
The BrowserContext currently uses 3 arenas:
1 - Command-specific, which is like the call_arena, but for the processing of a
single CDP command
2 - Notification-specific, which is similar, but for the processing of a single
internal notification event
3 - Arena, which is just the session arena and lives for the duration of the
BrowseContext/Session
This is pretty coarse and can results in significant memory accumulation if a
browser context is re-used for multiple navigations.
This commit introduces 3 changes:
1 - Rather than referencing Session.arena, the BrowerContext.arena is now its
own arena. This doesn't really change anything, but it does help keep things
a bit better separated.
2 - Introduces a page_arena (not to be confused with Page.arena). This arena
exists for the duration of a 1 page, i.e. it's cleared when the
BrowserContext receives the page_created internal notification. The
`captured_responses` now uses this arena, which means captures only exist
for the duration of the current page. This appears to be consistent with
how chrome behaves (In fact, Chrome seems even more aggressive and doesn't
appear to make any guarantees around captured responses). CDP refers to this
lifetime as a "renderer" and has an experimental message, which we don't
support, `Network.configureDurableMessages` to control this.
3 - Isolated Worlds are now more self contained with an arena from the ArenaPool.
There are currently 2 places where the BrowserContext.arena is still used:
1 - the isolated_world list
2 - the custom headers
Although this could be long lived, I believe the above is ok. We should just
really think twice whenever we want to use it for anything else.
2026-02-03 15:48:27 +08:00
Karl Seguin
933e2fb0ef
Properly maintain the ArenaPool's free_list_len
2026-02-03 13:08:53 +08:00
Karl Seguin
8d51383fb2
Merge pull request #1450 from lightpanda-io/pluginarray_placeholder
...
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 (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
Add Plugin and PluginArray placeholders
2026-02-03 07:10:46 +08:00
Karl Seguin
80f4c83b83
Merge pull request #1453 from lightpanda-io/xhr_arraybuffer
...
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 (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
add 'arraybuffer' responseType to XHR
2026-02-02 21:55:10 +08:00
Karl Seguin
0d739e4af7
Merge pull request #1446 from lightpanda-io/module_promise
...
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 (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
When loading a module, make sure we have a module_promise
2026-02-02 18:29:50 +08:00
Karl Seguin
58f9027002
Merge pull request #1454 from lightpanda-io/element_replaceWith
...
implement Element.replaceWith
2026-02-02 17:56:25 +08:00