767 Commits

Author SHA1 Message Date
Shannon Booth
83427086fa LibWeb/Bindings: Use IDL context to determine 'is platform object' 2026-04-24 20:08:29 +02:00
Timothy Flynn
ce7b69ff31 Meta: Move utility scripts to a subfolder
The idea is that scripts directly under Meta are meant to be run by
people. Scripts that are only imported or run by other scripts are
moved to a subdirectory.
2026-04-23 12:36:08 -04:00
Timothy Flynn
59d320a1d3 Meta: Remove configure-clangd.sh
This script:
1. Hasn't get up with our build directory structure.
2. Only works on macOS due to the way it invokes sed.
3. Arguably takes longer to figure out how to run the script than it
   does to just edit .clangd's build path.
2026-04-23 12:36:08 -04:00
Timothy Flynn
3f73528cad Meta: Move linter helpers to a subdirectory
Continuing some organization of the Meta directory. lint-ci.sh and
lint-commits.sh are left alone as "top-level" linters.
2026-04-23 07:31:19 -04:00
Andrew Kaster
5c835157c6 Documentation+Meta: Remove references to nonexistent Toolchain directory
After b1d708dd16, the Toolchain directory
was removed from the repository. Some documentation and scripts still
referenced it, so this commit removes those references. The only
remaining references are in the gitignore file, to prevent bisections
from being polluted by the presence of a Toolchain directory in the
working copy.
2026-04-21 06:56:32 -04:00
Andrew Kaster
f7c932f50e Meta: Add option to select GUI Framework to ladybird.py 2026-04-20 18:41:42 -04:00
Johan Dahlin
6c99bf74ea Documentation: Add GTK UI build prerequisites and style guide
Add GTK4/libadwaita build instructions alongside Qt.
Add Documentation/GtkFrontend.md with GTK-specific coding style
rules and a manual test checklist.
2026-04-17 11:17:56 -04:00
Jelle Raaijmakers
c3fb1be321 Everywhere: Remove GN build system
We've had some impressive efforts going into setting up and maintaining
GN as an alternative to CMake, but as of today we're still using CMake
and the GN files have bitrotted quite severely.

We've found no convincing reason to keep maintaining two build systems
in parallel - so let's remove GN and make life a bit simpler for us.
2026-04-15 18:54:19 -04:00
darshan
554891b033 Documentation: Replace 'default' CMake preset with 'Release'
The 'CMake --preset default' examples are now invalid, because the
'default' preset no longer exists.
Update all examples to use 'Release' preset.
Update the wording at line 305 to Release preset.
2026-04-08 12:30:10 +01:00
Sam Atkins
492cfc58d9 LibWeb/CSS: Add flags for element-backed & tree-abiding pseudo-elements
Generate a couple of functions for checking if a pseudo-element fits
these categories.
2026-04-08 10:37:05 +01:00
Callum Law
071b000d9f LibWeb: Only allow ASFs in descriptor values if explicitly supported
`@function` descriptors are the only ones that support ASFs, while most
descriptors enforce this through their syntaxes implicitly disallowing
ASFs, this wasn't the case for `@property/initial-value`.

We now explictly disallow ASFs unless they are marked as allowed within
`Descriptors.json`.
2026-03-30 19:57:36 +01:00
Callum Law
0219eb2ef9 LibWeb: Remove FooOrCalculated classes
These are unused since we now store values as `StyleValue`s before
used-value time, and as their resolved type (e.g. CSSPixels) after
2026-03-30 14:05:10 +01:00
Undefine
829d112327 Meta: Move Lagom CMakeLists stuff to the top level CMakeLists
This allows us to get rid of the annoying Build/.../Lagom directory
and helps to deduplicate a bunch of logic while also drastically
simplifying everything.
2026-03-29 13:59:11 -06:00
Undefine
36f79124b5 Documentation: Regenerate patch to disable debug optimizations 2026-03-29 13:59:11 -06:00
Undefine
ceca4a701b Meta: Move all compile options to one file
This is the first step to unify the common / lagom code paths which are
not relevant since the SerenityOS fork.
2026-03-29 13:59:11 -06:00
Undefine
fbbcc73fea Meta: Refactor the way the GUI framework is picked
This is largely based of off the work done by Andrew Kaster in #5918.
Having this toggle makes much more sense, especially if there will be
more UIs in the future.

