Commit Graph
8444 Commits
Author SHA1 Message Date
Adrià Arrufat 6f2fbb12ed build: rename lib-shared and lib-test targets 2026-07-31 21:15:42 +02:00
Adrià Arrufat 65a88617ec c-api: expose liblightpanda.so and C header for embedding
A C ABI (include/lightpanda.h + src/c_api.zig) over the browser tool
surface: lp_init/lp_shutdown, lp_fetch, sessions with lp_call/pump/
cancel, lp_tools_json. Built as a shared library only; the version
script keeps everything but lp_* internal so the bundled OpenSSL/curl/
sqlite cannot collide with a host's own.

Embedders get a hidden 'embed' Config mode (not parseable from the
CLI) with telemetry defaulting off; crash reports honor the same
opt-out. ToolSession in lightpanda.zig owns the browser/session/
registry lifecycle the C API drives.

Build: C deps are always PIC (like boringssl's force_pic) and the
pinned zig-v8-fork always builds V8 library-safe, so 'zig build
shared-lib' needs no flags. It only refuses -Dprebuilt_v8_path:
today's published archives are exe-only (local-exec TLS, malloc
shim); the guard goes away once a fork release ships library-safe
archives. make lib-shared / lib-test / lib-shared-example drive it.
2026-07-31 17:49:02 +02:00
Adrià Arrufat c2fa38e516 Merge pull request #3075 from lightpanda-io/codex
agent: support subscription auth via Codex
2026-07-30 08:02:11 +02:00
Karl Seguin 5f6085fd03 Merge pull request #3085 from lightpanda-io/fix-script-setattribute-src
Fix script setattribute src
2026-07-30 11:30:28 +08:00
Karl Seguin edcd9eabf4 Merge pull request #3084 from lightpanda-io/max-timer-test
test: add max-timers test
2026-07-30 09:53:58 +08:00
Karl Seguin 961da45ece Ignore empty Script.src values
Don't hold an map entry over attributeChange callback, since we can now execute
JavaScript which could invalidate the map.
2026-07-30 09:49:47 +08:00
Karl Seguin 3a4e6febad test: add max-timers test 2026-07-30 08:03:17 +08:00
Karl Seguin 5aa1f0619c Merge pull request #3081 from lightpanda-io/script-event
webapi: Fix script load/error events
2026-07-30 08:00:44 +08:00
Karl Seguin 512379f423 Merge pull request #3080 from lightpanda-io/timer-limit
webapi: Increase max timer count
2026-07-30 07:59:23 +08:00
Karl Seguin bbf50dc250 Merge pull request #3079 from lightpanda-io/dedupe-svg-css
chore: dedupe SVG / CSS code
2026-07-30 07:58:38 +08:00
Karl Seguin 96498fa321 Merge pull request #3078 from lightpanda-io/propagate-execution-terminating
crash: Capture ExecutionTerminated and propagate it
2026-07-30 07:58:23 +08:00
Karl Seguin a39274bfae Merge pull request #3077 from lightpanda-io/collections-followup
fix: collection bugs
2026-07-30 07:58:08 +08:00
Karl Seguin bac560fae3 Merge pull request #3070 from lightpanda-io/explicit-proto
design: add explicit Proto declaration to every type
2026-07-30 07:57:54 +08:00
Karl Seguin c853ebc57b Merge pull request #2969 from lightpanda-io/nikneym/req-res-form-data
webapi: add `Request#formData` and `Response#formData`
2026-07-29 20:40:04 +08:00
NaR82n d2d1efd703 fix dynamic script src attribute loading 2026-07-29 19:30:14 +08:00
Karl Seguin 3a56f7eea2 webapi: Fix script load/error events
1 - inline scripts don't fire anything
2 - load fires even on a JS throw

https://github.com/lightpanda-io/browser/pull/1629, so that is now removed.

Tested the behavior extensively in chrome/firefox (new test files) and matched
our implementation to those tests.

