Luke Wilde
12dc771186
CI: Create wasm artifact and use it in the js-benchmarks workflow
2025-08-14 10:02:35 +02:00
Jamie Mansfield
73a05f9163
LibWeb: Implement VTTCue.position
2025-08-13 23:05:50 +02:00
Jamie Mansfield
8204143b08
LibWeb: Implement VTTCue.line
2025-08-13 23:05:50 +02:00
Jelle Raaijmakers
9080af4085
RequestServer: Don't set CURLOPT_HTTPGET _and_ CURLOPT_CUSTOMREQUEST
...
CI / macOS, arm64, Sanitizer, Clang (push) Has been cancelled
CI / Linux, x86_64, Fuzzers, Clang (push) Has been cancelled
CI / Linux, x86_64, Sanitizer, GNU (push) Has been cancelled
CI / Linux, x86_64, Sanitizer, Clang (push) Has been cancelled
Package the js repl as a binary artifact / Linux, arm64 (push) Has been cancelled
Package the js repl as a binary artifact / macOS, arm64 (push) Has been cancelled
Package the js repl as a binary artifact / Linux, x86_64 (push) Has been cancelled
Run test262 and test-wasm / run_and_update_results (push) Has been cancelled
Lint Code / lint (push) Has been cancelled
Label PRs with merge conflicts / auto-labeler (push) Has been cancelled
Push notes / build (push) Has been cancelled
We always set CURLOPT_CUSTOMREQUEST, so we can skip setting
CURLOPT_HTTPGET.
2025-08-13 10:30:04 -04:00
Jelle Raaijmakers
ed57d2de98
RequestServer: Don't return unused bool when setting curl options
2025-08-13 10:30:04 -04:00
Jelle Raaijmakers
da351ac468
RequestServer: Pass nullptr instead of an unused variable
2025-08-13 10:30:04 -04:00
Jelle Raaijmakers
585e4ed875
RequestServer: Add some useful dbgln_if()
s
...
In trying to debug request handling, I've found these to help
understanding what's going on behind the scenes.
2025-08-13 10:30:04 -04:00
Jelle Raaijmakers
41cf150a5b
LibDNS+RequestServer: Don't construct Vectors to validate DNS response
...
Instead of filling vectors and returning them just to invoke
`.is_empty()`, forward the calls to the underlying vectors directly.
2025-08-13 10:30:04 -04:00
Timothy Flynn
62d85dd90a
LibJS: Port RegExp flags and patterns to UTF-16
2025-08-13 09:56:13 -04:00
Timothy Flynn
b955c9b2a9
LibJS: Port the Identifier AST (and related) nodes to UTF-16
...
This eliminates quite a lot of UTF-8 / UTF-16 churn.
2025-08-13 09:56:13 -04:00
Timothy Flynn
00182a2405
LibJS: Port the JS lexer and parser to UTF-16
...
This ports the lexer to UTF-16 and deals with the immediate fallout up
to the AST. The AST will be dealt with in upcoming commits.
The lexer will still accept UTF-8 strings as input, and will transcode
them to UTF-16 for lexing. This doesn't actually incur a new allocation,
as we were already converting the input StringView to a ByteString for
each lexer.
One immediate logical benefit here is that we do not need to know off-
hand how many UTF-8 bytes some special code points occupy. They all
happen to be a single UTF-16 code unit. So instead of advancing the
lexer by 3 positions in some cases, we can just always advance by 1.
2025-08-13 09:56:13 -04:00
Timothy Flynn
eb74781a2d
LibJS: Keep the lookahead lexer alive after parsing its next token
...
Currently, the lexer holds a ByteString, which is always heap-allocated.
When we create a copy of the lexer for the lookahead token, that token
will outlive the lexer copy. The token holds a couple of string views
into the lexer's source string. This is fine for now, because the source
string will be kept alive by the original lexer.
But if the lexer were to hold a String or Utf16String, short strings
will be stored on the stack due to SSO. Thus the token will hold views
into released stack data. We need to keep the lookahead lexer alive to
prevent UAF on views into its source string.
2025-08-13 09:56:13 -04:00
Timothy Flynn
8472e469f4
AK+LibJS+LibWeb: Recognize that our UTF-16 string is actually WTF-16
...
For the web, we allow a wobbly UTF-16 encoding (i.e. lonely surrogates
are permitted). Only in a few exceptional cases do we strictly require
valid UTF-16. As such, our `validate(AllowLonelySurrogates::Yes)` calls
will always succeed. It's a wasted effort to ever make such a check.
This patch eliminates such invocations. The validation methods will now
only check for strict UTF-16, and are only invoked when needed.
2025-08-13 09:56:13 -04:00
Timothy Flynn
36c7302178
AK: Optimize the UTF-16 StringBuilder for ASCII storage
...
When we build a UTF-16 string, we currently always switch to the UTF-16
storage mode inside StringBuilder. Then when it comes time to create the
string, we switch the storage to ASCII if possible (by shifting the
underlying bytes up).
Instead, let's start out with ASCII storage and then switch to UTF-16
storage once we see a non-ASCII code point. For most strings, this will
avoid allocating 2x the memory, and avoids many ASCII validation calls.
2025-08-13 09:56:13 -04:00
Timothy Flynn
99d7e08dff
AK: Templatize GenericLexer for UTF-16 strings
...
We now define GenericLexer as a template to allow using it with UTF-16
strings. To keep existing users happy, the template is defined in the
Detail namespace. Then AK::GenericLexer is an alias for a char-based
view, and AK::Utf16GenericLexer is an alias for a char16-based view.
2025-08-13 09:56:13 -04:00
Timothy Flynn
28d9d3a2c7
AK+Libraries: Reduce API surface of GenericLexer a bit
...
* Remove completely unused methods.
* Deduplicate methods that were overloaded with both StringView and
char const* parameters.
A future commit will templatize GenericLexer by char type. This patch
serves to make that a tiny bit easier.
2025-08-13 09:56:13 -04:00
Timothy Flynn
213683956c
LibCrypto: Return StringView from ASN1 enum-to-string factories
...
We were implicitly including ByteString.h here, which will become a
compile error in an upcoming commit. Let's just return StringView.
2025-08-13 09:56:13 -04:00
Jelle Raaijmakers
7078769ba3
LibWeb: Don't indicate focus for all form associated elements
...
This was a misinterpretation of the spec; we should only indicate focus
if the form associated element supports keyboard input, for which
FormAssociatedTextControlElement is a much better match.
2025-08-13 09:44:38 -04:00
Nico Weber
7a01912af3
LibWeb/IDB: Fix typo in diagnostic
2025-08-13 14:21:56 +01:00
rmg-x
d489e46448
RequestServer: Clarify comment for removing Content-Type header
...
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
This comment assumed that the reader knew how curl behaved with empty
header values.
2025-08-13 06:30:56 -04:00
rmg-x
d1db27dc42
RequestServer: Remove unused include of AK/Badge.h
2025-08-13 06:30:56 -04:00
Aliaksandr Kalenik
4d223462a5
LibWeb: Fix cyclic percentage resolution in calculate_min_content_width
...
Brings back some code removed in 652a457
, but this time with explanation
from https://www.w3.org/TR/css-sizing-3 spec.
2025-08-13 10:14:37 +01:00
Sam Atkins
911274a84d
LibWeb/CSS: Implement ElementCSSInlineStyle.attributeStyleMap
...
Again, this isn't yet very usable, but it does appease some tests.
2025-08-13 09:47:50 +01:00
Sam Atkins
215d8b8076
LibWeb/CSS: Implement CSSStyleRule.styleMap
...
StylePropertyMap is just a stub, so this doesn't yet accomplish much.
2025-08-13 09:47:50 +01:00
Sam Atkins
3bb54ffd59
LibWeb/CSS: Stub out StylePropertyMap
2025-08-13 09:47:50 +01:00
Sam Atkins
c768cc7208
LibWeb/CSS: Implement Element.computedStyleMap()
...
Currently the map doesn't return any values, so it's not very useful,
but this does make a few tests pass just by existing. :^)
2025-08-13 09:47:50 +01:00
Sam Atkins
1620fc5bf6
LibWeb/CSS: Stub out StylePropertyMapReadOnly
...
Nothing yet produces this, and the useful parts of get() and get_all()
will have to wait until type reification is implemented.
2025-08-13 09:47:50 +01:00
Sam Atkins
05884f1d91
LibWeb/CSS: Implement is_a_valid_css_property()
...
Also mark these functions as inline instead of static, to fix a compiler
error about them being unused.
2025-08-13 09:47:50 +01:00
Sam Atkins
882288bf86
LibWeb/CSS: Stub out CSSStyleValue
2025-08-13 09:47:50 +01:00
Sam Atkins
b447dc63c4
IDLGenerators: Include JS::Array in constructor implementations
...
Will be required by CSSStyleValue.
2025-08-13 09:47:50 +01:00
Sam Atkins
7ec374c74c
Tests: Import tests for CSS typed OM
...
This is everything except some failing ref-tests, and
`css/css-typed-om/the-stylepropertymap/properties/*` because importing
a test for every property feels excessive.
2025-08-13 09:47:50 +01:00
Sam Atkins
00cadf41d8
LibWeb/CSS: Update UA stylesheet to use :heading
...
Corresponds to part of
65dc095e44
2025-08-13 09:47:28 +01:00
Sam Atkins
503d41d02d
LibWeb/CSS: Implement the :heading
/:heading()
pseudo-class
...
Corresponds to part of
65dc095e44
2025-08-13 09:47:28 +01:00
Sam Atkins
e7890429aa
LibWeb/CSS: Add support for pseudo-classes taking <an+b>#
2025-08-13 09:47:28 +01:00
Sam Atkins
fbae3b824a
LibWeb/CSS: Move An+B matching code into ANPlusBPattern::matches()
...
Not everything we want to match is an "nth element".
Also moved its serialization function's implementation out of the header
while I was at it.
2025-08-13 09:47:28 +01:00
Sam Atkins
a59c15481f
LibWeb/CSS: Prepare pseudo-classes for multiple An+B patterns
...
The upcoming `:heading()` pseudo-class takes multiple comma-separated
An+Bs. Also rename this field as the `:nth-[last-]child()`
pseudo-classes are only a subset of the users.
2025-08-13 09:47:28 +01:00
Lukas Schmidt
c2fc4b25cd
LibWeb: Implement HTMLElement.draggable()
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
2025-08-12 17:15:06 +01:00
Sam Atkins
615034433b
LibWeb/HTML: Add missing if to <details>
attribute_changed() logic
2025-08-12 15:53:51 +02:00
Sam Atkins
a28b2b4ca1
WebContent: Correct StyleValue.h include
...
Regressed in c57975c9fd
, oops!
2025-08-12 09:41:47 -04:00
Callum Law
ed6cac89b9
LibWeb: Discard inaccuracies when interpolating rotate
2025-08-12 14:35:02 +01:00
Jelle Raaijmakers
d6761ab251
CI: Remove Microphone access step for macOS
...
This no longer seems to be necessary.
2025-08-12 14:31:41 +02:00
Kenneth Myhra
0dc2fb3781
LibWeb: Update Fetch's compute the redirect-taint concept
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
2025-08-12 07:08:33 -04:00
Kenneth Myhra
e9246c15d9
LibWeb: Pass top-level navigation initiator origin to Fetch's Request
2025-08-12 07:08:33 -04:00
dependabot[bot]
60ca15c0de
CI: Bump actions/checkout from 4 to 5
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 07:05:19 -04:00
Jelle Raaijmakers
a64cee528c
CI: Update to Xcode 16.4
...
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Our current macOS runners have Xcode 16.4 installed.
2025-08-11 18:25:34 +02:00
Callum Law
778da0175e
LibWeb: Clamp and censor top-level calc results
...
We now clamp the values returned from calc into the allowed range (where
we know it) and censor any `NaN`s to `0` both when we resolve and when
we serialize.
Gains us 76 WPT passes.
2025-08-11 17:10:04 +01:00
Callum Law
bc2ca96f50
LibWeb: Make signature of CSS::{Percentage,Number}::to_string consistent
...
By making this consistent with the other numeric data type classes we
can simplify cases where we are dealing with variants containing these
types.
2025-08-11 17:10:04 +01:00
Callum Law
3fe3adadc4
LibWeb: Remove unnecessary includes in Percentage.h
2025-08-11 17:10:04 +01:00
Callum Law
f15153ea86
LibWeb: Move formatter for Percentage
into Percentage.h
2025-08-11 17:10:04 +01:00
Callum Law
90948405fc
LibWeb: Return an intermediate struct from CSV::resolve_value
...
Returning this struct will allow us to modify the underlying value of
the `CalculationResult` without requiring us to go through the process
of constructing a whole new `CalculationResult` to return.
2025-08-11 17:10:04 +01:00