Age | Commit message (Collapse) | Author |
|
`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.
|
|
|
|
This was accidentally broken in
ac401970475cd3ceb2c284a6072d91ca5d9de23e, 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.
|
|
Co-authored-by: HawDevelopment <hawdevelopment@gmail.com>
|
|
|
|
If we were paused before, don't start the game after closing the dialog.
|
|
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.
|
|
Without setting this explicitly in every script, failing script lines in
multiline scripts will not fail the job themselves.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
The serenity_test function cannot set this up as it has no purpose on
Serenity itself.
|
|
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.
|
|
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.
|
|
|
|
|
|
This is a copy of the zip wrapper adopted for tar archives.
|
|
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! :^)
|
|
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.
|
|
Fix the problem that `cmake --build Build/ladybird` started
failing with:
fatal error: 'WebContent/WebDriverConnection.h' file not found
after 11fe34ce0fb827f3bfe9c61c31b3dbe99a894233
|
|
If WebContent process got disconnected it is only necessary to remove
associated window instead of terminating the entire session.
|
|
While closing a session, it is necessary to close all windows that may
have been opened during that session.
|
|
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.
|
|
Not doing it result in FileManager's progress bar being left as
incomplete even if all jobs were finish.
|
|
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.
|
|
This allows us to get rid of the raw pointer and size in the JPEG
context struct.
|
|
According to the spec (and the variable name), it should be an array of
offsets, not u16s. Noticed while watching Andreas' most recent video.
|
|
MP3 had the exact same data structure, except less readable and less
efficient.
|
|
"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.
|
|
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.
|
|
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.
|
|
According to the specification, modesetting can be invoked with no need
for flushing the framebuffer nor with DMA to transfer the framebuffer
rendering.
|
|
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
95b15e49010299902abd2aa65bcc71e4158b7326 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.
|
|
Turns out LLVMFuzzerTestOneInput may be called more than once per
process.
|
|
Prior to this commit, when you double-click a .zip file to open it, it
gets opened in Text-Editor as there is no other file association.
Now, when FileManager is invoked with a .zip file as the first argument,
a temporary directory will be created and the .zip will be extracted
into it. Once the FileManager window is closed, Core::TempFile will
delete the temporary directory.
This adds something like what we see in other operating systems' file
explorers, except for the fact that most other operating systems will
treat the .zip file as its own independent read-only filesystem. It
would be nice to do that in the future, but I feel like this is
sufficient for now.
|
|
- We were using primitive versions of mkstemp and mkdtemp, they have
been converted to use LibCore::System.
- If an error occurred whilst creating a temporary directory or file, it
was thrown and the program would crash. Now, we use ErrorOr<T> so that
the caller can handle the error accordingly
- The `Type` enumeration has been made private, and `create_temp` has
been "split" (although rewritten) into create_temp_directory and
create_temp_file. The old pattern of TempFile::create_temp(Type::File)
felt a bit awkward, and TempFile::create_temp_file() feels a bit nicer
to use! :^)
Once the Core::Filesystem PR is merged (#17789), it would be better for
this helper to be merged in with that. But until then, this is a nice
improvement.
|
|
|
|
At the moment, we can't resolve CSS calc() values without having a
LayoutNode. The new StyleProperties::line_height() overload was trying
to do exactly that, which led to an assertion.
This patch makes `line-height: calc(...)` behave the same as
`line-height: normal` for now and adds a FIXME.
|
|
Don't crash in case the elements parent is null.
|
|
If the PaintableBox had children, but we didn't hit any of them, we
default to saying that you hit the PaintableBox itself.
However, if said PaintableBox has `pointer-events: none`, we should
say nothing was hit, so that the hit testing can continue.
This fixes an issue where Discord server icons were not clickable.
|
|
This makes focusing input fields by clicking on them work.
Fixes #17801
|
|
|
|
Previously, empty text boxes would fall back to the min-height: 16px
set on the <input> element. As soon as there is any content they
would usually gain height because the line height of that text is
more than 16px (depending on the font/font-size used).
Now they use height: 1lh for the inner div (which contains the
actual text), which matches the exact height of 1 line of content.
|
|
|
|
|