Commit Graph
9745 Commits
Author SHA1 Message Date
Karl Seguin db98e85ce3 v8: update for changes to v8__String__WriteUtf8
https://github.com/lightpanda-io/zig-v8-fork/pull/211
2026-09-25 11:52:42 +08:00
Karl Seguin 722241fe0d Merge pull request #3622 from lightpanda-io/keep-preload-script-errors
http: preserve preload script errors
2026-09-25 06:14:25 +08:00
Karl Seguin 2bd46136dc Merge pull request #3621 from lightpanda-io/legacy-constructors
webapi: Legacy constuctor API
2026-09-25 06:13:23 +08:00
Karl Seguin bfbc34bffa Merge pull request #3619 from lightpanda-io/sanitizer-usage
webapi: Sanitizer API usage
2026-09-25 06:13:06 +08:00
Karl Seguin 1950a81753 Merge pull request #3617 from lightpanda-io/iterative-semantic-tree
mem: SemanticTree and AXNode recursive walk -> iterative
2026-09-25 06:12:53 +08:00
Karl Seguin 7f4387b9c7 Merge pull request #3623 from lightpanda-io/delete-fs-cache
chore: delete FsCache.zig, it isn't being used
2026-09-24 15:29:08 +08:00
Karl Seguin 40cf2b28c3 Merge pull request #3624 from lightpanda-io/response-header-normalization
http: lowercase response headers
2026-09-24 15:28:59 +08:00
Karl Seguin 7e2fcec7c7 Merge pull request #3625 from lightpanda-io/speed-up-slow-tests
dev: speed up some slow tests
2026-09-24 15:28:48 +08:00
Karl Seguin 606089f5a8 Merge pull request #3620 from lightpanda-io/new-options
webapi: add new Option() support
2026-09-24 15:28:28 +08:00
Karl Seguin b8175662df Merge pull request #3606 from lightpanda-io/default-indexer-query
webapi: give every indexer implementation a query handler
2026-09-24 15:27:54 +08:00
Karl Seguin e3912ba208 dev: speed up some slow tests
-TCP_NODELAY on test clients,
-WebDrive tests poll for completion with a short sleep, instead of 1 long one
-reduce isolated world redirect delay
2026-09-24 13:59:34 +08:00
Karl Seguin e5ecdf1fe3 http: lowercase response headers
Response headers get lower cased once, upfront. Any consumer of a transfer's /
response's headers is now `mem.eql` rather than `ascii.eqlIgnoreCase`. This
fixes 1 or 2 WPT cases (e.g. XHR's `getAllResponseHeaders`), it also mergers
values in some cases (which is generally correct) - we need a follow up PR
to correctly merge in all cases.
2026-09-24 13:51:41 +08:00
Karl Seguin 1b38dd16b7 chore: delete FsCache.zig, it isn't being used 2026-09-24 13:08:39 +08:00
Karl Seguin 5b994c10cd http: preserve preload script errors
Preloaded modules would discard errors in the hope that re-fetching the script
when it was needed, might work. This reverses that decision and stores the
error state. When a preload fails, that failure sticks.

This does mean that a transient failure doesn't get a second chance.

But it also means we don't log the failure multiple times (I noticed this when
using adblocking and seeing duplicate failures for the same endpoint). Since we
don't keep trying, it cuts down the CDP flow too.
2026-09-24 12:51:51 +08:00
Karl Seguin 0f44c3ec51 webapi: Legacy constuctor API
We previously supported the legacy constructors via new Image() and new Audio()
and https://github.com/lightpanda-io/browser/pull/3620 adds support for
new Option(). In most cases, that was good enough, but it wasn't quite up to
spec, e.g. new HTMLImageElement() still worked and HtMLImageElement showed up
in window.

