Commit graph

48246 commits

Author SHA1 Message Date
Srikavin Ramkumar
def08bcfcf LibWeb: Add indeterminate checkbox styling to useragent stylesheet 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar
c3d6709a9e LibWeb: Implement selector matching for :indeterminate pseudo-class 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar
d177d83b44 LibWeb: Implement indeterminate IDL attribute in HTMLInputElement 2023-03-20 10:15:58 +00:00
Srikavin Ramkumar
aad4051885 LibWeb: Match selected option elements with checked pseudo-class 2023-03-20 10:15:58 +00:00
Tim Schumacher
df30fd6232 tar: Add partial support for LZMA-compressed archives 2023-03-20 12:15:38 +02:00
Tim Schumacher
391485ccef Tests: Add LZMA test files from the LZMA specification 2023-03-20 12:15:38 +02:00
Tim Schumacher
123e9fa5d0 Lagom: Add a fuzzer for LZMA decompression 2023-03-20 12:15:38 +02:00
Tim Schumacher
858c44ae1b Utilities: Add an lzcat utility 2023-03-20 12:15:38 +02:00
Tim Schumacher
b3a9729e23 LibCompress: Add support for LZMA streams 2023-03-20 12:15:38 +02:00
Sam Atkins
5c4ffbcb46 GMLPlayground: Let WindowServer handle the title's modification symbol 2023-03-20 09:06:12 +00:00
Sam Atkins
1fba3640cb GMLPlayground: Add list of recent files to the File menu 2023-03-20 09:06:12 +00:00
Sam Atkins
d0730c1c75 TextEditor: Remove confirmation when opening from recent files list
If the user has clicked to open a recent file, we don't need to ask them
again if they want to open it.
2023-03-20 09:04:38 +00:00
Tim Schumacher
fb0fd85e97 Meta: Don't install CA certificates during a on-Serenity build
`SERENITYOS` is also set when compiling Lagom on SerenityOS, so we can't
just check it and expect `CMAKE_STAGING_PREFIX` to be set.

Instead, check `CMAKE_STAGING_PREFIX` directly and use that as an
indicator for whether we can install a file there.
2023-03-20 09:33:30 +01:00
Tim Schumacher
f7dc4396c8 grep: Remove a leftover debug line 2023-03-20 09:33:30 +01:00
Tim Schumacher
cda4034b46 LibCrypt: Start installing headers again
This was accidentally broken in
ac40197047, after which we started
installing headers into a `LibCrypt` subdirectory instead.

