Timothy Flynn
313e490fb6
Meta: Extract the required clang-format version to a variable
...
Rather than writing the version N times in this script, let's extract it
to a variable for easier use.
2025-05-14 02:01:59 -06:00
Timothy Flynn
70d2b0b6f3
CI: Update the Clang pipeline to Clang 20
2025-05-14 02:01:59 -06:00
Timothy Flynn
a65bbae4c9
CI: Update the GCC pipeline to GCC 14
...
Although GCC 15 is released, it is not available on Ubuntu 22.04 LTS via
the ubuntu-toolchain-r/test PPA.
2025-05-14 02:01:59 -06:00
Timothy Flynn
6fc7483757
Documentation: Bump OpenIndiana's clang version
...
Clang 19 seems to be the newest available:
https://pkg.openindiana.org/hipster/en/search.shtml?token=clang&action=Search
It also looks like they have newer versions of GCC now, but let's just
advise clang on this system that no contributer is using.
2025-05-14 02:01:59 -06:00
Timothy Flynn
0e4a2f760f
Documentation: Refer to specific compiler versions in fewer places
...
The required and recommended compiler versions are sort of scattered
across several documents. Let's list them in a single document, and
have other documents refer to that location.
The language here intentionally recommends the same compiler versions
used in CI. The find_compiler.sh script can be updated with the
minimum known good version.
2025-05-14 02:01:59 -06:00
Timothy Flynn
85ee56a702
CI: Use clang for the test262 build
...
We currently have optimizations that apply only to clang, so we might as
well make use of them.
2025-05-14 02:01:59 -06:00
Timothy Flynn
3d59efa7e1
CI: Use clang for the fuzzer's lagom tools build
...
It's kind of weird to be mixing gcc and clang here.
2025-05-14 02:01:59 -06:00
Andrew Kaster
c7cfd3cb1e
CI: Disable LTO by default for static GCC builds
...
lto1 uses more memory than exists in the known universe when building
ladybird, so disable LTO for static GCC builds.
2025-05-14 02:01:50 -06:00
Andrew Kaster
905c5ecb4c
AK: Silence -Wfree-nonheap-object more generally in Function for gcc
...
We were already silencing it at the site of the delete call, but gcc in
distribution mode is more aggressive about inlining and still sees a
delete that it doesn't like.
2025-05-14 02:01:50 -06:00
mikiubo
89e0896cd7
LibWeb: Implement XML Char validation for Text node serialization
...
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, 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
With this fix, the second test in domparsing/innerhtml-01.xhtml passes.
2025-05-14 18:18:08 +12:00
Glenn Skrzypczak
5c578b6057
LibWeb/HTML: Implement report_validity
...
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, 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 implements the previously stubbed out `report_validity` method.
The specification is not very clear on how to exactly report the
validity. For now, we bring the first visible invalid control into
view and focus it. In the future, however, it would make sense to
support more complex scenarios and be more aligned with the other
implementations.
2025-05-14 09:39:12 +12:00
stelar7
296d9d74d8
LibWeb/IDB: Implement IDBCursorWithValue interface
2025-05-13 10:48:40 -06:00
stelar7
9c51326fcb
LibWeb/IDB: Implement IDBCursor::delete
2025-05-13 10:48:40 -06:00
stelar7
cf84a98bab
LibWeb/IDB: Implement IDBCursor::update
2025-05-13 10:48:40 -06:00
stelar7
3154ac8988
LibWeb/IDB: Implement IDBCursor::continuePrimaryKey
2025-05-13 10:48:40 -06:00
stelar7
6afa2c8eee
LibWeb/IDB: Implement IDBCursor::advance
2025-05-13 10:48:40 -06:00
stelar7
82d17fa17e
LibWeb/IDB: Sort IDBCursor fields according to IDL
2025-05-13 10:48:40 -06:00
Psychpsyo
a0be82b2cb
LibWeb: Move containment checks to Layout::Node
...
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, 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
It fits better there and avoids having to reach into the Element
all the time.
2025-05-13 15:30:14 +03:00
Psychpsyo
4989c5c793
LibWeb: Add paint containment clipping
...
The contain-paint-stacking-context-001a.html test has been removed
for now because it has a 1px tall blue line at the top that should
not be there. With paint containment, this line is removed only in
the actual test case, but not in the reference. This is because of
the font that we use in testing and happens in Chromium as well if
the test is run with that font.
2025-05-13 15:30:14 +03:00
Psychpsyo
ed7374783d
LibWeb: Enable different overflow along the x and y axis
2025-05-13 15:30:14 +03:00
Psychpsyo
85883ee5ce
LibWeb: Deduplicate clipping code
...
This makes it so that PaintableWithLines no longer has its own
bespoke clipping logic, using the same code as regular scroll/
overflow clipping.
2025-05-13 15:30:14 +03:00
Aliaksandr Kalenik
155e60a5ff
LibJS: Use iteration_step()
in IteratorNextUnpack instruction
...
Allows us to avoid code duplication for builtin iterators fast path.
2025-05-13 15:14:25 +03:00
Aliaksandr Kalenik
bb53485dea
LibJS+LibWeb: Add fast path for builtin iterators in iterator_step()
...
We already have fast path for built-in iterators that skips `next()`
lookup and iteration result object allocation applied for `for..of` and
`for..in` loops. This change extends it to `iterator_step()` to cover
`Array.from()`, `[...arr]` and many other cases.
Makes following function go 2.35x faster on my computer:
```js
(function f() {
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let i = 0; i < 1000000; i++) {
let [a, ...rest] = arr;
}
})();
```
2025-05-13 15:14:25 +03:00
Psychpsyo
31301ef08b
LibWeb: Add support for trees of pseudo-elements
...
This is needed for CSS view transitions.
2025-05-13 12:38:42 +01:00
stelar7
a2ecafb968
LibWeb/IDB: Use enum flags in IDBKeyRange
2025-05-13 22:46:43 +12:00
stelar7
a5023ec053
LibWeb/IDB: Use enum flags in IDBCursor
2025-05-13 22:46:43 +12:00
Shannon Booth
41b060be81
LibDiff: Remove a bunch of unused code
...
We have no need to support normal or context diffs in ladybird,
as well as the ability to parse and apply patches.
2025-05-13 12:46:34 +02:00
Tim Ledbetter
03e34db9f8
LibWeb: Interpolate the content-visibility
property correctly
2025-05-13 11:24:05 +01:00
Tim Ledbetter
882ad4726e
LibWeb: Interpolate the visibility
property correctly
2025-05-13 11:24:05 +01:00
Psychpsyo
f52df06a2a
LibWeb: Do not forget to unapply empty masks
2025-05-13 10:31:08 +02:00
Andrew Kaster
0402179331
CMake: Disable C++20 module scanning
...
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, 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
We don't use C++20 modules, and CMake will look for clang-scan-deps in
clang builds if this setting is not disabled. This is a problem when
clang-scan-deps is not installed, as it will cause CMake to fail to link
hidden visibility libraries properly.
2025-05-12 23:43:59 -06:00
Psychpsyo
c105f99547
Meta: Add doctypes to all grid layout tests
2025-05-13 03:49:32 +03:00
Psychpsyo
1fa3b16c8c
Meta: Add doctypes to some flex layout tests
...
Lint Code / lint (push) Waiting to run
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
This adds doctypes to all the remaining flexbox layout tests.
2025-05-12 23:15:06 +01:00
stelar7
a11efe3139
LibWeb/IDB: Sort IDBObjectStore according to the IDL
2025-05-13 08:27:52 +12:00
stelar7
7250aa0b6b
LibWeb/IDB: Implement IDBObjectStore::getAllKeys
2025-05-13 08:27:52 +12:00
stelar7
927237c736
LibWeb/IDB: Implement retrieve_multiple_keys_from_an_object_store
2025-05-13 08:27:52 +12:00
stelar7
c56ec49ce6
LibWeb/IDB: Implement IDBObjectStore::openKeyCursor
2025-05-13 08:27:52 +12:00
stelar7
c700bfaaf1
LibWeb/IDB: Implement IDBObjectStore::getAll
2025-05-13 08:27:52 +12:00
stelar7
ddaae635ac
LibWeb/IDB: Implement retrieve_multiple_values_from_an_object_store
2025-05-13 08:27:52 +12:00
stelar7
7f98d708ef
LibWeb/IDB: Implement IDBObjectStore::getKey
2025-05-13 08:27:52 +12:00
stelar7
c47ddf11ba
LibWeb/IDB: Implement retrieve_a_key_from_an_object_store
2025-05-13 08:27:52 +12:00
Andrew Kaster
09c794d40d
Tests: Bump lit to version 18.1.8 for ClangPlugins tests
2025-05-12 16:00:55 -04:00
Andrew Kaster
27503a5320
Tests: Invoke clang frontend instead of cc1 in ClangPlugin tests
...
Reverts 7fcedae610
at the same time
2025-05-12 16:00:55 -04:00
Daniel Bertalan
a2167f126d
Everywhere: Fix trivial -Wunnecessary-virtual-specifier
instances
...
- `Threading::Thread` is not polymorphic, there is no need for a virtual
destructor.
- `HTMLAnchorElement::has_download_preference` isn't overridden by
anything.
This warning was introduced in llvm/llvm-project#131188 .
2025-05-12 11:40:45 -06:00
Daniel Bertalan
456d750539
LibJS: Make generate_labelled_evaluation
non-virtual if possible
...
We don't override anything with definitions of this function in
`SwitchStatement` and `LabelledStatement`. Also, we can make the
`IterationStatement` abstract, there is no need to add a fallback
error-generating stub implementation of this method.
2025-05-12 11:40:45 -06:00
Daniel Bertalan
6b08a52c8b
LibGC: Make destructors non-virtual where possible
...
`ConservativeVector`, `RootVector` and `RootHashMap` are final types,
and their base classes have a protected destructor, so when their
destructor is called, the static and dynamic types will be the same
(can't destruct them through a pointer to a base or derived class).
Therefore, there is no need for a virtual destructor.
This fixes the newly introduced `-Wunnecessary-virtual-specifier`
Clang warning (llvm/llvm-project#131188 ).
2025-05-12 11:40:45 -06:00
Mikkel Krautz
c48a78e37f
LibWeb: Fix copyright headers with inconsistent > characters
2025-05-12 11:21:04 -06:00
Andrew Kaster
c0f0f45b6e
Documentation: Add clang-tools to the Ubuntu/Debian build instructions
...
When using non-BFD linkers, something about our CMake setup causes
visibility checks from GenerateExportHeader to fail when clang-scan-deps
is not found.
2025-05-12 10:40:43 -06:00
Aliaksandr Kalenik
f405d71657
LibJS: Disable optimization in IteratorNextUnpack if next() is redefined
...
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, 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
81b6a11
regressed correctness by always bypassing the `next()` method
resolution for built-in iterators, causing incorrect behavior when
`next()` was redefined on built-in prototypes. This change fixes the
issue by storing a flag on built-in prototypes indicating whether
`next()` has ever been redefined.
2025-05-12 07:41:29 -04:00
Andrew Kaster
a6d9e8acd8
CMake: Only find pthread and mman on Windows once
...
This reduces a lot of CMake spam when configuring
2025-05-12 03:22:23 -06:00