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
ayeteadoe
a3754a7bf1
LibRegex: Annotate classes with export macro for hidden visibility
...
This fix demos the gradual opt-in migration process libraries can
take to switch to explicit symbol exports via the FOO_API macros.
2025-05-12 03:22:23 -06:00
Andrew Kaster
3dd2fbd041
LibRegex: Move StringTable ctor/dtor out of line
...
This also moves the next_serial class static into a file scope static.
The public class static was causing visibility issues with certain Linux
builds when hidden visibility was enabled. However, the current design
makes more sense anyway :^).
2025-05-12 03:22:23 -06:00
ayeteadoe
8f670950e2
Meta: Add opt-in explicit symbol export for libraries
...
On Windows, `set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)` is currently
used. But that will need to change as LibWeb exceeds the maximum
symbols that can be exported from a single executable/dll
(See LNK1189 error). So to prevent bitrot and Unix/Windows getting
out of sync, this function that generates the export header for the
target also sets the symbol visibility to hidden on Unix to ensure
Link errors also occur on Unix if the the required library components
are not annotated with the FOO_API macro.
2025-05-12 03:22:23 -06:00
ayeteadoe
0253342c1a
LibRegex: Use NO_UNIQUE_ADDRESS
in RegexMatch for Windows support
...
Clang's `x86_64-pc-windows-msvc` target requires
`[[msvc::no_unique_address]]`, which is properly set in the
`NO_UNIQUE_ADDRESS` macro in `AK/Platform.h`. Without this, building
on Windows fails due to `-Wunknown-attributes`.
2025-05-12 03:22:23 -06:00
Andrew Kaster
fc6237325b
CI: Install clang-tools-19 to ensure clang-scan-deps is available
2025-05-12 03:22:23 -06:00
Shannon Booth
b478274e0b
LibWeb: Use infra sorting for URLSearchParam's sort()
...
Adopts editiorial change to the URL spec of:
59979a1
2025-05-12 11:20:32 +02:00
Shannon Booth
74334ea1ce
LibWeb: Only use code unit length for is_code_unit_prefix
...
Fixes a crash in the included test.
2025-05-12 11:20:32 +02:00
Shannon Booth
1cd09724f1
LibWeb/Infra: Ignore OOM for utf16 conversion in 'is code unit prefix'
2025-05-12 11:20:32 +02:00
Psychpsyo
91159df0dd
LibWeb: Draw text even if it needs to go into a 0-size inline box
2025-05-12 10:49:46 +02:00
Andreas Kling
096eed35cc
LibWeb: Avoid O(n^2) traversal in play-or-cancel-animations logic
...
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (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, 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
The play_or_cancel_animations_after_display_property_change() helper
was being called by Node::inserted() and Node::removed_from() and then
recursing into the shadow-including subtree.
This had quadratic complexity since inserted() and removed_from() are
themselves already invoked recursively for everything in the
shadow-including subtree.
Only one caller of this API actually needed the recursive behavior,
so this patch moves that responsibility to the caller and puts the logic
in style recomputation instead.
1.02x speedup on Speedometer's TodoMVC-jQuery.
2025-05-11 20:22:17 +02:00
Timothy Flynn
1a9e78a774
LibWebView: Disable autocomplete when search is disabled
...
Search suggestions don't make much sense when search itself is disabled.
We now auto-disable autocomplete when search is disabled.
2025-05-11 11:48:02 -04:00
Timothy Flynn
9267172e28
Base: Simplify enabling search and autocomplete
...
Currently, enabling search is a bit hokey. You have to click a checkbox
to get the search engines to show up, then you have to click a drop down
to select an engine. Let's go with a simpler approach; now you only have
to interact with the drop down.
2025-05-11 11:48:02 -04:00
Timothy Flynn
840157191d
Base: Name the settings .dialog-description
class a bit more generic
...
It will be used outside of dialogs.
2025-05-11 11:48:02 -04:00
Andreas Kling
a0864dbb26
LibJS: Make mapped arguments objects way less allocation-happy
...
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
By following the spec to the letter, our mapped arguments objects ended
up with many extra GC allocations:
- 1 extra Object for the internal [[ParameterMap]].
- 2 extra NativeFunctions for each mapped parameter accessor.
- 1 extra Accessor to hold the aforementioned NativeFunctions.
This patch removes all those allocations and lets ArgumentsObject model
the desired behavior in custom C++ instead of using script primitives.
1.06x speedup on Speedometer's TodoMVC-jQuery.
2025-05-11 14:00:40 +02:00
Timothy Flynn
a71d909b39
AK: Remove unused Error functionality
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
2025-05-10 21:19:46 -04:00
Timothy Flynn
08e82ddaf0
LibCore: Prefer Error::is_errno over Error::is_syscall
...
These are the only users of the latter, so let's just use is_errno
(which will effectively give us the same result) to avoid confusion
over these.
2025-05-10 21:19:46 -04:00
Timothy Flynn
95441dabd5
AK: Define some simple getters in a single line
...
This matches our coding style everywhere else. clang-format used to have
trouble with these, but it doesn't any longer.
2025-05-10 21:19:46 -04:00
Timothy Flynn
dceed08058
AK+LibCore: Avoid double-negation of syscall error values
...
This is a remnant from SerenityOS. Let's avoid confusion as to why we
negate errno when we call Error::from_syscall just to negate it again
when we store the error code.
2025-05-10 21:19:46 -04:00
Timothy Flynn
24ac5e2eee
AK+LibCore: Remove SerenityOS handling from Error and Core::System
...
This is just to make some syscall error handling changes simpler.
2025-05-10 21:19:46 -04:00
Timothy Flynn
4f132b9e40
AK: Remove Error::from_string_view_or_print_error_and_return_errno
...
This was for use within Serenity's kernel. In Ladybird, it is just some
indirection to Error::from_string_view.
2025-05-10 21:19:46 -04:00
Timothy Flynn
e2b863ed3f
AK: Remove unused Jakt methods
2025-05-10 21:19:46 -04:00
InvalidUsernameException
029bcf13fd
Libweb: Invalidate layout for the value
-attribute of li
-elements
2025-05-11 01:14:31 +02:00
InvalidUsernameException
370098514a
LibWeb: Invalidate layout for ol
-attributes that affect it
2025-05-11 01:14:31 +02:00
Andreas Kling
263b125782
LibWeb: Let HTMLTokenizer walk over code points instead of UTF-8
...
Instead of using UTF-8 iterators to traverse the HTMLTokenizer input
stream one code point at a time, we now do a one-shot conversion up
front from the input encoding to a Vector<u32> of Unicode code points.
This simplifies the tokenizer logic somewhat, and ends up being faster
as well, so win-win.
1.02x speedup on Speedometer 2.1
2025-05-11 01:13:20 +02:00
R-Goc
7cccdb3bcf
AK: Fix error is_errno
...
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
Previously the check for is_errno did not check if the error kind was
syscall, which also set errno so that behavior was incorrect.
2025-05-10 11:25:12 -04:00
Shannon Booth
29ac95a3e2
LibJS: Remove unused VM::on_call_stack_emptied
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
2025-05-10 08:19:03 -04:00