Commit Graph

2638 Commits

Author SHA1 Message Date
Aliaksandr Kalenik
7d26cbf523 LibWeb: Add painting command executor that uses LibAccelGfx
This change introduces a command executor for RecordingPainter that
utilizes LibAccelGfx.
2023-10-29 17:13:23 +01:00
Aliaksandr Kalenik
95c154d9bd LibAccelGfx+Meta: Introduce OpenGL painting library
This change introduces a new 2D graphics library that uses OpenGL to
perform painting operations. For now, it has extremely limited
functionality and supports only rectangle painting, but we have to
start somewhere.

Since this library is intended to be used by LibWeb, where the
WebContent process does not have an associated window, painting occurs
in an offscreen buffer created using EGL.

For now it is only possible to compile this library on linux.
Offscreen context creation on SerenityOS and MacOS will have to be
implemented separately in the future.

Co-Authored-By: Andreas Kling <awesomekling@gmail.com>
2023-10-29 17:13:23 +01:00
Timothy Flynn
8dc25dffc2 LibWebView: Protect URL highlighting against partially-typed URLs
The current helpers assume that a valid URL is a full URL (i.e. contains
the "://" separator between the scheme and domain). This isn't true, as
"file:" alone is parsed as a valid URL.

We must also avoid simply searching for the parsed public suffix in the
original URL string. For example, "com" is a public suffix. If we search
for that in the URL "com.com", we will think the public suffix starts at
index 0.
2023-10-28 19:03:19 +02:00
Andrew Kaster
faa8ef98c9 Meta: Port recent changes to gn BUILD
5c7e5cc738
a8f0fa5dd4
0d417cd604
5b87d26027
 (and other friends from the JIT PR)
f915aa70cd
2023-10-27 16:51:03 -06:00
Andreas Kling
5b87d26027 LibJIT+LibJS: Move JIT::Assembler into a new LibJIT library
This will allow other parts of the system to generate machine code
at runtime. :^)
2023-10-27 19:07:22 +02:00
Lucas CHOLLET
8659a6d3a7 Lagom: Port LibImageDecoderClient to Lagom
This library offers tools to communicate with an ImageDecoder server
through IPC. There is currently no such executable for Lagom but that
shouldn't take long :^)
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
Dan Klishch
8b49bdb724 Meta+Documentation: Restore links to LibJS website
This partially reverts dacf7265 and 67ca5d65.
2023-10-27 07:08:57 +02:00
Ali Mohammad Pur
aa4360b9a3 Meta: Port LibJS Wasm repl to the new LibJS architecture
This was left behind when removing the AST interpreter, and the CI not
being around made it bitrot.

Co-Authored-By: Dan Klishch <danilklishch@gmail.com>
2023-10-27 05:57:18 +03:30
Martin Janiczek
7c2a569fca LibTest: Add a suite of tests for the generators 2023-10-26 17:26:52 -06:00
Dan Klishch
6ed069ea8d JSSpecCompiler: Provide an adequate command line interface 2023-10-26 15:45:31 -06:00
Dan Klishch
867ce0df52 JSSpecCompiler: Move passes to Passes subdirectory of Compiler/ 2023-10-26 15:45:31 -06:00
Dan Klishch
61fa00d46c JSSpecCompiler: Refactor CompilerPass to accept TranslationUnitRef 2023-10-26 15:45:31 -06:00
Dan Klishch
24682f5dcf Meta: Fix typos in shell script comments 2023-10-26 15:45:31 -06:00
Timothy Flynn
9f9e5c0f55 LibWebView: Add an API to query if a host is on the Public Suffix List 2023-10-26 11:06:49 +02:00
Timothy Flynn
d4615c47a4 LibWebView: Generate the Public Suffix List as a compile-time array
No need for this to be a vector on the heap.
2023-10-26 11:06:49 +02: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
Dan Klishch
c2c37de201 JSSpecCompiler: Support Cpp::StringLiteral in C++ AST converter 2023-10-26 10:57:03 +02:00
Dan Klishch
d7b4dc2a6a JSSpecCompiler: Support Cpp::BinaryExpression in C++ AST converter 2023-10-26 10:57:03 +02:00
tetektoza
1c37385904 GMLCompiler: Add enum initializer for button_style property
This patch adds missing enum initializer for button_style property in
enum initializer generator in GML compiler.
2023-10-24 21:47:18 +02:00
Tim Schumacher
b91d03c2b8 Meta: Don't pass ^C through the serial console on CI
`-serial mon:stdio` passes through all kinds of key combinations,
`-serial stdio` doesn't. This probably isn't something that we want
while running tests or CI, so switch to the non-passing variant.

