Commit graph

532 commits

Author SHA1 Message Date
Andrew Kaster
89c655529c Documentation: Promote aarch64 to more supported in the docs 2024-12-30 12:56:52 +01:00
Serge Croisé
e3826bf791 Documentation: Fix typos in SmartPointers.md 2024-12-19 19:14:47 -05:00
Ninad Sachania
6f9cdc377e Documentation: Make the SerenityOS Patterns documentation more idiomatic 2024-11-26 14:30:25 -05:00
Nico Weber
eaec863b94 Documentation: Don't use std:: in examples
We don't use `std::swap()`, so don't mention it in documentation :^)
2024-11-26 08:52:43 -05:00
Luke Wilde
772be9dec0 LibWeb: Generate IDL attributes for all supported CSS properties
The CSSOM spec tells us to potentially add up to three different IDL
attributes to CSSStyleDeclaration for every CSS property we support:
- A camelCased attribute, where a dash indicates the next character
  should be uppercase
- A camelCased attribute for every -webkit- prefixed property, with the
  first letter always being lowercase
- A dashed-attribute for every property with a dash in it.

Additionally, every attribute must have the CEReactions and
LegacyNullToEmptyString extended attributes specified on it.

Since we specify every property we support with Properties.json, we can
use that file to generate the IDL file and it's implementation.

We import it from the Build directory with the help of multiple import
base paths. Then, we add it to CSSStyleDeclaration via the mixin
functionality and inheriting the generated class in
CSSStyleDeclaration.

(cherry picked from commit aacf9b08ed8c4286c84145b52fa70f399ed0bdff;
amended to fix tiny conflict in libweb_generators.cmake, and to change
the default value of all gap-related properties from 'auto' to 'normal'
since serenity does not yet have LadybirdBrowser/ladybird#2253 and
cherry-picking that has a pretty long dependency tree. It's easy to
update the test once that is cherry-picked)
2024-11-23 22:07:22 -05:00
Sönke Holz
d3a0ae5c57 Kernel/MM: Replace Region::Cacheable with a more generic MemoryType enum
This replaces all usages of Cacheable::Yes with MemoryType::Normal and
Cacheable::No with either MemoryType::NonCacheable or MemoryType::IO,
depending on the context.

The Page{Directory,Table}::set_cache_disabled function therefore also
has been replaced with a more appropriate set_memory_type_function.
Adding a memory_type "getter" would not be as easy, as some
architectures may not support all memory types, so getting the memory
type again may be a lossy conversion. The is_cache_disabled function
was never used, so just simply remove it altogether.

There is no difference between MemoryType::NonCacheable and
MemoryType::IO on x86 for now.

Other architectures currently don't respect the MemoryType at all.
2024-11-23 19:29:50 +01:00
Jamlee
3375f7d9d9 Document: Modify the storage type of VirtualBox
It has been verified on both Windows10/VirtualBox6.1.2 and
Linux/VirtualBox7.0.6 that IDE (PIIX4) fails to start SerenityOS,
but SATA can.
2024-10-31 21:53:12 -04:00
Vroumm
509de86ba6 Documentation: Remove unnecessary newline in documentation
The commit removes an unnecessary newline character in the
documentation that was breaking the bold formatting.