Co-authored-by: Andrew Kaster <andrew@ladybird.org>
2026-03-29 13:59:11 -06:00
Callum Law
e7243f0090 LibWeb: Support custom descriptors
Some at-rules (i.e. `@function`) require us to support custom
descriptors (e.g. `--foo`).

We do this by adding `DescriptorID::Custom` and using a new
`DescriptorNameAndID` class in a bunch of places where we previously
just used `DescriptorID`
2026-03-27 11:19:28 +00:00
Callum Law
d0a868dcfb LibWeb: Add method to map from physical to logical property
This will be required in later commit.

The implementation could do with some optimization
2026-03-25 12:53:22 +00:00
Jelle Raaijmakers
a47013b4c4 Documentation: Standardize on spec question syntax 2026-03-15 09:03:20 -04:00
Timothy Flynn
3ad6fef866 Documentation: Clarify Rust installation note
* It is required for more than LibJS, so let's just remove that note.
* Only recommend using rustup to install the toolchain. System package
  managers have been found to be too out of date.
2026-03-14 11:47:44 -04:00
Undefine
c537bdf723 LibGfx: Add debug macro to enable Vulkan validation layers
Vulkan Validation Layers provides diagnostic feedback about Vulkan API
usage while live testing Ladybird. It is possible to enable this
diagnostic output without changing the code (using the Vulkan SDK),
but having it built into the code makes it very easy to enable whenever
required.

Co-authored-by: Rocco Corsi <5201151+rcorsi@users.noreply.github.com>
2026-03-04 22:27:40 +01:00
Andreas Kling
a64e13d232 Meta: Add Rust toolchain as a build dependency
There's now an ENABLE_RUST CMake option (on by default).

Install Rust via rustup in devcontainer scripts, document the
requirement in build instructions, and add Cargo's target/ directory
to .gitignore.
2026-02-24 09:39:42 +01:00
Jelle Raaijmakers
73658137b6 Documentation+Tests: Optimize PNGs using optipng
The wide gamut test file went unused, so it was deleted.
2026-02-23 13:45:04 +01:00
Timothy Flynn
372c7b9822 CI: Update the Clang pipeline to Clang 21 2026-02-18 08:02:45 -05:00
Andreas Kling
e87f889e31 Everywhere: Abandon Swift adoption
After making no progress on this for a very long time, let's acknowledge
it's not going anywhere and remove it from the codebase.
2026-02-17 10:48:09 -05:00
Ben Wiederhake
2085bdc361 Documentation: Add missing parent for AK/
Without this includedir, files like AK/Debug.h cannot be resolved.
2026-02-16 13:21:42 +01:00
Callum Law
63584321fe LibWeb: Skip property computation in some cases
There are cases where we can skip the property value computation process
because we know that the computed value will be equal to the specified
value
2026-02-13 21:54:06 +01:00
Rocco Corsi
8ea0a877a1 Documentation: Add missing 'less' command to Arch Linux dependencies
After installing Arch Linux 2026.02.01 and following the instructions
in Documentation/BuildInstructionsLadybird.md to install the
dependencies, using git command will fail due to missing pager less.
2026-02-12 00:06:27 +01:00
Sam Atkins
cdf55ea371 WebContent+LibWebView: Rename --layout-test-mode flag to --test-mode
This name has been outdated for a while, as it's enabled when running
any kind of test, not just layout tests.
2026-01-20 06:58:16 -05:00
Samq64
a47d59fa7b Documentation: Adjust Arch Linux dependencies
- Remove automake: base-devel already depends directly on it.
- Remove qt6-wayland: QT 6.10 added Wayland support to qt6-base.
- Add Python and Git: Not part of base or base-devel and are listed for
Ubuntu.
2026-01-19 12:04:17 +01:00
Andrew Kaster
f71b909bed CMake+CI: Use the same preset names on every platform
Starting with CMake 3.30 and CMakePresets version 9, the include field
supports interesting macro expansions. We can now define platform
specific presets in separate files and include them in the top-level
CMakePresets.json, while keeping the same preset names across all
platforms. This avoids some preset explosion at the cost of some mostly
empty json files for each unix platform.

