Pierre Tachoire
5be977005e
avoid useless priority parsing in CSSStyleDeclaration
2026-02-19 14:49:49 +01:00
Karl Seguin
282b64278e
Merge pull request #1601 from lightpanda-io/animation-cancel
...
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
implement Animation.cancel()
2026-02-19 21:37:08 +08:00
Pierre Tachoire
7263d484de
Update src/browser/webapi/css/CSSStyleDeclaration.zig
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-02-19 14:36:02 +01:00
egrs
bdb059b6c9
spec compliance: missing validation guards
...
- Event.preventDefault() and returnValue respect cancelable=false
- MutationObserver.observe() validates options per spec
- detached checkbox/radio click suppresses input/change events
- doctype insertion into non-document throws HierarchyRequestError
- error.TypeError maps to JS TypeError (not generic Error)
- enable dom_exception on Element/DocumentFragment mutation methods
2026-02-19 14:23:11 +01:00
Pierre Tachoire
de3f5011bc
parse style attribute on CSSStyleDeclaration init
...
To reflect the current style attribute, CSSStyleDeclaration now parses
it on init.
Moreover, this PR synchronizes the element's style attribute with the
dynamic changes.
2026-02-19 12:26:04 +01:00
Pierre Tachoire
de9faffa33
implement Animation.cancel()
2026-02-19 12:12:59 +01:00
Karl Seguin
f67ca69e05
FormData recognizes (and skips over) disabled fieldsets
2026-02-19 18:35:23 +08:00
egrs
dd19e880c5
merge main, resolve comment conflicts in Input.zig
2026-02-19 10:16:34 +00:00
egrs
b5e8fa007c
input value sanitization per WHATWG spec
...
- number: validate against spec grammar (reject "+1", "1.", "Infinity",
"NaN", overflow values like "2e308")
- date: validate YYYY-MM-DD with day-of-month and leap year checks
- time: validate HH:MM[:SS[.sss]]
- month: validate YYYY-MM
- week: validate YYYY-Www with ISO 8601 week count
- datetime-local: validate and normalize (T separator, shortest time)
- color: normalize hex to lowercase per spec
- checkbox/radio: return "on" as default value
- sanitize initial value from HTML attributes in created()
2026-02-19 11:02:03 +01:00
Karl Seguin
c3555bfcab
Merge pull request #1596 from lightpanda-io/animation-improve
...
Improve Animation support: async update from idle => running => finished
2026-02-19 18:01:17 +08:00
Karl Seguin
0383db8788
Merge pull request #1595 from egrs/wpt-value-fixes
...
fix input value defaults, color normalization, and event propagation resets
2026-02-19 17:56:18 +08:00
Karl Seguin
d7af122c18
Merge pull request #1564 from lightpanda-io/nikneym/create-image-data
...
Add `createImageData` and `putImageData` to `CanvasRenderingContext2D`
2026-02-19 17:56:02 +08:00
Pierre Tachoire
e15b8145b1
create Animation in the pool arena
2026-02-19 10:50:12 +01:00
Pierre Tachoire
d75f5f9231
don't play animation when startTime is set to null
2026-02-19 10:41:07 +01:00
Pierre Tachoire
9939797792
fix comment
2026-02-19 10:36:29 +01:00
Pierre Tachoire
5248b9fc6f
Update src/browser/webapi/animation/Animation.zig
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-02-19 10:35:46 +01:00
Pierre Tachoire
e15295bdac
Merge pull request #1560 from arrufat/dump-markdown
...
Add support for dumping output to markdown
v0.2.4
2026-02-19 10:32:57 +01:00
Karl Seguin
4e1f96e09c
Merge pull request #1597 from lightpanda-io/CSSStyleProperties_setNamed
...
add CSSStyleProperties array set support
2026-02-19 17:30:54 +08:00
Halil Durak
96cfdebced
ImageData#constructor: check bounds of dimensions + don't overflow size
...
Also adds a related `too-large` test.
2026-02-19 12:09:24 +03:00
Halil Durak
944f34b833
createImageData: remove unnecessary unreachable
2026-02-19 12:09:24 +03:00
Halil Durak
1023b2ca9c
test blocks need at least a single assertion
2026-02-19 12:09:24 +03:00
Halil Durak
16318bb9f6
add tests
2026-02-19 12:09:24 +03:00
Halil Durak
350586335d
add createImageData and putImageData to CanvasReneringContext2D
2026-02-19 12:09:23 +03:00
egrs
9d809499a5
fix input value defaults, color normalization, and event propagation resets
...
- checkbox/radio getValue() returns "on" when no value attribute set
- color input sanitization normalizes hex to lowercase per spec
- initial input value is sanitized per input type during element creation
- initEvent resets both stop_propagation and stop_immediate_propagation
- dispatchNode resets propagation flags after dispatch per DOM spec step 12
2026-02-19 09:53:13 +01:00
Pierre Tachoire
fdd52c17d7
add CSSStyleProperties array set support
2026-02-19 09:52:27 +01:00
Pierre Tachoire
1461d029db
Improve Animation support: async update from idle => running => finished
2026-02-19 09:50:16 +01:00
Karl Seguin
07cefd71df
Merge pull request #1571 from lightpanda-io/nikneym/persisted-typed-arrays
...
Persisted typed arrays
2026-02-19 15:46:10 +08:00
Halil Durak
abab10b2cc
move createTypedArray to Local
2026-02-19 10:03:04 +03:00
Karl Seguin
e37d4a6756
Fix flaky window.scrollTo test
...
The test is sensitive to any delay in running the schedule task exactly when
it's scheduled. Testing this feature isn't worth making the build flaky.
2026-02-19 14:15:19 +08:00
Karl Seguin
e2a1ce623c
Rework CDP frameIds (and loaderIds and requestIds and interceptorIds)
...
Our BrowsingContext currently supports 1 target. So we have a per-BC target_id.
Previously, our target had 1 "frame" - our page. So we often treated the
targetId as the frameId. But to work with frames, we need page-specific
frameIds and loaderIds.
This tries to clean up our ids (a little). frameIds are now ids derived from
a new incrementing page.id. This page.id has to be passed around (via http
Requests and through notifications) in order to properly generate messages with
a frameId.
2026-02-19 13:01:41 +08:00
Karl Seguin
0ff243266c
make element.focus() noop when element is disconnected
2026-02-19 10:35:11 +08:00
Karl Seguin
645da2e307
Reduce cost of various Element render-related properties.
...
Added a get-only `getStyle` which doesn't lazily create a new style if none
exists. This can be used in the (frequently used) `checkVisibility` to avoid
an allocation. Added a specialized getBoundingClientRectForVisible which
skips the checkVisibility check, since a few callers have already done their
own visibility check.
DOMRect is now off the heap. This avoids _a lot_ of allocation when a DOMRect
is only needed for internal calculation, e.g. in Document.elementFromPoint.
2026-02-19 09:45:56 +08:00
Karl Seguin
5fd95788f9
Merge pull request #1585 from egrs/focusin-focusout-events
...
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
dispatch focusin/focusout events with relatedTarget
2026-02-19 08:15:54 +08:00
Karl Seguin
bd29f168e0
Merge pull request #1590 from egrs/range-tostring-fix
...
fix Range.toString() for cross-container and element ranges
2026-02-19 08:08:25 +08:00
Karl Seguin
dc97e33cd6
Merge pull request #1591 from lightpanda-io/input_and_window_test
...
Remove duplicate window test
2026-02-19 07:59:31 +08:00
Karl Seguin
caf7cb07cd
Remove duplicate window test
...
Re-enable some commented out input tests
2026-02-19 07:47:00 +08:00
Karl Seguin
ad5df53ee7
Merge pull request #1583 from egrs/window-htmlelement-input-props
...
add window stubs, HTMLElement hidden/tabIndex, input attribute reflections
2026-02-19 07:44:36 +08:00
Halil Durak
95920bf207
ArrayBufferRef(...).Global: consistent, persisted typed arrays
2026-02-18 21:43:19 +03:00
egrs
6700166841
fix Range.toString() for cross-container and element ranges
...
implement proper tree-walking in writeTextContent to handle all cases:
same-element containers, cross-container ranges, and comment exclusion.
uncomment ~800 lines of Range tests and add 5 new toString tests.
2026-02-18 16:25:34 +01:00
Karl Seguin
b8196cd06e
Merge pull request #1588 from egrs/click-to-focus
...
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
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
click on focusable elements calls focus() with events
2026-02-18 23:12:21 +08:00
egrs
c28afbf193
address review feedback: move stubs test, inline bridge functions, catch unreachable
2026-02-18 15:40:59 +01:00
egrs
84ffffb3f3
dispatch select event from input.select() and textarea.select()
2026-02-18 15:31:52 +01:00
egrs
b2c030140c
click on focusable elements calls focus() with events
...
handleClick() was setting _active_element directly, bypassing
Element.focus() — so no blur/focus events fired on click.
Now calls focus() for input, button, select, textarea, anchor.
2026-02-18 15:08:40 +01:00
Adrià Arrufat
92f131bbe4
Inline writeIndentation helper
2026-02-18 23:02:10 +09:00
Karl Seguin
338580087e
Add HTMLLabelElement.control getter
2026-02-18 21:59:15 +08:00
Pierre Tachoire
deda53a842
Merge pull request #1353 from lightpanda-io/wp/mrdimidium/multicontext
...
Use thread per connection
2026-02-18 14:59:15 +01:00
Pierre Tachoire
5391854c82
Merge pull request #1586 from lightpanda-io/makefile-typo-fix
...
typo fix
2026-02-18 14:51:46 +01:00
Pierre Tachoire
e288bfbec4
typo fix
2026-02-18 14:50:43 +01:00
egrs
377fe5bc40
add comment on _active_element ordering constraint
2026-02-18 14:50:20 +01:00
Adrià Arrufat
d264ff2801
Use attributes for checkbox rendering
2026-02-18 22:48:46 +09:00