Commit graph

42852 commits

Author SHA1 Message Date
Luke Wilde
c247fefee7 LibWeb: Implement CSSStyleDeclaration.cssText 2022-11-07 14:10:41 +01:00
Luke Wilde
8066a67da2 LibWeb: Implement Element.getAttributeNode 2022-11-07 14:10:41 +01:00
Luke Wilde
469ef22a22 LibWeb: Add HTMLOrSVGElement.autofocus 2022-11-07 14:10:41 +01:00
Luke Wilde
b8b263d9c3 LibHTTP: Always send Content-Length header in POST requests
Required by Google services, Content-Length should always been sent,
even when there is no body.
2022-11-07 14:10:41 +01:00
Luke Wilde
1473bc9169 LibWeb: Implement HTMLOrSVGElement.tabIndex 2022-11-07 14:10:41 +01:00
Luke Wilde
6c21c72492 LibWeb: Stub XMLHttpRequest.abort 2022-11-07 14:10:41 +01:00
Karol Kosek
9805cdeaf5 ThemeEditor: Warn about unsaved changes on file open 2022-11-07 12:55:46 +00:00
Karol Kosek
6b8d351b40 TextEditor+HexEditor: Warn about unsaved changes after dropping files 2022-11-07 12:55:46 +00:00
Torstennator
65919bcbb5 PixelPaint: Remember visibility for histogram and vectorscope
This patch allows pixelpaint to remember if the histogram or vectorscope
was visible last time the application was used.
2022-11-07 12:39:44 +00:00
Alex Chronopoulos
e86cab00b6 AudioServer: Skip mixing when volume is zero
When volume is zero it is not necessary to go through the mixing loop.
The zero-filled buffer can be written directly to the device, instead,
similar to the muted case. Tested by using the piano app and the main
volume control.
2022-11-07 12:30:57 +00:00
Brianna
5822bc9cb5 Base: Add media emojis
Added
🔀 - U+1F500 Shuffle Tracks Button
🔁 - U+1F501 Repeat Button
🔂 - U+1F502 Repeat Single
🔃 - U+1F503 Clockwise Vertical Arrows
🔄 - U+1F504 Counterclockwise Arrows Button
🔙 - U+1F519 Back Arrow
Fixed color consistency
🔠 - U+1F520 Input latin uppercase
🔡 - U+1F521 Input latin lowercase
🔢 - U+1F522 Input numbers
🔣 - U+1F523 Input symbols
🔤 - U+1F524 Input latin letters
2022-11-07 12:26:01 +00:00
Gunnar Beutner
02186e2ee9 LibWeb: Skip anonymous layout nodes while finding the event target
This makes the links on nitter.net clickable, e.g. "preferences" in the
upper right corner.
2022-11-07 12:19:42 +00:00
Gunnar Beutner
e7a7895114 LibWeb: Move code for finding the parent element into a helper function
This exact same loop is repeated a couple of times.
2022-11-07 12:19:42 +00:00
martinfalisse
0586730a92 Base: Add tests for grid gap 2022-11-07 10:06:07 +01:00
martinfalisse
188856c5eb LibWeb: Implement gap in CSS Grid 2022-11-07 10:06:07 +01:00
martinfalisse
2b69fa5649 LibWeb: Add some helpers for TemporaryTrack
Add some helpers to the TemporaryTrack struct to assist in making future
commits more legible.
2022-11-07 10:06:07 +01:00
martinfalisse
9e6612c49b LibWeb: Parse CSS gap property
Including the legacy grid-gap, grid-column-gap and grid-row-gap
properties.
2022-11-07 10:06:07 +01:00
Slimey
e00b16460c Base+VideoPlayer: Add an icon for video player
Co-authored-by: TreuKS <ks2225@protonmail.com>
2022-11-06 22:27:22 -08:00
Brian Gianforcaro
d736b2c3c3 Ports: Update fio to version 3.33 2022-11-07 06:46:30 +01:00
Daniel Bertalan
4296425bd8 Everywhere: Remove redundant inequality comparison operators
C++20 can automatically synthesize `operator!=` from `operator==`, so
there is no point in writing such functions by hand if all they do is
call through to `operator==`.