Fixes https://github.com/lightpanda-io/browser/issues/3069
2026-07-29 18:09:11 +08:00
Halil Durak 844c8d0846 update tests 2026-07-29 12:51:49 +03:00
Halil Durak dff92a6fb5 FormData: std.Io.Clock.now -> lp.datetime.milliTimestamp 2026-07-29 12:51:49 +03:00
Halil Durak f4a98a9e68 header_parser: de-inline everything 2026-07-29 12:51:49 +03:00
Halil Durak 50076f538a header_parser: Cursor.skipSpaces now skips HTAB 2026-07-29 12:51:49 +03:00
Halil Durak 7d0524073c header_parser: allow HTAB in header values 2026-07-29 12:51:48 +03:00
Halil Durak 7b29ec4a1a header_parser: simplify broadcast 2026-07-29 12:51:48 +03:00
Halil Durak 4c96f3edef FormData: changes after rebase 2026-07-29 12:51:48 +03:00
Halil Durak de3877a6ae update tests 2026-07-29 12:51:48 +03:00
Halil Durak 2ca2c44faf simd.zig -> network/header_parser.zig
Also migrates to `Cursor` API of `header_parser`.
2026-07-29 12:51:47 +03:00
Halil Durak 91bcc28b7c update license years 2026-07-29 12:51:47 +03:00
Halil Durak af45e00a94 Mime: move ContentTypeIterator to Mime 2026-07-29 12:51:47 +03:00
Halil Durak af143e82d0 body_init: remove dead code 2026-07-29 12:51:47 +03:00
Halil Durak 4dfb365d2b change how we identify and parse FormData in Request and Response 2026-07-29 12:51:46 +03:00
Halil Durak 69c05031fd simd: update tests 2026-07-29 12:51:46 +03:00
Halil Durak 7ed9ac2cdb simd: add ContentTypeIterator type
Allows parsing `Content-Type` header value with ease.
2026-07-29 12:51:46 +03:00
Halil Durak 4d612b7517 simd: remove dead parseHttpHeaders function 2026-07-29 12:51:45 +03:00
Halil Durak 34de819aca update tests 2026-07-29 12:51:45 +03:00
Halil Durak da417dd126 Response: add Response#formData 2026-07-29 12:51:45 +03:00
Halil Durak 03b1e611bd update tests 2026-07-29 12:51:45 +03:00
Halil Durak 50d942f807 Request: add Request#formData 2026-07-29 12:51:44 +03:00
Halil Durak 0c93b50748 FormData: introduce new ways to create FormData objects
Adds `initFromUrlEncoded` and `initFromMultipart`; which are required for `Request#formData`.
2026-07-29 12:51:44 +03:00
Halil Durak e3fbd745a7 introduce simd.zig
Idea is to have reusable parsing utilities here; not sure on the name, we can surely go for something else.
2026-07-29 12:51:44 +03:00
Halil Durak 07f7366d73 FormData: add parseUrlEncoded
Introduces another url decoder also, we may like to unite these at some point.
2026-07-29 12:51:44 +03:00
Karl Seguin 49844b1015 webapi: Increase max timer count
Previously limited to 512. Airbnb uses 600+. Increase the max for one-shot to
2048, but keep 512 for repeating timers.
2026-07-29 17:45:02 +08:00
Adrià Arrufat 97e26ae86e agent: add keep/login/logout menu for subscription providers 2026-07-29 10:07:52 +02:00
Karl Seguin 36cbf1747d Dedupe PointLIst and TransformList
Add an ugly mixin. Ensures the two implementations are the same.
2026-07-29 15:56:00 +08:00
Adrià Arrufat 27b37e6c93 auth: simplify token refresh and json store helpers 2026-07-29 09:55:49 +02:00
Adrià Arrufat d7eba33fb0 auth: fallback to stale models.dev cache on fetch failure 2026-07-29 09:41:50 +02:00
Adrià Arrufat 5f76f7056a auth: log warnings on codex auth request failures 2026-07-29 09:38:53 +02:00
Adrià Arrufat a00b5dceb7 auth: parse device code interval as u32 2026-07-29 09:37:38 +02:00
Karl Seguin 93d2305041 Angle/Lenght value setter unit
Length.setValue should preserve the existing unit. Angle.setValue should use
degrees (copying what Chrome/Firefox do).
2026-07-29 15:37:11 +08:00
Adrià Arrufat 939feeb9a3 auth: consider refreshable tokens in subscription check 2026-07-29 09:35:14 +02:00
Adrià Arrufat c8e7761fce agent/auth: parse models directly into arena 2026-07-29 09:32:11 +02:00
Adrià Arrufat 6070119ca8 auth: write auth store and model cache atomically 2026-07-29 09:26:56 +02:00