Commit graph

620 commits

Author SHA1 Message Date
Timothy Flynn 9249f8bda8 Ladybird: Convert theme configuration to resource URIs 2023-11-06 09:39:59 +01:00
Timothy Flynn 818471b7a7 BrowserSettings+Ladybird: Convert home / new tab page to resource URIs 2023-11-06 09:39:59 +01:00
Timothy Flynn 1b30b510b9 Ladybird: Load all icons uses Core::Resource URIs 2023-11-06 09:39:59 +01:00
Daniel Bertalan 63a2039b51 Ladybird/AppKit: Fix -Wmissing-field-initializers with Clang 18+
Clang now warns about missing field initializers even when using
designated initializers.
2023-11-05 13:41:13 -07:00
Timothy Flynn bb43bd2dee Ladybird: Remove the now-unused ModelTranslator 2023-11-05 09:11:23 +01:00
Timothy Flynn 55b53e98d7 Ladybird/Qt: Convert the inspector widget to the WebView model class
This creates a Qt-specific wrapper around the WebView model classes and
uses it for the inspector widget tree / table view models.
2023-11-05 09:11:23 +01:00
Timothy Flynn c72b42ebb2 Ladybird/Qt: Add a couple of missing header includes
These are currently included implicitly, but this will no longer be the
case after upcoming refactoring.
2023-11-05 09:11:23 +01:00
Timothy Flynn bbdd624d50 Ladybird: Do not require Qt6 Multimedia if PulseAudio is available
If PulseAudio is available, the Qt6 audio plugin will never be used. So
let's remove it from the build.

Note that on macOS, the Qt6 audio plugin will be used if the Qt chrome
is enabled. Otherwise, Audio Unit will be used for the AppKit chrome.
2023-11-04 08:36:34 -04:00
Andrew Kaster bc6f19da0e Ladybird: Disable Qt autogeneration for ImageDecoder
This fixes the macOS Qt build.
2023-11-02 12:34:02 -06:00
Andrew Kaster c990db0913 Ladybird/Android: Create a service for ImageDecoder
This follows the pattern for the other services spawned by WebContent.
The notable quirk about this service is that it's actually spawned by
the ImageCodecPlugin rather than in main.cpp in the non-Android port.

As a result we needed to do some ifdef surgery to get all the pieces
in place. But we can now load images in the Android port again :^).
2023-11-01 14:30:30 -06:00
Andrew Kaster a54baa2c34 Ladybird/Android: Use new capitalized name for main Ladybird shlib 2023-11-01 14:30:30 -06:00
Andrew Kaster 4956514dfb Ladybird/Android: Make bind_service helper public in WebContentService
We'll need to call this from other Ladybird files for future services.
2023-11-01 14:30:30 -06:00
Andrew Kaster 5b03135c46 Ladybird/Android: Set up a Core::Resource implementation in services
Use the File implementation until we get around to creating one that
uses AssetManager
2023-11-01 14:30:30 -06:00
Andrew Kaster c9499a9755 Ladybird: Install ImageDecoder 2023-11-01 14:30:30 -06:00
Andrew Kaster 40363f54d8 WebContent: Use the accelerated_graphics CMake helper
Instead of relying on AK_OS_LINUX, actually use the more accurate
HAS_ACCELERATED_GRAPHICS define to figure out if we should try to use
the generic LibAccelGfx GPU painter.
2023-11-01 14:30:30 -06:00
networkException 31a17b42d0 Ladybird: Use gcc13 in ladybird.nix 2023-10-31 18:09:14 +01:00
networkException 2cf3c3913a Ladybird: Use pkg-config instead of pkgconfig in ladybird.nix
pkgconfig was renamed to pkg-config in nixpkgs.

See e773b9abe9
2023-10-31 18:09:14 +01:00
Aliaksandr Kalenik b6732b0234 Ladybird+WebContent: Add option to use GPU painter
Adds `--enable-gpu-painting` param to enable painting command executor
that uses LibAccelGfx.
2023-10-29 17:13:23 +01:00
Andrew Kaster 810bbeaed1 Ladybird: Set Settings org to SerenityOS to load proper plist on macOS 2023-10-27 16:51:03 -06:00
Timothy Flynn f52e4fa5c2 Ladybird: Install the ImageDecoder binary to the macOS app bundle 2023-10-27 10:08:59 -04:00
Lucas CHOLLET 5c7e5cc738 Ladybird: Decode images out of process
This patch brings a service to handle image decompression. With it comes
security enhancement due to the process boundary. Indeed, consequences
of a potential attack is reduced as only the decoder will crash without
perturbing the WebContent process.
It also allows us to display pages containing images that we claim to
support but still make us crash, like for not-finished-yet decoders.

As an example, we can now load https://jpegxl.info/jxl-art.html without
crashing the WebContent process.
2023-10-27 07:26:32 +02:00
Andrew Kaster 4dbb73b360 Meta+Documentation+Ladybird: Update places that use ladybird filename
Fallout from 01feae24b2

