Pierre Tachoire
12c5bcd24f
cdp: reszie the screenshot to 1920x1080
...
To be consistent w/ layout size returned
2026-03-10 10:09:53 +01:00
Karl Seguin
9f3bca771a
Merge pull request #1755 from lightpanda-io/cdp-page-layout-metrics
...
cdp: add a dummy Page.getLayoutMetrics
2026-03-10 16:16:17 +08:00
Adrià Arrufat
4e16d90a81
Merge pull request #1757 from egrs/lp-get-interactive-elements
...
add LP.getInteractiveElements CDP command
2026-03-10 17:15:18 +09:00
Pierre Tachoire
d669d5c153
cdp: add a dummy Page.getLayoutMetrics
2026-03-10 08:54:48 +01:00
egrs
dc3958356d
address review feedback
...
- TreeWalker.Full instead of FullExcludeSelf so querying a specific
nodeId evaluates the root element itself
- resolve href to absolute URL via URL.resolve
- isDisabled checks ancestor <fieldset disabled> with legend exemption
- parameter order: allocator before *Page per convention
2026-03-10 08:13:01 +01:00
Karl Seguin
89e46376dc
Merge pull request #1752 from lightpanda-io/build-zig-fmt-check
...
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
build: add code formatting check
2026-03-10 14:04:28 +08:00
Karl Seguin
0e4a65efb7
Merge pull request #1758 from lightpanda-io/http-auth-challenge
...
http: handle auth challenge for non-proxy auth
2026-03-10 06:39:14 +08:00
Karl Seguin
b88134cf04
Merge pull request #1756 from lightpanda-io/cdp-screenshot
...
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
cdp: add dummy page.captureScreenshot
2026-03-10 06:37:33 +08:00
Karl Seguin
2aaa212dbc
Merge pull request #1753 from lightpanda-io/document_applets
...
document.applets should always return an empty collection
2026-03-10 06:35:23 +08:00
Karl Seguin
1e37990938
Merge pull request #1741 from lightpanda-io/DOMParser_invalid_xml
...
Throw exception, as expected, on empty input to DOMParser.parseFromSt…
2026-03-10 06:32:48 +08:00
egrs
a417c73bf7
add LP.getInteractiveElements CDP command
...
Returns a structured list of all interactive elements on a page:
buttons, links, inputs, ARIA widgets, contenteditable regions, and
elements with event listeners. Includes accessible names, roles,
listener types, and key attributes.
Event listener introspection (both addEventListener and inline
handlers) is unique to LP — no other browser exposes this to
automation code.
2026-03-09 19:46:12 +01:00
Pierre Tachoire
37c34351ee
http: handle auth challenge for non-proxy auth
2026-03-09 19:23:36 +01:00
Pierre Tachoire
8672232ee2
cdp: add dummy page.captureScreenshot
2026-03-09 17:38:57 +01:00
Karl Seguin
183643547b
document.applets should always return an empty collection
...
Add a new .empty mode to HTMLCollection.
Fixes WPT /shadow-dom/leaktests/html-collection.html
2026-03-09 18:06:22 +08:00
Adrià Arrufat
5568340b9a
build: add code formatting check
2026-03-09 18:48:38 +09:00
Karl Seguin
9172e16e80
Merge pull request #1751 from lightpanda-io/zig-fmt-face
...
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
zig fmt
2026-03-09 17:34:17 +08:00
Adrià Arrufat
3e5f602396
zig fmt
2026-03-09 18:25:09 +09:00
Karl Seguin
379a3f27b8
Merge pull request #1744 from egrs/add-range-client-rect
...
add Range.getBoundingClientRect and getClientRects
2026-03-09 17:17:17 +08:00
egrs
e239f69f69
delegate Range rect methods to container element
...
Instead of always returning zeros, delegate getBoundingClientRect and
getClientRects to the common ancestor container element. Return zeros
only when the range is collapsed or has no element ancestor.
2026-03-09 10:09:11 +01:00
Karl Seguin
034b089433
Merge pull request #1749 from lightpanda-io/empty_is_and_where_pseudoselector
...
Empty :is() and :where() pseudoselectors are valid (and return nothing)
2026-03-09 16:55:43 +08:00
Karl Seguin
c0db96482c
Merge pull request #1748 from lightpanda-io/font_face_optimization
...
Optimize FontFace
2026-03-09 16:55:28 +08:00
Karl Seguin
ffa8fa0a6f
Merge pull request #1745 from lightpanda-io/renavigate_memory_leak
...
Fix leak introduced in inner navigation refactoring
2026-03-09 16:55:12 +08:00
Karl Seguin
7e1d459a2d
Merge pull request #1746 from egrs/fix-module-relative-imports
...
fix module re-import when previous compilation failed
2026-03-09 16:44:43 +08:00
Karl Seguin
71c4fce87f
Empty :is() and :where() pseudoselectors are valid (and return nothing)
2026-03-09 16:39:44 +08:00
Karl Seguin
e91da78ebb
Optimize FontFace
...
Follow up to https://github.com/lightpanda-io/browser/pull/1743
Allow eager cleanup with finalizer. User properties for (what are currently)
constants.
2026-03-09 16:08:17 +08:00
egrs
8adad6fa61
fix module re-import when previous compilation failed
...
When a module's compilation fails after its imported_modules entry has
been consumed by waitForImport, sibling modules that import the same
dependency would get UnknownModule errors. Fix by re-preloading modules
whose cache entry exists but has no compiled module.
2026-03-09 08:58:07 +01:00
Karl Seguin
b47004bb7c
Merge pull request #1743 from egrs/add-fontface-constructor
...
add FontFace constructor and FontFaceSet.add()
2026-03-09 15:57:59 +08:00
Karl Seguin
08a7fb4de0
Fix leak introduced in inner navigation refactoring
...
A inner-navigate event can override an existing pending queued navigation. When
it does, the previously queued navigation has to be cleaned up. We were doing
this, but it must have been stripped out when navigation was refactored to work
with frames.
2026-03-09 15:51:26 +08:00
Karl Seguin
c17a9b11cc
Merge pull request #1740 from egrs/fix-dynamic-inline-scripts
...
execute dynamically inserted inline script elements
2026-03-09 15:43:28 +08:00
egrs
245a92a644
use node.firstChild() directly per review feedback
...
node is already available in scope — no need to traverse back through
script.asConstElement().asConstNode().
2026-03-09 08:31:54 +01:00
Pierre Tachoire
6b313946fe
Merge pull request #1739 from lightpanda-io/wpt-procs
...
wpt: use a pool of browser to run tests
2026-03-09 08:29:16 +01:00
egrs
4586fb1d13
add Range.getBoundingClientRect and getClientRects
...
headless stubs returning zero-valued DOMRect / empty list per CSSOM
View spec. fixes "getBoundingClientRect is not a function" errors on
sites where layout code calls this on Range objects (e.g. airbnb).
2026-03-09 08:23:19 +01:00
egrs
aa051434cb
add FontFace constructor and FontFaceSet.add()
...
headless stub for the FontFace API — constructor stores family/source,
status is always "loaded", load() resolves immediately. enables sites
that use new FontFace() for programmatic font loading (e.g. boursorama).
2026-03-09 08:14:41 +01:00
Karl Seguin
f3e1204fa1
Throw exception, as expected, on empty input to DOMParser.parseFromString
...
https://github.com/lightpanda-io/browser/issues/1738
2026-03-09 13:46:36 +08:00
Pierre Tachoire
1cb5d26344
wpt: use a pool of browser to run tests
2026-03-08 20:55:15 +01:00
egrs
ec9a2d8155
execute dynamically inserted inline script elements
...
Scripts created via createElement('script') with inline content (textContent,
text, or innerHTML) and inserted into the DOM now execute per the HTML spec.
Previously all dynamically inserted scripts without a src attribute were
skipped, breaking most JS framework hydration patterns.
2026-03-08 16:17:52 +01:00
Karl Seguin
0227afffc8
Merge pull request #1735 from egrs/fix-missing-dom-exception-flags
...
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 missing dom_exception flags to bridge declarations
2026-03-08 16:36:56 +08:00
Karl Seguin
6a421a1d96
Merge pull request #1734 from lightpanda-io/mcp_safer_navigate
...
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
Fix page re-navigate
2026-03-08 07:17:39 +08:00
egrs
4f55a0f1d0
add missing dom_exception flags to bridge declarations
...
atob, Performance.measure, and Navigation methods (back, forward,
navigate, traverseTo, updateCurrentEntry) return DOMException errors
but were missing the dom_exception flag, causing them to throw generic
Error objects instead of proper DOMException instances in JavaScript.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 14:34:28 +01:00
Karl Seguin
3de55899fa
fix test
2026-03-07 11:04:22 +08:00
Karl Seguin
ae4ad713ec
Fix page re-navigate
...
It isn't safe/correct to call `navigate` on the same page multiple times. A page
is meant to have 1 navigate call. The caller should either remove the page
and create a new one, or call Session.replacePage.
This commit removes the *Page from the MCP Server and instead interacts with
the session to create or remove+create the page as needed, and lets the Session
own the *Page.
It also adds a bit of defensiveness around parameter parsing, e.g. calling
{"method": "tools/call"} (without an id) now errors instead of crashing.
2026-03-07 10:19:37 +08:00
Karl Seguin
21313adf9c
Merge pull request #1728 from lightpanda-io/about_blank
...
e2e-test / zig build release (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
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 / 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
Optimize about:blank loading in general and for frames specifically
2026-03-06 23:38:11 +08:00
Karl Seguin
9c1293ca45
Merge pull request #1729 from lightpanda-io/target_navigation
...
Add target-aware(ish) navigation
2026-03-06 23:38:01 +08:00
Karl Seguin
1cb1e6b680
Merge pull request #1720 from lightpanda-io/frame_scheduled_navigation
...
Improve frame sub-navigation
2026-03-06 23:37:49 +08:00
Karl Seguin
ed6ddeaa4c
Merge pull request #1732 from lightpanda-io/custom_element_clone_take_2
...
Fix cloning custom element with constructor which attaches the element
2026-03-06 23:37:29 +08:00
Karl Seguin
de08a89e6b
Merge pull request #1726 from lightpanda-io/fix_keyboard_event_leak
...
Release KeyboardEvent if it isn't used
2026-03-06 23:37:15 +08:00
Karl Seguin
dd42ef1920
Merge pull request #1727 from lightpanda-io/halt_tests_on_arena_leak
...
Halt tests (@panic) on ArenaLeak or double-free
2026-03-06 23:35:33 +08:00
Pierre Tachoire
dd192be689
Merge pull request #1730 from lightpanda-io/wpt-concurrency
...
wpt: increase concurrency
2026-03-06 16:26:30 +01:00
Pierre Tachoire
52250ed10e
wpt: increase concurrency
2026-03-06 15:59:28 +01:00
Karl Seguin
4a26cd8d68
Halt tests (@panic) on ArenaLeak or double-free
...
These are too hard to see during a full test run.
2026-03-06 20:41:57 +08:00