aarch64 actually failed to run due to this, since it already had
`-serial stdio` in its arguments, causing a conflict. This is why that
entry is now gone entirely.
2023-10-24 13:45:55 +02:00
Tim Ledbetter
fff1645c6b Fuzzers: Add WOFF2 fuzzer 2023-10-24 13:45:01 +02:00
Tim Schumacher
acc0fb7a47 Meta: Manually redirect CI serial output to stdout
`-nographic` additionally reconfigures the Terminal, which clears the
previous scrollback and (ocasionally) breaks line wrapping. This is
probably not something that we want, so only ask for the redirection
behavior.
2023-10-24 11:27:20 +02:00
Tim Ledbetter
03fbd6c0c8 Fuzzers: Add a fuzzer for JsonParser 2023-10-24 07:54:37 +02:00
Andrew Duerig
67ca5d6572 Meta: Update libjs.dev links to test262.fyi 2023-10-24 07:32:19 +02:00
Tim Ledbetter
db929e0fcf Kernel/Ext2: Avoid overflow when updating UID and GID values
Previously, attempting to update an ext2 inode with a UID or GID
larger than 65535 would overflow. We now write the high bits of UIDs
and GIDs to the same place that Linux does within the `osd2` struct.
2023-10-24 07:21:11 +02:00
Andrew Kaster
4522c82459 Meta: Add gn build for the MacPDF application 2023-10-23 15:25:24 -06:00
Andrew Kaster
967ccd2be8 Meta: Add gn build for LibPDF 2023-10-23 15:25:24 -06:00
Andrew Kaster
10298f1e9a Meta: Move invoke_process_with_args.py to common location
This script was already used by both Ladybird and the Kernel, so move it
into Meta/gn/build instead.
2023-10-23 15:25:24 -06:00
Nico Weber
df0dd26ce2 Meta: Make test_pdf.py not count regular "failed to open" as crash
Some files just aren't valid PDF files that e.g. Preview.app can't
open either. Let's not count those (exit code 1) as crashes.
2023-10-23 09:33:39 -04:00
Bastiaan van der Plaat
5870a1a9a1 AK: Remove rarely used ExtraMathConstants.h 2023-10-23 12:04:51 +01:00
Nico Weber
3dd68f6026 Meta: Tweak test_pdf.py script
* Elide parser offsets to better group parser errors
* Use `backslashreplace` for decoding crash stacks so that we don't
  crash when printing crash stacks if the error output isn't valid
  utf-8
* Swap last two lines of output, reads a bit better
2023-10-21 21:04:02 +02:00
Nico Weber
5b36355be8 Meta: Add a script for rendering many PDFs in parallel
The rendering happens only in-memory, so this is only useful for
looking at the crash rate and the reports of missing features.

To actually see the output of a file, use

    pdf --render out.png --page N path/to/input.pdf

instead.
2023-10-21 09:09:21 +02:00
Bastiaan van der Plaat
efadee7e6e Meta+BindingsGenerator: Add curly brackets for numeric union types 2023-10-20 07:20:29 +02:00
Nico Weber
ff4b0e678b MacPDF: Make "Open With" and dropping files on dock tile work
I would've expected that there's some way to have this work
automatically in an NSDocument-based application, but I haven't
found it yet. So manually implement the delegate for now.
2023-10-19 16:52:31 -04:00
Hendiadyoin1
5a4c27b8ae Meta: Add an option to boot from a USB drive 2023-10-17 11:50:33 -06:00
Andrew Kaster
4d039b05b2 MacPDF: Load fonts via Core::Resource instead of filesystem paths 2023-10-17 11:02:01 -06:00
Timothy Flynn
a8f0fa5dd4 LibWebView+LibPublicSuffix: Merge LibPublicSuffix into LibWebView
After d2c7e1ea7d, there is now only one
user of LibPublicSuffix - the URL sanitation utility within LibWebView.
Rather than having an entire library for the small Public Suffix data
accessor, merge it into LibWebView.
2023-10-16 09:06:02 -04:00
Edwin Rijkee
8388fe51b5 Kernel: Add a framebuffer driver for 3Dfx Voodoo 3
A bit old but a relatively uncomplicated device capable of outputting
1920x1080 video with 32-bit color. Tested with a Voodoo 3 3000 16MB
PCI card. Resolution switching from DisplaySettings also works.