(cherry picked from commit 23428c0b9ace27e989ee90109d336852786e3155)
2024-10-31 19:57:33 -04:00
Sam Atkins
d76b7744fd LibWeb/CSS: Implement legacy name aliases for properties
When a property is a "legacy name alias", any time it is used in CSS or
via the CSSOM its aliased name is used instead.
(See https://drafts.csswg.org/css-cascade-5/#legacy-name-alias)

This means we only care about the alias when parsing a string as a
PropertyID - and we can just return the PropertyID it is an alias for.
No need for a distinct PropertyID for it, and no need for LibWeb to
care about it at all.

Previously, we had a bunch of these properties, which misused our code
for "logical aliases", some of which I've discovered were not even
fully implemented. But with this change, all that code can go away, and
making a legacy alias is just a case of putting it in the JSON. This
also shrinks `StyleProperties` as it doesn't need to contain data for
these aliases, and removes a whole load of `-webkit-*` spam from the
style inspector.

(cherry picked from commit fdcece2e88b91b9ec6cf63c3466525fb77540316;
amended to:
* resolve a conflict on height: in getComputedStyle-print-all.txt
* run prettier on CSSGeneratedFiles.md)
2024-10-20 10:29:44 -04:00
Sam Atkins
a4981ae745 LibWeb: Rename StyleValue -> CSSStyleValue
This matches the name in the CSS Typed OM spec.
https://drafts.css-houdini.org/css-typed-om-1/#cssstylevalue

No behaviour changes.

(cherry picked from commit 0e3487b9ab455a7648185995363bb3b487551d40)
2024-10-10 10:08:59 -04:00
Liav A.
96e1391c23 Kernel/Devices: Remove the DeviceManagement singleton
This change has many improvements:
- We don't use `LockRefPtr` to hold instances of many base devices as
  with the DeviceManagement class. Instead, we have a saner pattern of
  holding them in a `NonnullRefPtr<T> const`, in a small-text footprint
  class definition in the `Device.cpp` file.
- The awkwardness of using `::the()` each time we need to get references
  to mostly-static objects (like the Event queue) in runtime is now gone
  in the migration to using the `Device` class.
- Acquiring a device feel more obvious because we use now the Device
  class for this method. The method name is improved as well.
2024-10-05 12:26:48 +02:00
kleines Filmröllchen
19163e79a3 Everywhere: Format Markdown with prettier
These are the exact changes necessary to get the
next commit to pass pre-commit checks.
2024-10-04 10:46:42 -04:00
kleines Filmröllchen
35935b0e54 Documentation: Document all deps for a Clang build on Debian/Ubuntu
This was missing at least llvm-19-dev. Also, mention the LLVM apt
repositories.
2024-10-04 12:41:56 +02:00
Liav A.
b93ca74d81 Kernel: Add a prctl option to enter jail mode until an execve syscall
In addition to the already existing option to enter jail mode (which is
set indefinitely), there should be a less restrictive option that should
allow exiting jail mode when doing the execve syscall.

This option will be useful for programs that need this kind of security
layer only in their runtime, but they're meant to actually initiate
another program in the end.
2024-10-03 12:39:45 +02:00
Ali Mohammad Pur
3fbdfb2096 Documentation: Add some documentation on how to configure jakt in vscode 2024-10-02 08:10:54 +02:00
Sam Atkins
0bec444a80 Documentation: Document the CSS JSON files and what they do
(cherry picked from commit 71d977b79127434e9b8feef5dc73bce0f421b450;
amended to resolve minor conflict in README.md)
2024-09-27 21:28:21 -04:00
A* Ulven
e863ba629e Documentation: Correct fuse2fs instructions for Fedora
`fuse2fs` comes from the `e2fsprogs` package in Fedora.
https://src.fedoraproject.org/rpms/e2fsprogs
2024-08-20 21:48:29 -04:00
noahdossan
b526e3c428 Documentation: Fix BuildInstructions.md capitialization
build instructions --> Build Instructions
2024-07-29 09:52:13 -04:00
Lawrence Gimenez
200634c582 Documentation: Fixed typo at BrowsingContextsAndNavigables
(cherry picked from commit 7c0aa88e99cbc70942b07870fcb44b88e0f162dc)
2024-07-28 17:34:57 -04:00
Liav A.
60cda2081b Documentation: Add document about containers 2024-07-21 11:44:23 +02:00
Liav A.
5cfc355c1e Documentation: Add a note on construction of Device objects in Kernel 2024-07-13 14:28:56 -04:00
circl
00029e096b Meta: Update the Ladybird repo notice and remove it from the README 2024-07-06 22:26:38 +02:00
Liav A.
a1a2470c1e Documentation: Add a small guide on how to allocate new major numbers
Contributors that want to add new types of character or block devices
must follow these guidelines in order to keep everything intact.
2024-07-06 21:42:32 +02:00
Ryan Castellucci
a2a6bc5348 Documentation: Fix some minor ESL grammar issues
There are a few instances where comments and documentation have minor
grammar issues likely resulting from English being the author's second
language.

This PR fixes several such cases, changing to idiomatic English and
resolving where it is unclear whether the user or program/code is
being referred to.
2024-07-03 00:17:46 +02:00
Dan Klishch
6662d5de2b AK: Introduce asynchronous streams 2024-06-13 17:40:24 +02:00
Nico Weber
bb2d80a2bb Everywhere: Gently remove the ladybird android port
With Ladybird now being its own repository, there's little reason
to keep the Ladybird Android port in the SerenityOS repository.

(The Qt port is useful to be able to test changes to LibWeb in lagom
so it'll stay around. Similar for the AppKit port, since getting
Qt on macOS is a bit annoying. But if the AppKit port is too much
pain to keep working, we should toss that too.

Eventually, the lagom browser ports should move out from Ladybird/
to Meta/Lagom/Contrib, but for now it might make sense to leave them
where they are to keep cherry-picks from ladybird easier.)
2024-06-11 19:40:08 -04:00
Diego
9721b63d13 CI+Documentation: Use WABT version 1.0.35
Required for `wast2json` to work with latest spec-tests.
2024-06-09 16:30:09 +02:00
circl
e8d4bf607c Meta: Update notice to new Ladybird organization name 2024-06-09 13:23:36 +02:00
circl
52c9a8ed93 Meta: Direct users to the Ladybird repo for future active development 2024-06-08 10:30:07 -04:00
Gurkirat Singh
e444b0aace Toolchain+Docs: Improve the way to enable clangd
Allowing an environment variable to enable/disable the build for clangd
and other toolchains will improve the developer-experience than
reconfiguring and building the toolchain manually.

Now you will have to call the command as following
	$ CLANG_ENABLE_CLANGD=ON Toolchain/BuildClang.sh
2024-05-23 00:54:20 -06:00
Timothy Flynn
b4af851c74 Meta: Update gcc version requirement to 13+
The project can no longer be compiled with gcc-12.
2024-05-17 15:40:07 -06:00
Timothy Flynn
0d7ea1bd2f CI: Remove the Sonar Cloud and PVS Studio workflow
Static analysis is great, but these workflows have not worked in a long
time, and no one was looking at the results. Our PVS Studio license and
our Sonar Cloud token have expired. Remove the workflows (at least for
now) so we don't waste CI runners and cache space. If someone is
motivated to revive these, they can revert this commit.
2024-05-11 15:43:18 -04:00
Timothy Flynn
1c20865d79 Meta: Remove outdated Azure link
We no longer use Azure for any pipeline.
2024-05-11 15:43:18 -04:00
Andreas Kling
76df5ae030 Meta: Update Clang version requirement to 17+ 2024-05-10 19:53:15 +02:00
Liav A.
897b5dfe8b Documentation+Base: Remove old remainders of RAM disk support
We don't support such configuration for a very long time, so there's no
point of keeping references to that feature.
2024-05-07 17:02:09 -06:00
Andrew Kaster
6d72d02d7e Documentation: Describe how to use add_libweb_test.py for Text tests 2024-05-07 16:29:19 -06:00
Andrew Kaster
77e890b15e Meta+Documentation+Ports: Move from C++20 to C++23
Now that oss-fuzz is on a clang commit > the 17.x release candidates,
we can start looking at some shiny new features to enable.
2024-05-06 11:46:28 -06:00
Andrew Kaster
68ec099b66 Ladybird: Update Android build to work with current LibWebView/LibCore
Also update to the latest gradle plugin versions and other dependencies
as recommended by Android Studio Jellyfish.
2024-05-06 09:31:32 -06:00
Timothy Flynn
823fdb83db Meta: Switch to clang-format-18 as the standard formatter 2024-04-24 16:50:01 -04:00
Andrew Kaster
2e385e4c12 CI: Bump Lagom CI builds to gcc-13 and clang-18
This includes Lagom Tools for Serenity builds, and the Lagom builds on
Azure.
2024-04-23 15:37:07 -06:00
Andrew Kaster
e5415f6d86 Documentation: Add more specific instructions on how to use the GN build 2024-04-08 18:49:41 -06:00
RGBCube
720feaa658 nix: Clean up files, use good practices 2024-03-25 14:19:34 -06:00
Andrew Kaster
c83e50af0b Documentation: Update for the removal of SERENITY_SOURCE_DIR requirement 2024-02-26 13:16:27 -07:00
Kemal Zebari
7fbc8bf719 Documentation: Recommend using clangd for code formatting in VSCode
Turns out clangd supports code formatting using the clang-format
engine. Because we also document another code formatter to install,
when users use both extensions VSCode will ask to choose one or the
other. Therefore, let's just choose clangd for code formatting since
it is needed anyways for code comprehension.
2024-02-24 16:45:41 -07:00
Kenneth Myhra
babddc24c2 Documentation: Add 'python3-packaging' to additional dependency list
The 'python3-packaging' depedency is required to build the GLib port
after version 2.79.0.
2024-02-07 15:04:21 +01:00
Andrew Kaster
713698d2ca Documentation: Recommend disabling clangd's IncludeCleaner feature 2024-02-05 08:04:24 -07:00
Brad Parbs
b2bb7d919d Documentation: Update link to Default.css in LibWeb docs 2024-01-31 12:34:16 -05:00
kleines Filmröllchen
3a9278b31c Documentation: Add guidelines for writing manual pages
Based on current consensus and the way our manpages are written.
2024-01-29 05:30:30 -07:00
kleines Filmröllchen
63de4d3ada Documentation: Expand package manager FAQ with pkg info
Explain a bit about what pkg is and what it isn't, and clarify that
while Serenity kinda-sorta has the beginnings of a "package manager",
it's not exactly like a typical Linux package manager with binary
software.
2024-01-06 05:01:35 -07:00
Ali Mohammad Pur
5e1499d104 Everywhere: Rename {Deprecated => Byte}String
This commit un-deprecates DeprecatedString, and repurposes it as a byte
string.
As the null state has already been removed, there are no other
particularly hairy blockers in repurposing this type as a byte string
(what it _really_ is).

This commit is auto-generated:
  $ xs=$(ack -l \bDeprecatedString\b\|deprecated_string AK Userland \
    Meta Ports Ladybird Tests Kernel)
  $ perl -pie 's/\bDeprecatedString\b/ByteString/g;
    s/deprecated_string/byte_string/g' $xs
  $ clang-format --style=file -i \
    $(git diff --name-only | grep \.cpp\|\.h)
  $ gn format $(git ls-files '*.gn' '*.gni')
2023-12-17 18:25:10 +03:30