1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:57:42 +00:00
Commit graph

11383 commits

Author SHA1 Message Date
Timothy Flynn
20533c2594 LibJS: Avoid FormatNumericToString spec issue more carefully
This becomes more of an issue when implementing the Intl mathematical
value, where negative zero is treated as a special enum value. In that
case, we already previously changed the value from -0 to +0 in step 1b.
Entering the branch for step 4 will then set it back to -0.

The math that follows after these steps worked fine with both +0/-0, but
assertions will be reached in the Intl MV implementation.
2022-07-20 18:21:24 +01:00
Linus Groh
042dfc7284 LibWeb: Move extract_mime_type() from XMLHttpRequest to HeaderList
Except some minor tweaks, this is a direct copy of Luke's initial
implementation in XMLHttpRequest, now replacing the former.
2022-07-20 18:03:21 +01:00
Linus Groh
69d324d46a LibWeb: Fix accidental (name, name) header in Headers::fill()
This makes two more WPT tests pass here:
http://wpt.live/fetch/api/headers/headers-basic.any.html
2022-07-20 18:03:21 +01:00
Tim Schumacher
7c824b84e2 LibC: Remove the initialization workaround from s_allocation_enabled 2022-07-20 18:24:13 +02:00
Tim Schumacher
3f59cb5e70 LibELF: Copy the entire TLS segment instead of each symbol one-by-one
This automatically fixes an issue where we were accidentally copying
garbage data from beyond the TLS segment as uninitialized data isn't
actually stored inside the image.
2022-07-20 18:24:13 +02:00
Tim Schumacher
6799b271bf LibELF: Remove outdated TLS handling in generic program header code 2022-07-20 18:24:13 +02:00
Tim Schumacher
224ac1a307 LibC: Remove a bunch of weak pthread_* symbols 2022-07-19 20:58:51 -07:00
Andreas Kling
cf4b7e343a LibWeb: Blockify inline-flex to flex
Previously, `inline-flex` would blockify to `block` since blockification
didn't take the inner display type into account. This is still not
perfect, but it fixes a lot of situations where inline-level flex
containers would be demoted to regular block containers.
2022-07-19 15:40:41 +02:00
Andreas Kling
ed8930fff5 LibWeb: Add accessors for UsedValues::computed_{width,height}
This is preparation for doing some more work when assigning to these
values.
2022-07-19 15:40:41 +02:00
MacDue
0b0a691ecd LibWeb: Fix overflow: hidden not applying to positioned descendants
This now calls before/after_child_paint() on the parent paintable
of a positioned child. This allows the parent's overflow clipping
to apply to the child.
2022-07-19 15:00:59 +02:00
MacDue
f079214b18 LibWeb: Apply overflow: hidden to all (relevant) child paint phases
Previously, before/after_children_paint() was only called for the
"Foreground" paint phase, this meant the backgrounds and other
features of child nodes of a element with overflow: hidden were
not clipped.
2022-07-19 15:00:59 +02:00
Andreas Kling
c517dfde12 LibWeb: Honor the flexbox spec's "automatic minimum size" everywhere
`min-width: auto` and `min-height: auto` have special behavior on flex
items. We already handled it in many cases but there were two places
where it was incorrectly treated as 0. This fixes that.
2022-07-19 12:45:50 +02:00
Andreas Kling
789f258412 LibWeb: Reject negative values for flex-grow and flex-shrink 2022-07-19 12:45:50 +02:00
Andreas Kling
f4c68eb0a4 LibJS: Add PrimitiveString::is_empty() and use it
If we're only interested in whether the string is empty, we can skip the
conversion from UTF-16 to UTF-8.
2022-07-19 12:45:50 +02:00
Daniel Bertalan
32480fbeb9 LibCore: Do not refer to extern int daylight in DateTime::to_string
This variable does not exist on FreeBSD.