This fixes a compile error with compilers that implement P2468 (Clang
16 currently). This paper restores the C++17 behavior that if both
`T::operator==(U)` and `T::operator!=(U)` exist, `U == T` won't be
rewritten in reverse to call `T::operator==(U)`. Removing `!=` operators
makes the rewriting possible again.
See https://reviews.llvm.org/D134529#3853062
2022-11-06 10:25:08 -07:00
Gunnar Beutner
4e406b0730 Meta+LibUnicode: Avoid relocations for emoji data
Previously each emoji had its own symbol in the library which was then
referred to by another symbol. This caused thousands of avoidable data
relocations at load time.

This saves about 122kB RAM for each process which uses LibUnicode.
2022-11-06 17:34:06 +01:00
Gunnar Beutner
2d3567ee92 Meta+LibUnicode: Avoid relocations for static unicode data
Previously the s_decomposition_mappings variable would refer to other
data in s_decomposition_mappings_data. This would cause thousands of
avoidable relocations at load time.

This saves about 128kB RAM for each process which uses LibUnicode.
2022-11-06 17:34:06 +01:00
Slimey
fb71df5cb1 Base: Add appropriate entries for VideoPlayer
VideoPlayer will now show up in the Media category, and `vp` is now
an alias for it.
2022-11-06 16:27:18 +01:00
Slimey
ce75a04908 Base+Ports: Rename 'Sound' category to 'Media' 2022-11-06 16:27:18 +01:00
Slimey
bb95374b49 VideoPlayer: Add quit action and help menu
I also moved the menubar initialization code to VideoPlayerWidget in
order to keep all of the bulk out of main.cpp :)
2022-11-06 16:27:18 +01:00
Slimey
8006bdf6b4 VideoPlayer: Show current open file in the title 2022-11-06 14:49:09 +01:00
martinfalisse
13ac078202 Base: Add test for sizing children of grid 2022-11-06 13:23:33 +01:00
martinfalisse
03949296c7 LibWeb: Calculate grid content height using column width
Should use the min_content_height function for calculating the height of
content. Thanks to previous commits, are able to use the width of the
column for this calculation.
2022-11-06 13:23:33 +01:00
martinfalisse
7474827747 LibWeb: Use AvailableSpace when referring to the grid width
Should use AvailableSpace to get the grid width instead of
box_state.content_width().

This change was imposed on me by the compiler as in a future commit I
will remove the only reference to the available_space parameter.
2022-11-06 13:23:33 +01:00
martinfalisse
60341995fe LibWeb: Calculate grid columns first, and grid rows second
As per the spec, it seems that the size of the columns of the grid
should be calculated first, and then the sizes of the rows. This commit
reorders the code for the sizing of the grid to match the spec.

This will be used in a future commit so as to calculate the height of a
row based on the resolved final width of a column.
2022-11-06 13:23:33 +01:00
martinfalisse
24c4d7fb46 LibWeb: Calculate available space for children of the grid
Previously were not passing along any information to the children
of the grid, as were simply passing the same AvailableSpace that was
received for the grid itself. Now, each child is given an available
space in accordance with the layout of the grid.
2022-11-06 13:23:33 +01:00
Baitinq
0758bc457e LibWeb: Replace some unnecessary ShadowRoot verify_cast with static_cast
These two occurrences of verify_cast happened right after a check on the
type of converted reference, making the verify_cast redundant.
2022-11-06 12:13:32 +00:00
Timothy Flynn
5e5cdb2d28 LibJS: Remove the now-unused LocalTZA AO 2022-11-06 01:47:37 +00:00
Timothy Flynn
f211028252 LibJS: Change ToLocalTime to use epoch nanoseconds
This is an editorial change to the ECMA-402 spec. See:
b3f9a1b
2022-11-06 01:47:37 +00:00
Timothy Flynn
9a9025dea0 LibJS: Remove infallibility marker from DefaultTimeZone invocation
This is an editorial change to the ECMA-402 spec. See:
46aa5cc

