Commit graph

53623 commits

Author SHA1 Message Date
Tim Ledbetter
2c60438b8e Ports/hatari: Update formatting to be consistent with other ports 2023-08-14 12:20:03 +02:00
Tim Ledbetter
c79c145a0a Ports/hatari: Add launcher icon 2023-08-14 12:20:03 +02:00
Tim Ledbetter
badf003511 Ports/hatari: Use correct launcher command path 2023-08-14 12:20:03 +02:00
Tim Ledbetter
cb8491ed0a Ports/hatari: Update to version 2.4.1 2023-08-14 12:20:03 +02:00
Tim Ledbetter
1f22cc9668 Ports/ja2: Update formatting to be consistent with other ports 2023-08-14 12:14:12 +02:00
Tim Ledbetter
792f8f9492 Ports/ja2: Add launcher icon 2023-08-14 12:14:12 +02:00
Tim Ledbetter
a827c0defc Ports/ja2: Ensure build is run in parallel 2023-08-14 12:14:12 +02:00
Tim Ledbetter
bb4e7c91ca Ports/cmatrix: Update formatting to be consistent with other ports 2023-08-14 12:10:11 +02:00
Tim Ledbetter
fe8c9aae23 Ports/cmatrix: Install binary to /usr/local/bin 2023-08-14 12:10:11 +02:00
Tim Ledbetter
fd0efa0106 Ports/nyancat: Update formatting to be consistent with other ports 2023-08-14 12:07:35 +02:00
Tim Ledbetter
301fbb013c Ports/nyancat: Use the correct launcher command path 2023-08-14 12:07:35 +02:00
Tim Ledbetter
cc304b2954 Ports/nyancat: Fetch from a specific commit hash rather than master
This avoids a potential sha256 mismatch whenever something is pushed
to the `master` branch.
2023-08-14 12:07:35 +02:00
Tim Ledbetter
629a6449c5 Ports/vitetris: Update formatting to be consistent with other ports 2023-08-14 12:05:02 +02:00
Tim Ledbetter
0e4f7d7f40 Ports/vitetris: Use correct launcher command path 2023-08-14 12:05:02 +02:00
Tim Ledbetter
6b1397a882 Ports/SDLPoP: Update formatting to be consistent with other ports 2023-08-14 11:45:08 +02:00
Tim Ledbetter
6cf9f495be Ports/SDLPoP: Add a launcher icon 2023-08-14 11:45:08 +02:00
Tim Ledbetter
5a04781224 Ports/SDLPoP: Remove an unnecessary patch
This patch removed some previously unsupported scanf format specifiers.

We still don't support these properly, but we can parse and ignore
them, which is equivalent to what this patch was doing.
2023-08-14 11:45:08 +02:00
Sam Atkins
43b4e84d9c Meta: Remove "Check manpages for completeness" CI step
This is taking over 4 minutes to run on CI, and checks only a dozen
manpages, which is of limited benefit.

Leaving the manpage-generation code in place for now.
2023-08-14 07:58:33 +02:00
Andrew Kaster
46b86ffcfc Ladybird: Add install rules to make app bundle on macOS relocatable
We were still missing the resources and the libraries inside the actual
bundle directory. Do it at install time to not make a mess of all the
rules. The gn build lists all the libraries in a massive list, which
is quite a pain. We can over-copy a few libraries like this to make the
install script a bit easier to follow.
2023-08-13 23:31:00 -06:00
Andrew Kaster
ea0e07ec8f Meta: Include RPATH rules at top level to share them with Ladybird
When using Ladybird/ as CMake source directory, the RPATH rules were
left at the default, which is almost never correct.
2023-08-13 23:31:00 -06:00
0GreenClover0
061061bd9c Calendar: Make on_month_click capture the view_month_action's RefPtr 2023-08-14 07:29:09 +02:00
Aliaksandr Kalenik
0d66a80a0f headless-browser: Add ref tests support
The ref tests runner takes screenshots of both the input page and the
expected page, then compares them. Ref testing allows us to catch
painting bugs, which cannot be detected with the layout and text tests
we already have.

