Commit graph

62395 commits

Author SHA1 Message Date
⭐caitp⭐
7dc28a20d0 Meta: Permit specifying a build preset in ./Meta/ladybird.sh
Retrieve the build preset with environment variable BUILD_PRESET,
which if unset is initialized to "default".
2024-07-05 10:33:11 -06:00
Diego
84acd1138c Documentation: Add nvim-lspconfig support to Neovim config guide
`nvim-lspconfig` has become more popular recently and is from the
Neovim organization directly. Headers have also been shifted to match
other documentation files.
2024-07-05 10:11:53 -06:00
Francesco Gazzetta
210e6edd9f LibWeb: Get skia version constraint from vcpkg.json
This way we only have to update it in one place.
2024-07-05 09:56:42 -06:00
Francesco Gazzetta
543b415b7d LibWeb: Allow using system skia
unofficial-skia is a vcpkg-specific package. With this change ladybird
can be built against skia as provided by system package managers such as
guix, mingw, and (soon) nix. All those packages include a .pc file, so
we use pkg-config.
2024-07-05 09:56:42 -06:00
Saksham Mittal
7da8a372df Meta: Update devcontainer install script with new deps 2024-07-05 09:50:45 -06:00
Dennis Camera
186057bf92 AK: Add TODO_PPC* assertions 2024-07-05 09:50:13 -06:00
Dennis Camera
14d26397f0 LibWeb: Add user agent CPU string for PowerPC 2024-07-05 09:50:13 -06:00
Dennis Camera
ffe2f16c58 AK: Add AK_IS_ARCH defines for PowerPC CPU architecture 2024-07-05 09:50:13 -06:00
Dennis Camera
b54a1c6284 AK: Implement ShortString for big-endian 2024-07-05 09:49:23 -06:00
Dennis Camera
b4d13d060a AK: Fix {:c} formatter for big-endian 2024-07-05 09:48:15 -06:00
Dennis Camera
1bc44376c0 AK: Implement floating-point conversions for big-endian 2024-07-05 09:47:08 -06:00
Thomas Klausner
c99674c6ac LibGfx: Fix build on NetBSD
NetBSD provides its own popcount() function.
2024-07-05 09:46:02 -06:00
Daniel Bertalan
947606afcf LibGfx: Do not draw U+FFFD for unknown glyphs
The Replacement Character (U+FFFD) is most commonly used to signal a
text encoding error, i.e. when a stream of bytes couldn't be converted
to a sequence of code points. For glyphs that don't exist in a
particular font, our rendering logic already does the right thing by
drawing empty boxes (`.notdef`); let's not forcibly turn these into
U+FFFD during rendering.
2024-07-05 13:42:07 +02:00
Jamie Mansfield
0a3082ef05 LibWeb: Add missing edge visit for TextTrack in HTMLTrackElement 2024-07-05 09:17:01 +02:00
matjojo
b7e505365c LibWeb: Save float-intrusion for marker before list elements layout
... to prevent that left-floating elements inside the list element
push the list marker into the (non-floating) content of the list
element.
2024-07-05 07:31:42 +02:00
Tim Ledbetter
23eba28c22 Everywhere: Remove Serenity specific code from tests
We no longer run our tests on Serenity.
2024-07-05 07:29:51 +02:00
Tim Ledbetter
66662496e6 LibWeb: Remove ResourceLoader::emit_signpost()
This was only ever used within SerenityOS. The current implementation
of this method did nothing.
2024-07-05 07:15:44 +02:00
Dario Castañé
be26cc106c Documentation: Update BuildInstructionsLadybird.md for openSUSE
Adding packages that are required to compile without errors
2024-07-05 07:15:29 +02:00
Jamie Mansfield
67e3ac8916 LibWeb/HTML: Stub TextTrack IDL interface 2024-07-05 07:15:04 +02:00
Luke Warlow
a9669639ce LibWeb: Implement popover property and attribute
The popover property now reflects the attribute.

It cannot currently use the Reflect IDL concept because the empty string
value is special cased.
2024-07-05 07:14:50 +02:00
Jamie Mansfield
197f57f5d2 Ladybird/Qt: Add actions to set navigator compatibility mode 2024-07-05 07:14:03 +02:00
Jamie Mansfield
1128375dff LibWeb: Support Gecko and WebKit navigator compatibility modes
This will log a debug message when calls are made to the
NavigatorIDMixin that make decisions based on the compatibility mode.
2024-07-05 07:14:03 +02:00
Aliaksandr Kalenik
e713de115c LibWeb+LibCore: Use Vulkan backend for Skia on Linux
Skia now uses GPU-accelerated painting on Linux if Vulkan is available.
Most of the performance gain is currently negated by reading the GPU
backend back into RAM to pass it to the Browser process. In the future,
this could be improved by sharing GPU-allocated memory across the
Browser and WebContent processes.
2024-07-05 07:13:13 +02:00
Aliaksandr Kalenik
70db2bff92 LibWeb: Do not create Metal context when Skia painter is not enabled 2024-07-05 07:13:13 +02:00
rmg-x
ae983a2ef7 LibWeb: Add log_filtered_request() method in ResourceLoader
This will reduce log noise when visiting sites
that have a lot of filtered content.