If the requested mode contains timing information, it is used directly.
Otherwise, display timing values are selected from the EDID. First the
detailed timings are checked, and then standard and established
timings for which there is a matching DMT mode. The driver does not
(yet) read the actual EDID, so the generic EDID in DisplayConnector now
includes a set of common display modes to make this work.

The driver should also be compatible with the Voodoo Banshee, 4 and 5
but I don't have these cards to test this with. The PCI IDs of these
cards are included as a commented line in case someone wants to give it
a try.
2023-10-16 01:25:45 +02:00
Nico Weber
3c49d0dad3 LibPDF: Add a CFF_DEBUG toggle
I'd like to put some debug prints behind this soon.

No behavior change.
2023-10-15 07:14:29 +02:00
Ali Mohammad Pur
988c6568a9 LibWeb: Remove Element::set_attribute(name, value?)
That API came from a mistake in the IDL compiler, where reflected
nullable attributes would try to call set_attribute(name, null).
This commit fixes the mistake in the IDL generator, and removes the
meaningless API.
2023-10-14 09:12:41 -04:00
Andrew Kaster
ffc75a575b Meta: Port 759e07579e to gn build 2023-10-13 10:54:18 -06:00
Ali Mohammad Pur
aeee98b3a1 AK+Everywhere: Remove the null state of DeprecatedString
This commit removes DeprecatedString's "null" state, and replaces all
its users with one of the following:
- A normal, empty DeprecatedString
- Optional<DeprecatedString>

Note that null states of DeprecatedFlyString/StringView/etc are *not*
affected by this commit. However, DeprecatedString::empty() is now
considered equal to a null StringView.
2023-10-13 18:33:21 +03:30
Ali Mohammad Pur
b20f1da166 Lagom/IDLGenerators: Remove the unused generate_to_deprecated_string fn
There are no more users of this, so remove it and rename
`generate_to_new_string` to `generate_to_string` while we're at it.
2023-10-13 18:33:21 +03:30
Nico Weber
6528f6db26 MacPDF: Make up and down flip pages when PDF view has focus
Previously, it only reacted to arrow left andn arrow right,
and to opt-up and opt-down.
2023-10-11 21:38:15 -04:00
Nico Weber
627b152d49 MacPDF: Make opt-up and opt-down always go to previous / next page
When the outline has focus, arrow keys navigate the outline instead
of changing the current page.

Add opt-up and opt-down as a way to move by one page even when the
outline has focus. (This matches Preview.app.)

xib change: Added two menu Previous Page with key equivalent opt-up
and Next Page with key equivalent opt-down to Go menu and bound them to
goToPreviousPage: and goToNextPage: on First Responder.

When the outline has focus, the responder chain is outline ->
window, so also add the actions on the window controller, and
let that forward to the PDF view.
2023-10-11 21:38:15 -04:00
Andrew Kaster
3e86f88d6a CMake: Actually set the LAGOM_USE_LINKER option automatically
When this feature was finally merged, the serenity_option in
lagom_options.cmake had the unintended side effect of always setting the
cache variable to "" in the initial cache. In order to actually set the
linker to use to be lld or mold, we need to set with the FORCE flag in
the use_linker.cmake file.

Found by checking with the CMake variable_watch() function.

This will stop the build from spamming the "Using LLD to link Lagom"
message all over the place :^)
2023-10-11 15:02:42 -04:00
Andrew Kaster
9a3e9047a5 Meta: Update GN build for recent changes
9a026fc8d5
ae1ac9871b
07b332e17c

And some missed changes from the past that weren't hit because no one
was referencing those symbols :^).
2023-10-11 10:56:24 -06:00
Andrew Kaster
c8cf361bbd LibWeb: Install generated CSS/PseudoClass.h file the same as the others 2023-10-11 12:35:35 -04:00
Andrew Kaster
99ffc935ef Lagom: Include all generated installed files on library targets
Do this with INSTALL_INTERFACE genex include directory rules. We should
really standardize where the generated headers *actually* get installed
to though.
2023-10-11 12:35:35 -04:00