With ref tests, we'll likely want to reuse the same expectation page
for multiple inputs. Therefore, there's a `manifest.json` file that
describes the relationship between inputs and expected outputs.
2023-08-14 07:28:22 +02:00
Shannon Booth
582784d0cf AK: Remove unused ApplyPercentDecoding enum from URL class 2023-08-13 15:03:53 -06:00
Shannon Booth
9d60f23abc AK: Port URL::m_fragment from DeprecatedString to String 2023-08-13 15:03:53 -06:00
Shannon Booth
5663a2d3b4 AK+LibWeb: Do not percent encode/decode in URL fragment setter/getters
The web specs do not expect decoding or decoding to happen when calling
these helpers. This allows us to remove the raw_fragment helper function
from the URL class.
2023-08-13 15:03:53 -06:00
Shannon Booth
c25485700a AK: Port URL scheme from DeprecatedString to String 2023-08-13 15:03:53 -06:00
Shannon Booth
21fe86d235 AK: Port URL::m_query from DeprecatedString to String 2023-08-13 15:03:53 -06:00
Shannon Booth
55a01e72ca AK: Port URL username/password from DeprecatedString to String
And for cases that just need to check whether the password/username is
empty, add a raw_{password,username} helper to avoid any allocation.
2023-08-13 15:03:53 -06:00
Shannon Booth
6b29dc3e46 LibWeb: Fix double percent encode of username
URL::set_username will apply a percent encode, so we don't need to do
it a second time here.
2023-08-13 15:03:53 -06:00
Shannon Booth
d2fe657879 AK: Remove unused URL::m_path member 2023-08-13 15:03:53 -06:00
Timothy Flynn
ccf2597bd3 Ladybird: Remove unused LoadType parameter from Tab::navigate
The only non-default use of this parameter was removed in 980e7164fe.
2023-08-13 21:49:06 +01:00
0GreenClover0
340230f6bf Calendar: Promote view_type ActionGroup to CalendarWidget's member
Otherwise, it would get destroyed after exiting the create() function.
2023-08-13 22:34:14 +02:00
djwisdom
bb23ee3521 Ports: Update serenity-theming use latest commit 7ef303d 2023-08-13 14:24:47 -04:00
Daniel Bertalan
65232b6681 LibJS: Mark classes and virtual functions final where possible
These cases were found with GCC's `-Wsuggest-final-{types,methods}`
warnings, which catch calls that could have been devirtualized had we
declared the functions `final` in the source.

To reproduce, Link Time Optimization needs to be enabled. The easiest
way to achieve this is to set the `CMAKE_INTERPROCEDURAL_OPTIMIZATION`
cache variable to `ON`. The `.incbin` directive in LibCompress' Brotli
decompressor might needs to be changed to an absolute path for this to
work.

This commit also removes a pair of unused virtual functions.
2023-08-13 18:05:09 +02:00
Andreas Kling
72c9f56c66 LibJS: Make Heap::allocate<T>() infallible
Stop worrying about tiny OOMs. Work towards #20449.

While going through these, I also changed the function signature in many
places where returning ThrowCompletionOr<T> is no longer necessary.
2023-08-13 15:38:42 +02:00
0x6D70
980e7164fe Ladybird: Add initial page to history
This fixes a bug where the reload button does not work on the page that
was initially opened
2023-08-13 09:24:19 -04:00
Andi Gallo
b6f9f4c28c LibWeb: Fix handling of max-content containing block for floating box
Fixes layout of page toolbar on Wikipedia.
2023-08-13 14:43:41 +02:00
Andi Gallo
97ba1ff1f7 LibWeb: Remove unused variable from compute_height method 2023-08-13 14:43:41 +02:00
sin-ack
7192cf7487 LibWeb: Add hack for computing the request referer during load
This is a temporary hack until navigables are used to load pages, which
uses fetch infrastructure that does this according to spec.
2023-08-13 14:29:53 +02:00
Liav A
029160fd27 Utilities: Add zcat
This utility is actually a symlink to the gunzip utility.
The gunzip utility is modified to enable writing to stdout when running
through the zcat symlink, to emulate the same behavior on other OSes.

In addition to that, the gunzip utility is now required on a default
installation as it could be a vital utility under some conditions (for
example, downloading source code in a tar.gz file).
2023-08-13 10:16:03 +01:00
Daniel Bertalan
1e737e763e CI: Force UBSan errors to be fatal for Serenity tests
The test runner script sets the `halt_on_error=1` `UBSAN_OPTIONS` flag
already, this just makes it a compile-time decision. This should
alleviate some of the slowness of running on-target tests without
hardware acceleration.
2023-08-13 05:14:07 +02:00
Daniel Bertalan
44365074fe CMake: Add UNDEFINED_BEHAVIOR_IS_FATAL configure option
This is mainly intended for use on CI, as UBSan instrumentation results
in a serious load and execution time penalty there. See the previous
commit for more details.