Co-Authored-By: Al Hoang <13622+hoanga@users.noreply.github.com>
2022-07-19 12:39:24 +02:00
Daniel Bertalan
42e22f89a4 AK+LibGfx+LibJS: Pass -1 as the file descriptor to anonymous mmap
Serenity/Linux/macOS ignore the file descriptor when an anonymous
mapping is requested. However, BSDs require the fd to be -1.
2022-07-19 12:39:24 +02:00
Daniel Bertalan
4bed2ef66b LibCore: Port System::anon_create to FreeBSD
FreeBSD implements the Linux API, so this was very simple luckily.
2022-07-19 12:39:24 +02:00
kleines Filmröllchen
00e13b5b27 LibDSP: Rename library namespace to DSP
That's the standard naming convention, but I didn't follow it when
originally creating LibDSP and nobody corrected me, so here I am one
year later :^)
2022-07-19 11:17:45 +01:00
kleines Filmröllchen
3f59356c79 LibAudio: Rename ConnectionFromClient to ConnectionToServer
The automatic nomenclature change for IPC sockets got this one wrong.
2022-07-19 11:17:45 +01:00
Lucas CHOLLET
70846d701c LaunchServer+SystemServer: Move the portal to a user-specific directory
Various changes are needed to support this:
 - The directory is created by Core::Account on login (and located in
   /tmp).
 - Service's sockets are now deleted on exit (to allow re-creation)
 - SystemServer needs to handle SIGTERM to correctly destroy services.
2022-07-19 11:15:14 +01:00
MacDue
cdcdc095df LibCore: Add Core::debounce(function, timeout)
This is a simple helper to debounce a function call, such as
an event handler. It avoids the function being called until
the event as settled down (i.e. after the timeout).
2022-07-19 11:10:02 +01:00
Liav A
412a5999d0 Kernel+Userland: Remove GRAPHICS_IOCTL_GET_HEAD_EDID ioctl
We are able to read the EDID from SysFS, therefore there's no need to
provide this ioctl on a DisplayConnector anymore.
Also, now we can simply require the video pledge to be set before doing
any ioctl on a DisplayConnector.
2022-07-19 11:02:37 +01:00
Tim Schumacher
5870484d1a LibC: Remove the LibPthread interface target 2022-07-19 11:00:35 +01:00
Tim Schumacher
28061cf94d Everywhere: Fully remove the separate LibPthread directory 2022-07-19 11:00:35 +01:00
Tim Schumacher
2f3b9c49a5 LibPthread: Move the pthread and semaphore implementation to LibC
This additionally adds some compatibility code to redirect linking
attempts for LibPthread to LibC instead.
2022-07-19 11:00:35 +01:00
Tim Schumacher
e156f79f53 Everywhere: Refer to pthread.h by its non-prefixed name
This removes a bit of noise from the following patches, where we will
move the `pthread.h` header out of the `LibPthread` directory.
2022-07-19 11:00:35 +01:00
Lucas CHOLLET
7a8104e79b LibGUI: Add MoveLineUpOrDownCommand
This allows lines moved by Ctrl+Shift+[Up, Down] to be registered as a
command, i.e. cancellable by Ctrl+Z.

This patch also introduces the usage of TextDocument::[take,
insert]_line. Those functions forward changes to the visual lines and
then avoid some data mismatch.

Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2022-07-19 10:49:38 +01:00
Lucas CHOLLET
cf693136e2 LibGUI: Remove wrong casts in TextDocument.cpp 2022-07-19 10:49:38 +01:00
Lucas CHOLLET
d391f1fb2a LibGUI: Add TextDocument::take_line(size_t line_index)
This method is similar in all respects to remove_line except that it
returns the removed line.
2022-07-19 10:49:38 +01:00
Lucas CHOLLET
a85223e13b LibGUI: Add a default virtual destructor to virtual classes
Affected classes are children of TextDocumentUndoCommand:
 - InsertTextCommand
 - RemoveTextCommand
 - ReplaceAllTextCommand
2022-07-19 10:49:38 +01:00
Lucas CHOLLET
cb4844bf64 LibGUI: Add VerticalDirection::operator!
This allows to invert the direction of a VerticalDirection.
2022-07-19 10:49:38 +01:00
Andrew Kaster
d84fc60f96 LibCore: Add support for compiling for Android with API Version >= 30
Most changes are around user and group management, which are exposed in
the Android NDK differently than other Unices.

