1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 09:34:57 +09:00
Commit graph

69606 commits

Author SHA1 Message Date
Lion Kortlepel
900500c0b3 LibWeb: Remove obsolete font-style Keyword handling
`Parser::parse_font_style_value()` only produces
FontStyleStyleValues now, so we no longer need this
branch.
2025-05-22 17:39:05 +01:00
Lion Kortlepel
b1ee539e9d LibWeb: Fix font-style to slope conversion
In a recent refactor of font styles, the new FontStyleStyleValue was
introduced; however, the `to_font_slope()` function was not changed to
understand this new type. When it tries to convert such a font style to
a keyword, it fails. We then rendered the wrong font-style.
2025-05-22 17:39:05 +01:00
Timothy Flynn
d00d49ba2f Meta+Toolchain: Extract BuildVcpkg to an importable function
This lets ladybird.py import it properly, instead of invoking BuildVcpkg
main().
2025-05-22 12:21:24 -04:00
Timothy Flynn
8d4ac42205 Meta: Always invoke BuildVcpkg from ladybird.py's build command
We were previously only invoking it if the Build directory didn't exist.
We need to always invoke it to handle vcpkg baseline updates.
2025-05-22 12:21:24 -04:00
Callum Law
64f09b520d LibWeb: Be less aggressive in marking elements as not being named
When an element's ID is removed we only want to remove it from
`m_potentially_named_elements` if it is not also considered a
potentially named element due to it's name content attribute.
2025-05-22 16:56:02 +02:00
Timothy Flynn
2f9957c618 Everywhere: Format all python files with black 2025-05-22 16:21:42 +02:00
Timothy Flynn
9e8336c04f Meta: Lint python files with black
It's the industry standard nowadays. This also lets us add a flag to the
lint-python.sh script to overwrite our python files in place.
2025-05-22 16:21:42 +02:00
Tim Ledbetter
fe99c1fa7c LibCore: Increase MAX_LOCAL_SOCKET_TRANSFER_FDS
It is currently possible to hit this limit on pages with large numbers
of images. This temporary workaround prevents some WPT tests with large
numbers of images from failing.
2025-05-22 08:00:01 -04:00
Gingeh
71222df4c4 LibWeb: Update button activation behaviour to match spec
See: https://github.com/whatwg/html/pull/11248
See: https://github.com/whatwg/html/pull/11325
2025-05-22 07:55:34 +01:00
Gingeh
f1eaecc630 LibWeb: Escape "<" and ">" when serializing attribute values
See https://github.com/whatwg/html/pull/6362
2025-05-22 07:55:34 +01:00
Gingeh
fbc56f74bd LibWeb: Move popover invoker reset later
See https://github.com/whatwg/html/pull/11304
2025-05-22 07:55:34 +01:00
Ali Mohammad Pur
a3b913bf91 Tests: Import the call-indirect wpt wasm test
This found some broken wasm-js implementations, so let's make sure it
doesn't break again.
2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
83995ada1f LibWasm: Quit early in memory_fill if store_to_memory traps
We shouldn't try to run the next 'instruction' if we trap.
Unbreaks the memory-fill test in wpt.
2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
bfc1ebb2d4 LibWasm: Disable spammy 'memory access oob' debug prints 2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
d79d5b70a5 LibWasm: Validate indirect calls at runtime
This is required by the spec, and also unbreaks all of the call-indirect
wpt tests.
2025-05-22 07:35:58 +01:00
Ali Mohammad Pur
39b637a446 LibWasm+LibWeb: Throw a js stack-overflow error if wasm stack overflows
Follows the spec.
2025-05-22 07:35:58 +01:00
Timothy Flynn
9ae85e5c68 Meta: Avoid manual formation of user-variables.cmake path
We're using python specifically to be platform-independent.
2025-05-21 16:55:27 -06:00
Timothy Flynn
5b830b4c05 Meta: Be a bit less aggressive with newlines in list extensions 2025-05-21 16:55:27 -06:00
Timothy Flynn
bac61926b2 Meta: Use fewer abbreviated variable names in ladybird.py 2025-05-21 16:55:27 -06:00
Timothy Flynn
b54f273770 Meta: Ignore pyright warning for dynamic BuildVcpkg import
There are now zero pyright warnings.
2025-05-21 16:55:27 -06:00
Timothy Flynn
6a1b3f740c Meta: Avoid double-access of LADYBIRD_SOURCE_DIR environment variable
The `ensure_ladybird_source_dir` function returns the source directory.
Let's just use it. This silences a pyright warning.
2025-05-21 16:55:27 -06:00
Timothy Flynn
23a95cfb9a Meta: Add missing type hints to ladybird.py
This enables significantly better LSP integration.
2025-05-21 16:55:27 -06:00
Timothy Flynn
9d3d0c4874 Meta: Sprinkle some newlines into ladybird.py
Long functions without newlines between logical blocks of code get hard
to read for me after a while.
2025-05-21 16:55:27 -06:00
Timothy Flynn
6862985b08 Meta: Do not conflate build and run arguments
The previous commit preserved existing behavior from `master`, but made
it clear that the script was trying to use the `run` arguments in the
build step. We currently cannot specify both build-time and run-time
arguments, so only pass the positional arguments to the run step.
2025-05-21 16:55:27 -06:00
Timothy Flynn
620a2b7598 Meta: Do not pass arguments around as kwargs in ladybird.py
Use proper function arguments instead.
2025-05-21 16:55:27 -06:00
Timothy Flynn
16feb0b979 Meta: Move ladybird.py imports to the top of the file
There's no measurable benefit to hiding these in functions, even if they
are only used once (or not at all). Only the BuildVcpkg import is left
alone, as that function does some sys.path manipulation first.
2025-05-21 16:55:27 -06:00
Timothy Flynn
f87a90b67b Meta: Remove underscore prefix from functions in ladybird.py
These are meant to indicate private functions by convention, and while
we can argue these functions are "private" to this file, let's err on
the side of readablilty over every single function being prefixed.
2025-05-21 16:55:27 -06:00
Timothy Flynn
ec863a6d8b Meta: Format ladybird.py with black
We require pep8 conformance via flake8 in CI, and flake8 seems happy
with this patch. In the future, we should enforce use of black in CI
as well.