With this enabled, the size of LibWeb, built for x86-64 with Clang 17 as
of 0b91d36a is reduced as follows:

      FILE SIZE        VM SIZE
   --------------  --------------
     +18% +2.99Mi  [ = ]       0    .debug_info
     +14%  +758Ki  [ = ]       0    .debug_addr
    +2.6% +7.92Ki  [ = ]       0    .debug_abbrev
    +129% +2.66Ki  [ = ]       0    [Unmapped]
    -0.2%    -208  -0.2%    -208    .plt
    -0.2%    -312  -0.2%    -312    .rela.plt
    -0.1%    -336  -0.1%    -336    .dynsym
    -0.0%    -647  -0.0%    -513    [8 Others]
    -0.1% -1.14Ki  -0.1% -1.14Ki    .dynstr
   -20.1% -53.5Ki -20.1% -53.5Ki    .eh_frame_hdr
    -7.2% -56.8Ki  [ = ]       0    .debug_str_offsets
    -7.1%  -156Ki  [ = ]       0    .debug_str
   -15.0%  -160Ki  [ = ]       0    .symtab
   -63.6%  -245Ki -63.6%  -245Ki    .relr.dyn
   -25.4%  -357Ki -25.4%  -357Ki    .eh_frame
   -27.7% -1.09Mi  [ = ]       0    .strtab
   -59.3% -10.0Mi  [ = ]       0    .debug_rnglists
   -41.3% -11.0Mi  [ = ]       0    .debug_line
   -70.0% -12.0Mi -70.0% -12.0Mi    .rodata
   -65.2% -15.1Mi -65.2% -15.1Mi    .data
   -53.0% -15.7Mi -53.0% -15.7Mi    .text
   -41.7% -62.1Mi -57.7% -43.4Mi    TOTAL
2023-08-13 05:14:07 +02:00
Daniel Bertalan
f0973db6dd LibSanitizer: Add _abort variants of UBSan handlers
These variants make the choice to terminate the process a compile-time
decision rather than a runtime-configurable setting through
`UBSAN_OPTIONS`. As the compiler can treat any code following these
UBSan handler calls as dead code, it allows for significant
optimizations, such as removing redundant UBSan checks and not needing
to worry about saving volatile registers before calling these.

Generation of this kind of instrumentation can be enabled with
`-fsanitize=undefined -fno-sanitize-recover=undefined`. Build system
support will come in a separate PR.
2023-08-13 05:14:07 +02:00
Daniel Bertalan
a2d352c4c9 LibSanitizer: Abort on unrecoverable UBSan errors
There is no sensible recovery possible from non-void functions that
fail to return a value, or from `__builtin_unreachable()` being reached,
all bets are off once they happened. This is why LLVM's libsanitizer
treats these as always fatal, even if all other UBSan checks are made
recoverable with `-fsanitize-recover`. The codegen already assumes that
these handlers will not return.
2023-08-13 05:14:07 +02:00
auipc
1653c5ea41 LibWeb: Use current platform for navigator.platform
Before, navigator.platform would always report the platform as "Serenity
OS", regardless of whether or not that was true. It also did not include
the architecture, which Firefox and Chrome both do. Now, it can report
either "Linux x86_64" or "SerenityOS AArch64".
2023-08-13 05:13:18 +02:00
thankyouverycool
1ea24c38b4 LibGUI: Fix typo in Splitter's resizee Getter/Setter 2023-08-13 05:12:00 +02:00
Andrew Kaster
a0a1411ec9 CMake: Set CMAKE_RUNTIME_OUTPUT_DIRECTORY based on CMAKE_INSTALL_BINDIR
Instead of hardcoding bin/, we should use the INSTALL_BINDIR directly
to reflect the intent of the way we're doing the settings.

This should have the benefit of fixing the build when a distro sets the
GNUInstallDirs variables to exciting values, like on NixOS.
2023-08-12 18:21:38 -06:00
kleines Filmröllchen
aa741a1544 GMLCompiler: Allow using GML in any kind of Userland program
This is accomplished by detecting the Userland subdirectory from the GML
file's own path. Thereby, any Userland program, e.g. applet,
application, or even service, can use GML and the include paths of the
generated files will be correct.
2023-08-12 12:29:19 -06:00
kleines Filmröllchen
285119bc1a GMLCompiler: Force main class name to be resolved from global namespace
Calculator would otherwise trip over this, since there's a class with
the same name within the namespace.
2023-08-12 12:29:19 -06:00
kleines Filmröllchen
842a5adfdc GMLCompiler: Add a variety of special cases
Headers, enum properties, and associated default includes.
2023-08-12 12:29:19 -06:00