We require version 30 for memfd_create, version 28 for posix_spawn, and
so on. It's possible a shim for memfd_create could be used, but since
Google is mandating new apps use API level 30 as of Nov 2022, this seems
suitable.
2022-07-19 10:44:02 +01:00
Linus Groh
ed49b66f25 LibWeb: Implement '5.1. Headers class' from the Fetch API :^) 2022-07-19 00:27:35 +01:00
Linus Groh
b5ab1f6b4a LibWeb: Implement HeaderList::sort_and_combine() 2022-07-19 00:27:35 +01:00
Linus Groh
bad6ad8861 LibWeb: Implement CaseInsensitiveBytesTraits::equals()
Turns out HashTable::contains() doesn't solely use hash() for equality
checks, so the lack of a proper equals() implementation broke the check
in convert_header_names_to_a_sorted_lowercase_set() and caused duplicate
entries in header_names_set.
2022-07-19 00:27:35 +01:00
Linus Groh
2726fc9c73 LibWeb: Move Fetch infra into the Web::Fetch::Infrastructure namespace
The Fetch spec unfortunately will cause a name clash between the Request
concept and the Request JS object - both cannot live in the Web::Fetch
namespace, and WrapperGenerator generally assumes `Web::<Name>` for
things living in the `<Name>/` subdirectory, so let's instead move infra
code into its own namespace - it already sits in a (sub-)subdirectory
anyway.
2022-07-19 00:27:35 +01:00
Timothy Flynn
4b415a23c1 LibJS: Implement Intl.NumberFormat V3's [[RoundingIncrement]] changes 2022-07-18 23:37:31 +01:00
Timothy Flynn
8ee485c350 LibJS: Implement Intl.NumberFormat V3's [[RoundingMode]] changes 2022-07-18 23:37:31 +01:00
Timothy Flynn
800a0ddc63 LibJS: Relax integer size requirements on some NumberFormat helpers
These were changed to i8 while investigating the issues fixed by commit
9e50f25. When [[RoundingIncrement]] is implemented, some of these will
be invoked with [[RoundingIncrement]]'s value, which can be up to 5000.
Change these to i32, and wrap them with AK::Checked for good measure.
Also change a couple helpers that are always comparing against zero to
not need an explicit check.
2022-07-18 23:37:31 +01:00
Timothy Flynn
cb5f7bf696 LibJS: Add missing VERIFY_NOT_REACHED in string-to-enum conversion
Noticed this while working on [[RoundingMode]].
2022-07-18 23:37:31 +01:00
Kenneth Myhra
0a511e29d1 LibWeb: Add support for Blob to XHR::send() 2022-07-18 14:57:58 +01:00
Kenneth Myhra
9b3da5a142 LibWeb: Move extract_body() towards spec compliance 2022-07-18 14:57:58 +01:00
Kenneth Myhra
bc4ccadcac LibWeb: XHR::extra_body() rewrite to use Variant::visit() 2022-07-18 14:57:58 +01:00
Kenneth Myhra
48b59aaeb1 LibWeb: Mark body argument of extract_body() as const reference 2022-07-18 14:57:58 +01:00
Kenneth Myhra
1b9f5fa28a LibWeb: Mark URLSearchParams::to_string() as const 2022-07-18 14:57:58 +01:00
Kenneth Myhra
42e76d8de9 LibWeb: Rename safely_extract_body() to extract_body()
We have not yet implemented safely_extract_body so renaming this to
extract_body() and adding a spec link.
2022-07-18 14:57:58 +01:00
MacDue
0c521381a3 LibWeb: Replace LibGfx gradient painting with new GradientPainting 2022-07-18 10:10:22 +01:00
MacDue
469491906f LibWeb: Add GradientPainting for painting linear-gradients
This implements support for painting linear-gradients in a spec
correct way :^).

Right now it supports:

- Multi-stop gradients
- Color stop fixups
- Using pre-multiplied alpha mixing when required
- Painting gradients at arbitrary angles

It still needs to support:

- Transition hints
- Double position color stops

However what is implemented now seems to be accurate to other
browsers, and covers the most common use cases.
2022-07-18 10:10:22 +01:00
MacDue
4246d04e5a LibWeb: Calculate to <corner> angles for linear-gradients
This also renames LinearGradientStyleValue::angle() to
LinearGradientStyleValue::angle_degrees() to make the unit more
obvious.
2022-07-18 10:10:22 +01:00
Luke Wilde
9e06fe4b3f LibJS/Bytecode: Get result from accumulator in PerformEval
This is how the JS REPL retrieves the result of executing bytecode.
2022-07-18 09:00:21 +01:00