Previously, red error text would be displayed in
the logs for each filtered URL.
2024-07-04 21:45:30 +01:00
Diego
fce8ed1563 LibWasm: Validate potentially empty else branch in if instruction 2024-07-04 21:47:07 +02:00
Braydn
24adb1c452 LibWeb: Add Web Worker Origin Inheritance
Fetch requests from web workers fail CORS checks because the origin is
not inherited from the outside settings. Ensure web worker origin is
correctly inherited from outside settings
2024-07-04 11:43:25 -06:00
Dennis Camera
176e3ba16a LibCrypto: Use ARM C Language Extensions (ACLE) for CRC32 intrinsics
The __builtin_arm_* intrinsics don't exist on all ARMv8 systems.
Use the standardized ACLE intrinsics, instead.
2024-07-04 16:53:13 +02:00
Jamie Mansfield
61e616c974 LibWeb: Implement Navigator.doNotTrack 2024-07-04 16:42:34 +02:00
Jamie Mansfield
e34254298a Ladybird/Qt: Add setting for sending DNT header 2024-07-04 16:42:34 +02:00
Jamie Mansfield
fb20326979 LibWeb: Support sending DNT header with requests 2024-07-04 16:42:34 +02:00
Aliaksandr Kalenik
830b287c46 Everywhere: Remove GPU painter and AccelGfx
GPU painter that uses AccelGfx is slower and way less complete compared
to both default Gfx::Painter and Skia painter. It does not make much
sense to keep it, considering Skia painter already uses Metal backend on
macOS by default and there is an option to enable GPU-accelerated
backend on linux.
2024-07-04 14:47:02 +02:00
Kemal Zebari
9dd14c6a7f Documentation: Remove LibGUI mention in VSCode configuration
Since this fork no longer supports LibGUI, we should not mention
it here to avoid confusion from contributors who aren't familiar
with SerenityOS.
2024-07-04 14:46:46 +02:00
mendhak
24651233b0 Documentation: Add missing libssl dependency for Ubuntu 2024-07-04 14:46:28 +02:00
Bastiaan van der Plaat
c81a640f3e LibWeb/CSS: Serialize transform scale percentage values as numbers 2024-07-04 14:41:35 +02:00
Tim Ledbetter
34741d09c6 LibWeb: Update Range::set_base_and_extent() to the latest spec text
This allows it to work with content inside shadow roots.
2024-07-04 14:38:56 +02:00
Tim Ledbetter
e5d1261640 LibWeb: Don't update selection if start and end node roots differ
This allows selection to work within shadow roots and prevents the
selection being cleared if the mouse moves outside of the current
document or shadow root.
2024-07-04 14:38:56 +02:00
Timothy Flynn
698a95d2de AK: Decode paired UTF-16 surrogates in a JSON string
For example, such use is seen on Twitter.
2024-07-04 14:16:16 +02:00
Timothy Flynn
c39a3fef17 AK: Make a couple of GenericLexer helper methods protected
We will want to use the exact behavior of these methods in JsonParser.
2024-07-04 14:16:16 +02:00
circl
ceb9c3b797 LibWeb+UI: Add tooltip overriding and use it for <video> tags
This call is used to inform the chrome that it should display a tooltip
now and avoid any hovering timers. This is used by <video> tags to
display the volume percentage when it is changed.
2024-07-04 14:15:51 +02:00
circl
0f7623dd83 LibWeb+UI/Qt: Display 'title' tooltips only when the mouse stops moving
Now instead of sending the position in which the user entered the
tooltip area, send just the text, and let the chrome figure out how to
display it.

In the case of Qt, wait for 600 milliseconds of no mouse movement, then
display it under the mouse cursor.
2024-07-04 14:15:51 +02:00
Luke Warlow
6623177265 LibWeb: Implement support for scrollbar-gutter
This property is now correctly parsed.

Ladybird always uses overlay scrollbars so this property does nothing.
2024-07-04 13:22:40 +02:00
Timothy Flynn
bdb24f950e Revert "Ladybird: Load about:blank when opening a new tab"
This reverts commit 722a669b22.
2024-07-04 11:55:45 +02:00
Timothy Flynn
94a0b941f7 Base: Replace the new tab page with a dark mode friendly blank page
about:blank in most other browsers has a white background regardless of
dark mode. So rather than messing with that, remove the contents of the
NTP for now, and set a dark background-color in dark mode.
2024-07-04 11:55:45 +02:00
Jason Fairchild
afaaa23c70 Documentation: Add automake as dependency on Arch, Fedora and openSUSE 2024-07-03 23:26:04 -06:00
Daeraxa
cf64118821 Documentation: Add libavcodec-free-devel for Fedora build 2024-07-03 20:06:13 -06:00
Tim Ledbetter
e76ad9492e LibWeb: Elide boundary checks when constructing find in page ranges
Previously, unnecessary boundary checks were being done when
constructing the range objects used to represent find in page matches.
These checks are no longer performed leading to a significant speedup
when performing find in page queries on pages containing a lot of text.
2024-07-03 15:35:14 +02:00
Tim Ledbetter
156c1083e9 LibWeb: Cache text blocks used by find in page
The first step of the find in page algorithm is to walk the layout tree
of each document on the page and construct a list of strings against
which to search for matches.

Previously, this was being done for each new query, even when the
page content hadn't been updated. The output of this process is now
cached in the viewport node of the associated document. This ensures
that this process is no longer repeated unnceessarily.
2024-07-03 15:35:14 +02:00
Victor Tran
31698281b6 LibWeb: Stop deadlocking on unit tests
Unit tests on macOS deadlock because the WebContent process is waiting
for the next opportunity to render before a screenshot is taken. For
some reason unknown to myself, this opportunity never arrives. In
order to not deadlock, screenshot requests are now also processed
separately from rendering.
2024-07-03 15:01:03 +02:00
Samuel Eisenhandler
7de669dc07 LibWebView: Append remaining source after consuming all tokens
Since "Character" tokens do not have an "end position", viewing source
drops the source contents following the final non-"Character" token.

By handling the EOF token and breaking out of the loop, we avoid this
issue.
2024-07-03 08:59:53 -04:00