This PR cleans it up by giving each one a distinct constructor for their legacy
function and NOT creating the default one bridge.constructor would otherwise
create.
2026-09-24 11:24:10 +08:00
Karl Seguin b09049cbf3 webapi: add new Option() support 2026-09-24 10:06:15 +08:00
Karl Seguin 54b0d114ad Merge pull request #3618 from lightpanda-io/orderfile-regen
orderfile: regenerate the hot-code profile
2026-09-24 09:38:58 +08:00
Karl Seguin eba58d7d57 webapi: Sanitizer API usage
Builds ontop of https://github.com/lightpanda-io/browser/pull/3604 to actually
use a Sanitizer across 6 apis (some of which we didn't have at all, and some
of which were incomplete). Namely setHtml and setHTMLUnsafe for Element,
ShadowRoot and Document.
2026-09-24 09:38:34 +08:00
github-actions[bot] a01a554000 orderfile: regenerate the hot-code profile
hot set 16948KB resident at 4KB fault-around: 21535 text, 21860 rodata symbols
2026-09-24 01:05:29 +00:00
Karl Seguin 1151eaebf3 mem: SemanticTree and AXNode recursive walk -> iterative
Following https://github.com/lightpanda-io/browser/pull/3573 and
https://github.com/lightpanda-io/browser/pull/3602 this makes the two recursive
walks iterative, preventing a SO on deep trees.
2026-09-24 07:24:15 +08:00
Karl Seguin 160bce3ee6 GetterQuery now compilerError on an non-option getter 2026-09-24 07:15:09 +08:00
Karl Seguin 4bada6d3df Batch option creation 2026-09-24 07:10:43 +08:00
Karl Seguin ff10756ee6 Merge pull request #3607 from lightpanda-io/cleanup-abandoned-document-parsers
mem: Track / Free abandoned html5ever parsers
2026-09-24 06:37:10 +08:00
Karl Seguin 578acc9040 Merge pull request #3587 from lightpanda-io/nikneym/polymer-changes
Changes for `<template>` content
2026-09-24 06:24:14 +08:00
Karl Seguin 6debc4dd71 Merge pull request #3608 from lightpanda-io/webdriver-input
WebDriver: add input (click, clear and sendKeys)
2026-09-24 06:17:35 +08:00
Karl Seguin 4d16a0c4b6 document cleanup after bad parse start 2026-09-24 06:17:00 +08:00
Karl Seguin 5112323b58 Merge pull request #3615 from lightpanda-io/reduce-v8-background-execution-delay
perf: reduce delay in running v8 background jobs
2026-09-24 06:12:41 +08:00
Karl Seguin 2b2bb317dd Merge pull request #3611 from lightpanda-io/inert
webapi: add support for the inert property
2026-09-24 06:12:02 +08:00
Karl Seguin 5cbaf2acb4 Merge pull request #3609 from lightpanda-io/xml-declaration-validation
xml: validate xml declaration
2026-09-24 06:11:44 +08:00
Halil Durak 7690a33c7c update tests 2026-09-23 17:04:16 +03:00
Halil Durak 9454b7d23e CustomElementRegistry: move frame check to upgrade 2026-09-23 17:04:15 +03:00
Halil Durak d4d5fc38eb update tests 2026-09-23 17:04:15 +03:00
Halil Durak 7a4d2fec71 changes for <template> content
Template content belongs to an inert "template contents owner document" with no browsing context, related changes for #3328.
2026-09-23 17:04:15 +03:00
Karl Seguin 1dd33ee7ec Merge pull request #3604 from lightpanda-io/sanitizer
webapi: Start of Sanitizer WebAPI
2026-09-23 21:23:20 +08:00
Karl Seguin d157157721 perf: reduce delay in running v8 background jobs
In Runner, when we're `in_cdp` we reduce the HttpClient poll time to 10ms when
a v8 tells us it has a background task. This is to help ensure we don't linger
too long in HttpClient's poll when v8 has work.

But, 10ms can still be long, especially in a WPT test that's running thousands
of WASM compilation in serial. So rather than having a flat 10ms wait, Runner
will now wait 0-10ms, based on (a) whether the last pump had any tasks and (b)
the number of _ticks since there was task.

This is potentially a temporary solution to having v8 wake the HttpClient when
a task is ready.
2026-09-23 20:02:47 +08:00
Karl Seguin d070a0d34e Merge pull request #3605 from lightpanda-io/x-frame-options
http: add support for x-frame-options
2026-09-23 19:04:08 +08:00
Pierre Tachoire ba5afb8e8c Merge pull request #3610 from lightpanda-io/ci-crgoup
ci: add missing instruction for cgroup install
2026-09-23 12:32:40 +02:00
Karl Seguin d5ba648b7e webapi: add support for the inert property
Improves the /inert/ WPT category
2026-09-23 18:21:31 +08:00
Pierre Tachoire 5e16a9bc54 ci: add missing instruction for cgroup install 2026-09-23 12:12:57 +02:00
Karl Seguin f768a60c3f Merge pull request #3600 from staylor/fix/cdp-context-disposal-events
cdp: notify target closure when disposing browser contexts
2026-09-23 18:03:56 +08:00
Karl Seguin 79376d00fa xml: validate xml declaration
And now, because we do this, we no longer have to have the parser skip anything
that looks like a ProcessingInstruction.
2026-09-23 17:34:10 +08:00
Karl Seguin 1bc6bcc3d1 dedupe close path 2026-09-23 17:08:03 +08:00
Scott Taylor 1296861350 cdp: notify target closure when disposing browser contexts 2026-09-23 16:33:17 +08:00
Karl Seguin 369059e48d WebDriver: add input (click, clear and sendKeys) 2026-09-23 16:19:35 +08:00
Karl Seguin 0016fb0813 mem: Track / Free abandoned html5ever parsers
A parser created via document.open() is only freed when done/close is called
(or some parse error happens). If close() isn't called, the parser is leaked.

This has the Frame track documents that call open so that, on Frame.deinit(),
it can free any parser still associated with the document.
2026-09-23 16:07:03 +08:00
Karl Seguin 414167bfcd Merge pull request #3602 from lightpanda-io/iterative-rendertree
mem: make markdown/screenshot iterative
2026-09-23 15:15:37 +08:00
Karl Seguin 3262e78aec webapi: give every indexer implementation a query handler
If an explicit query handler isn't provided, we bridge creates a generic one
that wraps the getter.
2026-09-23 14:52:33 +08:00
Karl Seguin 80640f7204 http: add support for x-frame-options
Brings /x-frame-options/ from 43/157 to  157/157.
2026-09-23 12:54:19 +08:00
Karl Seguin 628248a51c webapi: Start of Sanitizer WebAPI
This is the configuration-half of the Sanitizer API. In a follow up, we'll add
the missing element.setHtml and sanitizer option to the existing setHTMLUnsafe
(as well as the ShadowRoot and Document sanitizer-aware methods).
2026-09-23 12:38:43 +08:00
Karl Seguin 31198445dd Merge pull request #3598 from cdebled/cdp-blank-lifecycle
cdp: report the initial about:blank as loaded to lifecycle events
2026-09-23 11:56:18 +08:00