These places referred to the filename "ladybird" directly, but we
changed the OUTPUT_NAME of ladybird to "Ladybird".
2023-10-27 07:11:35 +02:00
David Lindbom 01feae24b2 Ladybird: Fix capitalization in AppKit menu bar 2023-10-26 18:02:21 -06:00
Timothy Flynn 1682e46df9 Ladybird+Meta: Make the AppKit chrome the default on macOS
The Qt chrome is still available and may be enabled with CMake.
2023-10-26 11:00:56 +02:00
Timothy Flynn 4c479b0aaa Ladybird/AppKit: Add a context menu item to search for the selected text 2023-10-24 07:28:30 +02:00
Timothy Flynn 66c8400384 Ladybird/Qt: Add a context menu item to search for the selected text 2023-10-24 07:28:30 +02:00
Timothy Flynn c8c3d00615 LibWebView: Rename find_search_engine to find_search_engine_by_name
We will also need to search by URL in the Serenity chrome.
2023-10-24 07:28:30 +02:00
Timothy Flynn f885839ba5 Ladybird/AppKit: Support searching with a search engine in the URL bar
The setting for the search engine to use is currently ephemeral. Once we
have a settings dialog, we can implement this setting there, and persist
that setting.
2023-10-23 12:12:36 -04:00
Timothy Flynn e7d977f58d Ladybird/Qt: Display drown-down settings using QPushButton
The default behavior of QPushButton is much closer to what we want from
a drop-down menu, as shown in the QPushButton::setMenu documentation:
https://doc.qt.io/qt-6/qpushbutton.html#setMenu

This also results in much less of a "squished" look than before.
2023-10-23 12:12:36 -04:00
Timothy Flynn 63577e8d1c Ladybird/Qt: Increase default size of the settings dialog
The current size is too small to be able to read the new tab URL. Use
the `resize` API rather than setting a fixed-size as well, to allow the
user to resize the dialog themselves.
2023-10-23 12:12:36 -04:00
Timothy Flynn f8f0c5459d Ladybird/Qt: Migrate to LibWebView for search engines 2023-10-23 12:12:36 -04:00
Timothy Flynn 573a2619a5 Ladybird/AppKit: Support highlighting the eTLD+1 in the location bar 2023-10-20 07:18:54 +02:00
Timothy Flynn e7f48abb74 Ladybird/Qt: Use LibWebView to decide what parts of a URL to highlight 2023-10-20 07:18:54 +02:00
Andrew Kaster 2e759656de Ladybird: Load fonts via Core::Resource URIs instead of filesystem paths 2023-10-17 11:02:01 -06:00
Timothy Flynn aa5cd24c90 Ladybird/AppKit: Sanitize user-provided URLs with LibWebView 2023-10-13 13:37:11 -04:00
Timothy Flynn f023e37de7 Ladybird/Qt: Sanitize user-provided URLs with LibWebView 2023-10-13 13:37:11 -04:00
Timothy Flynn 9d31fc3ea3 Ladybird: Implement content zooming in the AppKit chrome
This lets the user zoom in and out on a web page using the View menu or
keyboard shortcuts. This does not implement zooming with ctrl+scroll.

In the future, it'd be nice to embed the zoom level display inside the
location toolbar. But to do that, we will need to invent our own custom
search field and all of the UI classes (controller, cell, etc.) to draw
the field. So for now, this places the zoom level display to the right
of the location toolbar.
2023-10-13 07:51:53 +02:00
Adam Harald Jørgensen d6796d5123 Ladybird: Add keyboard shortcuts for jumping to a specific tab
It's now possible to open a specific tab by using Ctrl/Command plus the
number key corresponding to its position in the tab row.
2023-10-06 08:10:30 +02:00
Junior Rantila 31ff752a10 Ladybird/AppKit: Update chrome color on theme color change 2023-10-03 16:17:43 -06:00
Andrew Kaster 4fd915b005 Ladybird/Android: Add EditText for URL bar and attach to native WebView 2023-09-29 15:58:55 -06:00
Andrew Kaster a93507231c Ladybird/Android: Move JavaEnvironment helper to Ladybird namespace 2023-09-29 15:58:55 -06:00
Bastiaan van der Plaat b32b277192 Ladybird/AppKit: Move frameAutosaveName inside if block 2023-09-29 07:21:31 -04:00
Bastiaan van der Plaat 0ce9dc4c8e Ladybird/AppKit: Add color picker support 2023-09-29 06:27:05 -04:00
circl 84f845494e Ladybird/Qt: Add support for color pickers 2023-09-27 12:16:41 +01:00
Bastiaan van der Plaat 04ee15a5ad Ladybird+LibWeb: Use old error.html template for navigation errors again 2023-09-24 19:59:00 -06:00
Bastiaan van der Plaat 8f2319e966 Ladybird+LibWeb: Rename FileDirectoryLoader to GeneratedPagesLoader 2023-09-24 19:59:00 -06:00
Bastiaan van der Plaat 6f8ceb49c2 Ladybird/AppKit: Fix scrolling with high dpi 2023-09-24 19:58:09 -06:00
Bastiaan van der Plaat 0574c0e474 Ladybird/AppKit: Listen for device pixel ratio changes 2023-09-24 19:58:09 -06:00
Andreas Kling 51caa14381 LibWeb: Remove FrameLoader
This class is no longer used, now that we've moved to navigables.
2023-09-20 18:29:17 +02:00
Bastiaan van der Plaat 69482f1f14 Ladybird/AppKit: Add mouse wheel events 2023-09-20 08:33:31 +02:00