Adrià Arrufat
e362a9cbc3
webapi.Element: use dot notation
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-03-14 20:29:54 +09:00
Adrià Arrufat
e2563e57f2
webapi.Element: make getCssProperties private
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-03-14 20:18:51 +09:00
Adrià Arrufat
df5e978247
tests: remove warning
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-03-14 19:54:43 +09:00
Adrià Arrufat
f37862a25d
perf: cache css properties for visibility and interactivity
...
Introduces `CssCache` to store computed CSS properties, avoiding
redundant stylesheet lookups during DOM traversals.
2026-03-13 14:00:07 +09:00
Adrià Arrufat
84d76cf90d
browser: improve visibility and interactivity CSS checks
...
Adds support for `pointer-events: none` in interactivity classification
and expands `checkVisibility` to include `visibility` and `opacity`.
Refactors CSS property lookup into a shared helper.
2026-03-13 13:33:33 +09:00
Adrià Arrufat
e12f28fb70
Merge branch 'main' into css-improvements
2026-03-13 10:07:06 +09:00
Karl Seguin
944b672fea
Merge pull request #1792 from lightpanda-io/Canvas_getImageData
...
Add dummy getImageData to canvas
2026-03-13 07:23:05 +08:00
Karl Seguin
b1c54aa92d
Merge pull request #1795 from lightpanda-io/navigate_blob_url
...
Allow navigation from a blob URL.
2026-03-13 07:22:50 +08:00
Pierre Tachoire
51e90f5971
parse cookies on redirection during header callback
...
THe change to handle bot `\n` and `\r\n` for end HTTP headers skip the
cookie parsing in case of redirection.
2026-03-12 18:42:51 +01:00
Adrià Arrufat
dfe04960c0
css: remove cssText setter from CSSRule and CSSStyleRule
2026-03-12 22:47:41 +09:00
Adrià Arrufat
de2b1cc6fe
css: throw IndexSizeError in deleteRule and insertRule
2026-03-12 22:40:01 +09:00
Adrià Arrufat
2aef4ab677
webapi.Element: optimize checkVisibility and refactor loops
2026-03-12 22:32:06 +09:00
Adrià Arrufat
798f68d0ce
css: remove curly block helper functions
2026-03-12 22:29:51 +09:00
Adrià Arrufat
e0343a3f6d
Replace ArrayListUnmanaged with ArrayList
2026-03-12 22:23:59 +09:00
Adrià Arrufat
d918ec694b
css: add log filter to CSSStyleSheet test
2026-03-12 22:21:01 +09:00
Adrià Arrufat
b2b609a309
dom: remove verbose logging and simplify css logic
2026-03-12 22:07:58 +09:00
Adrià Arrufat
48dd80867b
dom: support css display: none in checkVisibility
...
Updates `Element.checkVisibility` to iterate through document
stylesheets and check for matching rules with `display: none`.
Also ensures `<style>` elements register their sheets and
initializes them immediately upon addition to the DOM.
2026-03-12 20:55:44 +09:00
Adrià Arrufat
f58f6e8d65
css: improve CSSOM rule handling and serialization
...
Refactors `CSSRule` to a union type for better type safety and updates
`CSSStyleRule` to use `CSSStyleProperties`. Adds comprehensive tests for
`insertRule`, `deleteRule`, and `replaceSync`.
2026-03-12 20:23:59 +09:00
Karl Seguin
e4e21f52b5
Allow navigation from a blob URL.
...
These are used a lot in WPT test.
2026-03-12 18:58:10 +08:00
Karl Seguin
880205e874
Add dummy getImageData to canvas
...
Probably doesn't solve many (if any) WPT tests, but it moves them further along.
2026-03-12 17:53:00 +08:00
Karl Seguin
aa246c9e9f
Merge pull request #1788 from lightpanda-io/range_cleanup
...
Add cleanup to Range
2026-03-12 16:45:05 +08:00
Adrià Arrufat
ee034943b6
feat(css): implement stylesheet rule management
...
Adds a CSS rule parser and implements `insertRule`, `deleteRule`, and
`replaceSync` in `CSSStyleSheet`. Also updates `CSSRuleList` to use
dynamic storage and populates sheets from `<style>` elements.
2026-03-12 16:27:25 +09:00
Karl Seguin
f1d311d232
Merge pull request #1781 from lightpanda-io/wp/mrdimidium/telemetry-network
...
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
Use global connections poll
2026-03-12 13:46:51 +08:00
Adrià Arrufat
3d6d669a50
testing: add LogFilter utility for scoped log suppression
2026-03-12 13:56:53 +09:00
Nikolay Govorov
c4097e2b7e
remove dead-code
2026-03-12 03:55:48 +00:00
Karl Seguin
619d27c773
Add cleanup to Range
...
In https://github.com/lightpanda-io/browser/pull/1774 we started to track Ranges
in the page in order to correctly make them "live". But, without correct
lifetime, they would continue to be "live" even if out of scope in JS.
This commit adds finalizers to Range via reference counting similar to Events.
It _is_ possible for a Range to outlive its page, so we can't just remove the
range from the Page's _live_range list - the page might not be valid. This
commit gives every page an unique id and the ability to try and get the page
by id from the session. By capturing the page_id at creation-time, a Range
can defensively remove itself from the page's list. If the page is already
gone, then there's no need to do anything.
2026-03-12 10:38:07 +08:00
Karl Seguin
1522c90294
Merge pull request #1787 from lightpanda-io/dummy-filelist
...
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 / zig build release (push) Has been cancelled
wpt / build wpt runner (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 FileList Web API stub
2026-03-12 06:37:00 +08:00
Karl Seguin
794e15ce21
Merge pull request #1786 from lightpanda-io/fontfaceset-load
...
FontFaceSet is now an EventTarget
2026-03-12 06:36:22 +08:00
Karl Seguin
34771b835e
Merge pull request #1783 from lightpanda-io/custom_element_dynamic_markup_handling
...
Throw on dynamic markup in custom element callbacks during parsing
2026-03-12 06:27:22 +08:00
Karl Seguin
8df51b232a
Merge pull request #1784 from lightpanda-io/origin_arena
...
Use origin.arena for values that are tied to the origin
2026-03-12 06:26:20 +08:00
Karl Seguin
13b8ce18b2
Merge pull request #1780 from lightpanda-io/anchor_and_form_target
...
Add support for target attribute on anchors and forms
2026-03-12 06:26:08 +08:00
Pierre Tachoire
448386e52b
Add FileList Web API stub
...
Next.js hydration references FileList as a global for feature detection.
Register a minimal stub (length=0, item()→null) so the type exists in
the global scope and the reference check doesn't throw.
2026-03-11 22:31:12 +01:00
Pierre Tachoire
bf07659dd5
FontFaceSet is now an EventTarget
...
Dispatch loading and loaddone events on load() call
2026-03-11 22:18:42 +01:00
Karl Seguin
16dfad0895
Use origin.arena for values that are tied to the origin
...
Of note, the TAO and identity map entry has to use the origin arena, not
the context arena, as those can outlive the context.
2026-03-11 21:55:58 +08:00
Adrià Arrufat
60699229ca
Merge branch 'main' into semantic-tree
2026-03-11 20:52:39 +09:00
Karl Seguin
e1dd26b307
Throw on dynamic markup in custom element callbacks during parsing
...
Custom element callbacks aren't allowed to call document.open/close/write while
parsing.
Fixes WPT crash:
/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html
2026-03-11 18:41:06 +08:00
Pierre Tachoire
7d835ef99d
Merge pull request #1778 from lightpanda-io/wp/mrdimidium/libcurl-malloc
...
Use zig allocator for libcurl
2026-03-11 10:13:13 +01:00
Karl Seguin
0971df4dfc
Merge pull request #1782 from lightpanda-io/silence_shutdown_error_on_non_linux
...
Don't log SocketNotConnected when shutting down listener on non-Linux
2026-03-11 16:39:15 +08:00
Halil Durak
9fb57fbac0
Merge pull request #1771 from lightpanda-io/nikneym/compile-function
...
Prefer `ScriptCompiler::CompileFunction` to compile attribute listeners
2026-03-11 11:38:16 +03:00
Karl Seguin
48ead90850
Don't log SocketNotConnected when shutting down listener on non-Linux
...
On BSD, a listening socket isn't considered connected, so this error is
expected. Maybe we shouldn't call shutdown at all, but I guess it's safer this
way.
2026-03-11 16:29:44 +08:00
Pierre Tachoire
cc88bb7feb
Merge pull request #1777 from lightpanda-io/mcp-missing-lp-commands
...
mcp: add interactiveElements and structuredData tools
2026-03-11 09:11:48 +01:00
Karl Seguin
a725e2aa6a
Merge pull request #1774 from egrs/range-chardata-mutations
...
update live ranges after CharacterData and DOM mutations
2026-03-11 16:04:41 +08:00
Karl Seguin
ee637c3662
Add support for target attribute on anchors and forms
2026-03-11 15:49:30 +08:00
Adrià Arrufat
65d7a39554
SemanticTree: use payload captures for CData.Text checks
...
Improves conciseness and idiomatic Zig style by replacing .is(CData.Text) != null and .as() with direct payload captures in if statements.
2026-03-11 16:39:59 +09:00
Adrià Arrufat
37735b1caa
SemanticTree: use StaticStringMap for structural role check
...
Improves performance and readability of isStructuralRole. Also includes minor syntax cleanup in AXNode.
2026-03-11 16:37:24 +09:00
Adrià Arrufat
1866e7141e
SemanticTree: cast with as
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-03-11 16:33:39 +09:00
Adrià Arrufat
feccc9f5ce
AXNode: remove unused mock JSON lifecycle methods
...
Simplifies TextCaptureWriter by removing unused methods, ensuring future changes to writeName will fail at build time if new methods are required.
2026-03-11 16:25:34 +09:00
Adrià Arrufat
af803da5c8
cdp.lp: use enum for getSemanticTree format param
...
Leverages std.json.parse to automatically validate the format param into a type-safe enum.
2026-03-11 16:21:43 +09:00
egrs
25c89c9940
Revert "remove ranges from live list on GC finalization"
...
This reverts commit 625d424199 .
2026-03-11 08:04:53 +01:00
egrs
697a2834c2
Revert "fix CI: store list pointer on AbstractRange to avoid Page type mismatch"
...
This reverts commit 056b8bb536 .
2026-03-11 08:04:51 +01:00