Karl Seguin
5ce274cec4
fix: potential UAF when option's value is programmatically set
2026-07-30 13:53:08 +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
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
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
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
Karl Seguin
2781ce174e
chore: dedupe unit parsing found in CSS and SVG
2026-07-29 15:23:37 +08:00
Karl Seguin
8023f6e1da
crash: Capture ExecutionTerminated and propagate it
...
Prevent re-entering JavaScript when watch/cdp-detection terminates the execution
This can result in a V8 DCHECK failure.
2026-07-29 14:53:02 +08:00
Karl Seguin
c6afbdd224
remove _proto from Element
2026-07-29 10:34:03 +08:00
Karl Seguin
c78c8b7e22
remove _proto from Node and CData
2026-07-29 10:34:03 +08:00
Karl Seguin
a1a8fb6dc3
design: TaggedOpaque fromJS is now offset based
...
As part of the ongoing effort to remove the `_proto: *Parent` field,
TaggedOpaque.fromJS is now offset based. Technically this should perform better
since we're no longer walking through pointers. But the real goal is that we
can now start removing _proto fields.
But, for fromJS to be offset-based, we had to make sure every prototype chain
was a contiguous allocation. The Factory did this, but not everything used the
factory. Now, everything does. This change alone, without the fromJS change,
made every WebAPI allocation more consistent.
2026-07-29 10:34:03 +08:00
Karl Seguin
678971e320
design: rework cdata _type field
...
Ultimately, our goal is to remove the `_proto: *Field`. That would save 24
bytes per Text node (or Element, ...). Large websites have 20K+ nodes, so we're
talking 300-500KB savings.
ef756b0c96 was the first phase of this. This is
the second, and it's targetting at CData for a simple reason: CData currently
has an optimization that makes removal of `_proto: *Field` difficult: it
directly embeds its empty types (most notably, Text). Zig's @offsetOf doesn't
work on tagged unions, so we'd have to jump through hoops to figure it out (it
is doable though). Also, CData has a "incorrect" flattened CDATASection
specifically so that Text doesn't inherit a _type union..so that's another
problem.
The solution is to move to bare unions, which allows us to use our Factory
to control the layout of the CData and thus have predictable offsets.
CData is now an inconsistent with the rest, but, at the very least, all Node
types will move in this direction.
2026-07-29 10:34:03 +08:00
Karl Seguin
d5183da540
design: add explicit Proto declaration to every type
...
This is groundwork for eventually removing the _proto: *X` field from some
types (in order to save 8 bytes per, e.g. Node). For now, all `_proto: *X`
fields are untouched, BUT, all compile-time chain walking now happens against
this new declaration.
2026-07-29 10:34:01 +08:00
Karl Seguin
a2459b62d4
fix: collection bugs
...
Builds on top of the excellent https://github.com/lightpanda-io/browser/pull/3072
1 - HTMLAllCollection now composes NodeLive to get the performance benefit
2 - NodeLive now also optimizes for same-index access, e.g. x[i].a, x[i].b.
3 - NodeLive and RadioNodeList now don't lose their position when different
operations types are mixed (e.g. next() wit getAtIndex())
2026-07-29 07:20:48 +08:00
Karl Seguin
5bbec625d0
Merge pull request #3068 from lightpanda-io/node-children-design
...
mem: optimize node child list
2026-07-29 06:45:51 +08:00
Karl Seguin
53ad5f53f6
Merge pull request #3067 from lightpanda-io/dead-imports
...
chore: remove unused imports
2026-07-29 06:45:30 +08:00
Karl Seguin
0c32de315f
Merge pull request #3066 from lightpanda-io/svg-cleanup
...
webapi: SVG cleanup
2026-07-29 06:45:15 +08:00
Karl Seguin
1414a7d549
Merge pull request #3072 from staylor/fix/htmlcollection-indexed-walk
...
Keep ascending live collection reads linear
2026-07-28 19:46:14 +08:00
Adrià Arrufat
c9f7a11e42
Merge pull request #3073 from lightpanda-io/agent-tool-cap
...
agent: reduce tool output cap to 64KB except for extract
2026-07-28 09:44:39 +02:00
Adrià Arrufat
a2e8ce8f50
agent: reduce tool output cap to 64KB except for extract
2026-07-28 09:17:34 +02:00
Scott Taylor
90ce6cc8d5
Keep ascending live collection reads linear
...
Assisted-By: devx/c039aa47-6c81-41c4-bd11-6e6cb835334c
2026-07-27 23:49:48 -04:00