`serenity_install_headers("")` is really the only thing that we need
from `serenity_libc`, so just replicate that manually.
2023-03-20 09:33:30 +01:00
Sam Atkins
5708a47157 Snake: Implement image-based skins
Co-authored-by: HawDevelopment <hawdevelopment@gmail.com>
2023-03-20 09:29:30 +01:00
Sam Atkins
da7c883dfa Snake: Move geometry types into Geometry.h and add Direction enum 2023-03-20 09:29:30 +01:00
Sam Atkins
3ce87ea5f9 Snake: Remember if game was paused when picking color
If we were paused before, don't start the game after closing the dialog.
2023-03-20 09:29:30 +01:00
Aliaksandr Kalenik
4f496e97fe LibWeb: Add keep-alive in response headers if it present in request
This fix addresses issue where, if request headers contain
"Connection: keep-alive", we keep socket open without letting client
know that we support keep-alive connections. This can result in a
large number of open and unused sockets.
2023-03-19 22:31:59 -04:00
Andrew Kaster
5b5a76eadd CI: Add "set -e" to Azure DevOps scripts
Without setting this explicitly in every script, failing script lines in
multiline scripts will not fail the job themselves.
2023-03-19 14:31:10 -06:00
Andrew Kaster
958f9e960d Fuzzers: Use correct type name in FuzzilliJs fuzzer 2023-03-19 14:31:10 -06:00
Elisée Maurer
38a3e28799 LibWeb: Stub out a few form validation and selection methods 2023-03-19 18:58:50 +00:00
Caoimhe
23d31ac11d SoundPlayer: Keep track of the selected visualization in the config 2023-03-19 18:57:30 +00:00
Caoimhe
4c49e0f4a3 SoundPlayer: Move get_image_from_music_file to the advanced view 2023-03-19 18:57:30 +00:00
Aliaksandr Kalenik
dcc4868a3c LibWeb: Rename PaintableBox::clip_rect() 2023-03-19 19:04:51 +01:00
Aliaksandr Kalenik
7ddacef3b5 LibWeb: Apply border-radius clip only if overflow hidden for both axis
Before this change `apply_clip_overflow_rect` might crash trying to
access `clip_rect` that does not have value because we currently
support calculation of visible rectangle when `overflow: hidden`
is applied for both axis.
2023-03-19 19:04:51 +01:00
Srikavin Ramkumar
633983d354 LibWeb: Update stylesheet loading to use fetch infrastructure 2023-03-19 14:16:15 +00:00
Srikavin Ramkumar
f7176463b5 LibWeb: Implement 'create a potential-CORS request' algorithm 2023-03-19 14:16:15 +00:00
kleines Filmröllchen
3e2e94bd01 Meta: Specify a working directory for the FLAC spec test on Lagom
The serenity_test function cannot set this up as it has no purpose on
Serenity itself.
2023-03-19 14:15:35 +00:00
kleines Filmröllchen
c7e963edde Tests: Correct FLAC spec test paths
This makes the path consistent with Lagom in the next commit, so that
the test binary doesn't need special cases for the two platforms.
2023-03-19 14:15:35 +00:00
kleines Filmröllchen
73a367a00a Tests: Refactor FLAC spec test to not use a TestCase subclass
The deallocation of the test cases at the very end happens through a
NonnullRefPtr<TestCase>, meaning the deallocation will assume the wrong
object size and trip up ASAN. Therefore, we cannot use a TestCase
subclass.

I also took this opportunity and made use of the new LoaderError
formatter.
2023-03-19 14:15:35 +00:00
kleines Filmröllchen
904a4dd314 Meta: Use extract_tar_path for WASM spec test generation 2023-03-19 14:15:35 +00:00
kleines Filmröllchen
d3d93ef1df Meta: Refactor FLAC spec test extraction with extract_tar_path 2023-03-19 14:15:35 +00:00
kleines Filmröllchen
a6dd992ad3 Meta: Add a tar extraction CMake wrapper
This is a copy of the zip wrapper adopted for tar archives.
2023-03-19 14:15:35 +00:00
kleines Filmröllchen
1ee2091b2d LibAudio: Support FLAC files with unknown amount of samples
This is a special case of the sample count field in the header which we
treated as a format error before. Now we just take care to check stream
EOF before reading chunks.

This makes the final FLAC spec test pass, making us one of the most
compliant loaders! :^)
2023-03-19 14:15:35 +00:00
kleines Filmröllchen
b2a018ee59 LibAudio: Use specified bit depth directly
We report a rounded up PCM sample format to the outside, but use the
exact bit depth as specified in header and frames.

This makes the three FLAC spec tests with a a bit depth of 20 pass.
2023-03-19 14:15:35 +00:00
Aliaksandr Kalenik
a2d13c47bd Ladybird: Fix build failure caused by missing WebDriver header
Fix the problem that `cmake --build Build/ladybird` started
failing with:

fatal error: 'WebContent/WebDriverConnection.h' file not found

after 11fe34ce0f
2023-03-19 09:53:57 -04:00
Aliaksandr Kalenik
16a4949e33 WebDriver: Fix handling of disconnected WebContent process
If WebContent process got disconnected it is only necessary to remove
associated window instead of terminating the entire session.
2023-03-19 14:51:40 +01:00
Aliaksandr Kalenik
7146c33522 WebDriver: Close all WebContent connections while destroying a session
While closing a session, it is necessary to close all windows that may
have been opened during that session.
2023-03-19 14:51:40 +01:00
Aliaksandr Kalenik
63c16ff41a WebDriver: Inline Sesssion::stop() in session destructor
Previously it was possible to have following sequence of calls
while destroying a session:
1. `WebContentConnection::die()` calls `Client::close_session()`
2. `Client::close_session()` removes a session from active sessions
map which causes session destructor call.
3. Session destructor calls `Client::close_session()` to remove a
session from active sessions.