Formatted with:

    black --line-length 120 ./Meta/ladybird.py
2025-05-21 16:55:27 -06:00
Andrew Kaster
811d53d295 CI: Add nightly Windows CI job
This job uses the windows_ci_ninja preset to build just the
components and unit tests that are known to work with ClangCL on the
amd64-pc-windows-msvc target triple.

As a nightly job, its failures are non-blocking for any PRs, though
they should be fixed eventually or the job will get turned off by
email-annoyed maintainers.
2025-05-21 15:57:59 -06:00
Timothy Flynn
9f3526b080 LibWeb: Handle non-OK network responses in <object> elements
We were previously only testing for network errors, which includes e.g.
DNS resolution and connection errors. It does not include e.g. HTTP 404
responses, which is exercised by Acid 2.
2025-05-21 12:13:20 -06:00
Ashton
fc204c8732 Meta: Add addr2line command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
061a7f766c Meta: Add rebuild command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
56fd109252 Meta: Add clean command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
bfc0715455 Meta: Add vcpkg command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
08d11b9fba Meta: Add debug command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
5602d3cdf1 Meta: Add install command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
73159fe2ce Meta: Add run command to ladybird.py 2025-05-21 11:35:20 -06:00
Ashton
c51abfb2ca Meta: Add test command to ladybird.py 2025-05-21 11:35:20 -06:00
ayeteadoe
c9624d5118 Meta: Add build command to ladybird.py 2025-05-21 11:35:20 -06:00
Noah
85842c1739 LibWeb: Stub out several methods for ElementInternals
This begins implementation on form-associated custom elements.
This fixes a few WPT tests which I'm importing.

Co-authored-by: Sam Atkins <sam@ladybird.org>
2025-05-21 15:28:10 +01:00
Veeti Paananen
7c4fd9f624 LibWeb/CSS: Use case insensitive tag and attribute name in ancestor hash
Fixes #4793.
2025-05-21 08:54:40 -04:00
Shannon Booth
579730d861 LibWeb: Prefer using equals_ignoring_ascii_case
Which has an optmization if both size of the string being passed
through are FlyStrings, which actually ends up being the case
in some places during selector matching comparing attribute names.
Instead of maintaining more overloads of
Infra::is_ascii_case_insensitive_match, switch
everything over to equals_ignoring_ascii_case instead.
2025-05-21 13:45:02 +01:00
Ali Mohammad Pur
cfc241f61d LibRegex: Make the trie rewrite optimisation maintain the alt order
This is required by the spec.
2025-05-21 14:28:45 +02:00
Ali Mohammad Pur
2eccd68ba5 LibRegex: Document the append_alternative optimisation a bit 2025-05-21 14:28:45 +02:00
Timothy Flynn
95fc0a8070 LibWeb: Implement TransformStream transfer 2025-05-21 06:54:44 -04:00
Timothy Flynn
cca08ad833 LibWeb: Implement WritableStream transfer 2025-05-21 06:54:44 -04:00
Timothy Flynn
312db85a84 LibWeb: Implement ReadableStream transfer 2025-05-21 06:54:44 -04:00
Timothy Flynn
7e225b496d LibWeb: Implement transferable streams AOs
These AOs are common between transferable ReadableStream, WritableStream
and TransformStream objects.
2025-05-21 06:54:44 -04:00
Timothy Flynn
ee9d860ba2 LibWeb: Allow creating a MessagePort with a different primary interface
This is needed to transfer streams, which use message ports as the means
of transport.
2025-05-21 06:54:44 -04:00
Timothy Flynn
36da270dbe LibIPC+LibWeb: Flush MessagePort messages before closing
The spec isn't super clear on what disentagling a MessagePort means. But
we are required to send all pending messages before closing the port.

This is a bit tricky because the transport socket performs writes on a
background thread. From the main thread, where the disentanglement will
occur, we don't really know the state of the write thread. So what we do
here is stop the background thread then flush all remaining data from
the main thread.
2025-05-21 06:54:44 -04:00