Also add an ECMA-402 spec link to the DefaultTimeZone implementation, as
that definition supersedes ECMA-262.
2022-11-06 01:47:37 +00:00
MacDue
d66b219453 Base: Add some extra conic-gradient() test cases
This adds a test of a conic-gradient() with just a center position
and no starting angle.

This also adds a gradient that gives each quadrant a different color,
this is very sensitive to the center position being correct.
2022-11-06 01:42:55 +00:00
MacDue
b2a0d70ef3 LibWeb: Fix some conic-gradient() painting issues
This makes the center position the center of the pixel rather than
the top left corner (which fixes some small artifacts on a few
gradients).

This also now floors the angle used to sample from the gradient line,
this avoids the colors diverging the further away from the center you
get (which is noticeable on hard-edge gradients).
2022-11-06 01:42:55 +00:00
MacDue
51cd37110a LibWeb: Fix parsing conic-gradient()s with only at <position>
This fixes parsing conic-gradient()s like:

  conic-gradient(at 60% 45%, red, yellow, green)

Where you have a center position but no starting angle.
2022-11-06 01:42:55 +00:00
Clemens Wasser
e5ddbfaed6 Ports: Enable ssl and ztd features for Qt port 2022-11-05 19:31:37 -06:00
Clemens Wasser
2a852250dd Ports: Build Qt modules Network and Concurrent 2022-11-05 19:31:37 -06:00
Clemens Wasser
64ab5bb835 LibC: Add missing definitions for IPv6 packet info 2022-11-05 19:31:37 -06:00
Clemens Wasser
7c0286a5c2 LibC: Implement pthread_testcancel 2022-11-05 19:31:37 -06:00
Liav A
8d8b0d0a34 Userland: Add support for jails
This happens in two ways:
1. LibCore now has two new methods for creating Jails and attaching
   processes to a Jail.
2. We introduce 3 new utilities - lsjails, jail-create and jails-attach,
   which list jails, create jails and attach processes to a Jail,
   respectively.
2022-11-05 18:00:58 -06:00
Liav A
1d0066a5cc Userland/pls: Use Core::System::exec_command method to execute a command 2022-11-05 18:00:58 -06:00
Liav A
0d1af1ad63 LibCore: Add System::exec_command method
This method was taken from the pls utility and its purpose is to execute
a given command with all the required requirements such as providing a
suitable exec environment.
2022-11-05 18:00:58 -06:00
Liav A
942e262e86 Base: Add information about the new /sys/kernel/jails node 2022-11-05 18:00:58 -06:00
Liav A
5e062414c1 Kernel: Add support for jails
Our implementation for Jails resembles much of how FreeBSD jails are
working - it's essentially only a matter of using a RefPtr in the
Process class to a Jail object. Then, when we iterate over all processes
in various cases, we could ensure if either the current process is in
jail and therefore should be restricted what is visible in terms of
PID isolation, and also to be able to expose metadata about Jails in
/sys/kernel/jails node (which does not reveal anything to a process
which is in jail).

A lifetime model for the Jail object is currently plain simple - there's
simpy no way to manually delete a Jail object once it was created. Such
feature should be carefully designed to allow safe destruction of a Jail
without the possibility of releasing a process which is in Jail from the
actual jail. Each process which is attached into a Jail cannot leave it
until the end of a Process (i.e. when finalizing a Process). All jails
are kept being referenced in the JailManagement. When a last attached
process is finalized, the Jail is automatically destroyed.
2022-11-05 18:00:58 -06:00
Liav A
d69a0380e1 Kernel: Add copy_typed_from_user for non-const Userspace<T*> 2022-11-05 18:00:58 -06:00
Oleg Kosenkov
46c6176fad Games: Add BrickGame 2022-11-05 16:35:13 -06:00
Dan Klishch
73f4cfa930 AK: Introduce fixed-width floating point types (f32, f64, f80 and f128) 2022-11-05 16:04:12 -06:00