With `stop()` method inlined into destructor `close_session()` need
to be called just once while destroying a session.
2023-03-19 14:51:40 +01:00
Lucas CHOLLET
b79cd5cf6e LibGUI: Update progress of thumbnail generations on failure
Not doing it result in FileManager's progress bar being left as
incomplete even if all jobs were finish.
2023-03-19 01:26:37 +00:00
Lucas CHOLLET
ebb9c3a430 LibThreading: Execute on_error on the original EventLoop
As the user might want to have interactions with LibGUI while handling
errors, this code should be executed in the original `EventLoop`.
Similarly to what is done with the error-free path.
2023-03-19 01:26:37 +00:00
Lucas CHOLLET
b084759690 LibGfx/JPEG: Make JPEGImageDecoderPlugin's constructor take a Stream
This allows us to get rid of the raw pointer and size in the JPEG
context struct.
2023-03-19 00:41:33 +00:00
Matt Purnell
bc23b07570 LibGfx: Correct the type of Lookup.subtable_offsets
According to the spec (and the variable name), it should be an array of
offsets, not u16s. Noticed while watching Andreas' most recent video.
2023-03-19 00:32:01 +00:00
kleines Filmröllchen
27d9ed0224 LibAudio: Use new generic seek table for MP3
MP3 had the exact same data structure, except less readable and less
efficient.
2023-03-19 00:28:02 +00:00
kleines Filmröllchen
0cd0565abc LibAudio: Improve FLAC seeking
"Improve" is an understatement, since this commit makes all FLAC files
seek without errors, mostly with high accuracy, and partially even fast:
- A new generic seek table type is introduced, which keeps an
  always-sorted list of seek points, which allows it to use binary
  search and fast insertion.
- Automatic seek points are inserted according to two heuristics
  (distance between seek points and minimum seek precision), which not
  only builds a seek table for already-played sections of the file, but
  improves seek precision even for files with an existing seek table.
- Manual seeking by skipping frames works properly now and is still used
  as a last resort.
2023-03-19 00:28:02 +00:00
Liav A
c66f7f2e7c Meta: Use non-VGA VirtIO GPU variants when running on macOS
It appears that QEMU on macOS doesn't have the VirtIO GPU variants that
support VGA functionality. Those variants are not especially important
to us, because we don't use any kind of VGA functionality in our kernel
anyway.

Therefore, for macOS, we could decide to use virtio-gpu-gl-pci and
virtio-gpu-pci devices instead.
2023-03-19 00:19:06 +00:00
Liav A
fdab8a24f5 Kernel/Graphics: Use longer timeout settings in VirtIO GPU commands
It appeared that we sometimes failed to invoke synchronous commands on
the GPU. To temporarily fix this, wait 10 milliseconds for commands to
complete before failing.
2023-03-19 00:19:06 +00:00
Liav A
3337a5722a Kernel: Simplify VirtIOGPU attach_physical_range_to_framebuffer method
According to the specification, modesetting can be invoked with no need
for flushing the framebuffer nor with DMA to transfer the framebuffer
rendering.
2023-03-19 00:19:06 +00:00
Liav A
657bc71247 Kernel/VirtIO: Ignore the VIRTIO_PCI_CAP_PCI_CFG configuration type
This configuration exposes a suboptimal mechanism to access other
VirtIO device configurations. It is also the only configuration to use a
zero length for a configuration structure, and specify a valid BAR which
triggered a kernel panic when attaching a virtio-gpu-pci device before
95b15e4901 was applied.

The real solution for that problem is to ignore this configuration type
because we never actually use it. It means that we can VERIFY that all
other configuration types have a valid length, as being expected.
2023-03-19 00:19:06 +00:00