The CMake minimum required in the top-level and Lagom CMakeLists.txt
have not been adjusted in this patch, as that would have the effect of
changing the default policy versions and is a bit out of scope.
2026-01-17 12:18:46 -07:00
R-Goc
aa6b588c97 Meta: Document Windows build
This updates the documentation for the state of the Windows build.
2026-01-16 11:15:16 -07:00
Callum Law
cbd07b2153 LibWeb: Don't mark whether shorthand properties are inherited
Inheritance applies to longhands individually so whether a shorthand was
marked as inherit or not is irrelevant
2025-12-29 16:11:13 +01:00
Jacob M Hunter
51114d12fb Documentation: Fix typos in build instructions 2025-12-29 09:02:34 -05:00
Sam Atkins
2b2e5a1db3 LibWeb/CSS: Support legacy selector aliases for pseudo-classes
These are replaced with the pseudo-class they are an alias of, during
parsing.
2025-12-18 14:50:27 +01:00
Ali Mohammad Pur
0d097e1d6a Meta: Pull wasm-tools in CI instead of wabt
We'll be using wasm-tools for Wasm testsuite generation in the next few
commits.
2025-12-12 19:12:53 +01:00
Callum Law
7110687155 LibWeb: Add method to get multiplicity of property 2025-12-08 11:41:13 +00:00
usebeforefree
89870f82ba Docs: Add libtool as a linux void build dependency 2025-12-06 13:08:29 -05:00
Rocco Corsi
0738be817b Documentation: Correct small typo in AdvancedBuildInstructions 2025-11-27 07:21:34 -05:00
Jelle Raaijmakers
8a02161481 Documentation: Standardize our spec note comment prefixes 2025-11-18 09:07:37 -05:00
Zaggy1024
9f44fcbded Everywhere: Remove AudioCodecPlugin and Qt Multimedia
These are no longer needed now that audio is played through
PlaybackManager.
2025-10-27 17:28:49 -07:00
Dave-London
5f963e1c52 Documentation: Remove de-listed VSCode extension reference
The "SerenityOS DSL Syntax Highlight" extension has been de-listed
from both the VS Code Marketplace and Open VSX. Remove the broken
section from the documentation to prevent confusion.
2025-10-26 12:44:44 -04:00
Undefine
865699066e Documentation: Add libdrm to FreeBSD packages 2025-10-22 13:54:54 +02:00
Sam Atkins
1e1752b33b LibWeb/CSS: Mark list-valued properties
Typed-OM requires us to have a generic way of asking "does property X
accept a list or a single value?" so this exists mainly for that.
Coordinating lists are annotated too - I'm not clear on exactly what
will be needed for those, but giving them a unique value now at the
worst will make them easier to find later.
2025-10-04 22:57:00 +02:00
R-Goc
71c8ee31fb Docs: Recommend the standard git workflow
The standard workflow for working with forks is to clone the fork and
add the main repository as upstream. Also recommend using git switch
instead of checkout.
2025-09-30 08:43:38 +02:00
Rocco Corsi
12bb266bf2 Documentation: Add libtool to openSUSE dependencies
Provide help with out-of-date openSUSE packages.

Update the libpulse-devel and qt6-multimedia-devel instructions
when dynamic linking errors are encountered.
2025-09-28 21:30:34 -04:00
Rocco Corsi
1ecb78897f Documentation: Add 'libtool' & 'perl-Time-Piece` to fedora dependencies 2025-09-28 11:26:10 -04:00
Tim Ledbetter
e1e7007707 Documentation: Add libtool as a dependency on Ubuntu 2025-09-26 13:45:45 +01:00
InvalidUsernameException
a975988f9c Meta: Update vcpkg baseline 2025-09-25 21:14:29 -04:00
Sam Atkins
050d3a58cf LibWeb/CSS: Generate canonical/compatible unit functions
These are used by `CSSNumericValue.to(unit)` which attempts to convert
to the provided unit.
2025-09-12 13:45:41 +02:00