1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:58:12 +00:00
Commit graph

10903 commits

Author SHA1 Message Date
FrHun
8081a8a5de LibGUI: Add layout spacer support to GML
This is a bit of a hack, but it is an easy way to finally get spacers
into GML.
This will translate well if spacers are later to become child objects of
the continer widget.
2022-06-10 21:26:06 +01:00
FrHun
d1d5602132 LibGUI: Fix crash when clicking on small Scrollbar gutter
When a Scrollbar becomes too small to display a scrubber, clicking on
the empty gutter failed the VERIFY. This fixes that oversight.
2022-06-10 20:58:53 +01:00
Tim Schumacher
2a27644220 LibPthread: Implement cleanup handlers 2022-06-10 19:06:46 +01:00
Jelle Raaijmakers
a39c38840e LibIPC: Make noise when shutting down because of an error
Previously, an IPC connection error could shut down the entire process
without giving a hint as to what's wrong. Now, we report that error to
the debug console.
2022-06-10 16:35:05 +01:00
Luke Wilde
d06785a8a4 LibWeb/CSS: Add :focus-within serialisation 2022-06-10 15:25:24 +01:00
Luke Wilde
0ff66b6ed8 LibWeb/CSS: Add :nth-of-type and :nth-last-of-type serialisation 2022-06-10 15:25:24 +01:00
Luke Wilde
210c3795f9 LibWeb: Apply content filter to DNS prefetch and pre-connect
Performing DNS prefetch or pre-connect on filtered URLs is wasteful,
as we would block any actual use further down the line.

A bunch of websites perform DNS prefetch and/or pre-connect to trackers
as well, for example:
```
prefetch DNS for 'https://adserver-us.adtech.advertising.com/'
prefetch DNS for 'https://secure.adnxs.com/'
prefetch DNS for 'https://bidder.criteo.com/'
prefetch DNS for 'https://static.criteo.net/'
prefetch DNS for 'https://cdn.krxd.net/'
prefetch DNS for 'https://widgets.outbrain.com/'
prefetch DNS for 'https://images.outbrain.com/'
prefetch DNS for 'https://log.outbrain.com/
prefetch DNS for 'https://amplifypixel.outbrain.com/'
prefetch DNS for 'https://odb.outbrain.com/'
prefetch DNS for 'https://js-sec.indexww.com/'
prefetch DNS for 'https://as-sec.casalemedia.com/'
prefetch DNS for 'https://as.casalemedia.com/'
prefetch DNS for 'https://sofia.trustx.org/'
prefetch DNS for 'https://c.amazon-adsystem.com/'
prefetch DNS for 'https://s.amazon-adsystem.com/'
prefetch DNS for 'https://aax.amazon-adsystem.com/'
prefetch DNS for 'https://t.teads.tv/'
prefetch DNS for 'https://beacon.krxd.net/'
pre-connect to 'https://www.google-analytics.com/'
pre-connect to 'https://www.googletagmanager.com/'
```
2022-06-10 12:15:37 +01:00
Linus Groh
4c77575ec5 LibJS: Simplify Temporal unit AOs
This is an editorial change in the Temporal spec.

See: 1b3d018
2022-06-10 12:39:11 +02:00
Linus Groh
b9beb2b120 LibJS: Remove unnecessary ToLimitedTemporalDuration AO
This is an editorial change in the Temporal spec.

See: c6571f4
2022-06-10 12:39:11 +02:00
Linus Groh
237f537b5c LibJS: Align DifferenceTemporalInstant with similar AOs
This is an editorial change in the Temporal spec.

See: cf9118b
2022-06-10 12:39:11 +02:00
Linus Groh
3bb94dd62e LibJS: Refactor Temporal parse AOs
This is an editorial change in the Temporal spec.

See: 7fe29eb
2022-06-10 12:39:11 +02:00
Linus Groh
86e22abd76 LibJS: Rename DefaultMergeFields to DefaultMergeCalendarFields
This is an editorial change in the Temporal spec.

See: 0ee80b2
2022-06-10 12:39:11 +02:00
Linus Groh
125530c71d LibJS: Mark a call of CreateTemporalDate as infallible
This is an editorial change in the Temporal spec.

See: c403d3f
2022-06-10 12:39:11 +02:00
Lucas CHOLLET
d288c700c7 LibCore: Add a wrapper for endgrent() 2022-06-09 22:08:04 +02:00
stelar7
94bb5a779b LibWeb: Use long long where it was replaced with long 2022-06-06 22:34:45 +01:00
stelar7
96caf3aed1 LibWeb: Adjust implementation of Document::create_event
With this change, it no longer calls TODO() and crashes WebContent
2022-06-06 22:20:30 +01:00
Tim Schumacher
87da3e0004 tar: Implement support for GNU longname headers 2022-06-06 20:12:30 +01:00
Karol Kosek
a0bea0b86f LibWeb: Calculate floating elements width using min- and max-width
Previously, floating elements computed the width by only using the
`width` property. Now, they will also use the `min-width` and
`max-width` properties. :^)

The new steps are from "10.4. Minimum and maximum widths: 'min-width'
and 'max-width'" in the CSS 2 spec.

Found it when looking at curl.se.
2022-06-06 09:14:42 +01:00
MacDue
fddff5f4f6 LibCore: Remove ConfigFile::write_color_entry()
This method is currently unused and adds an unwanted dependency on
LibGfx.

This also adds some missing `LibGfx/Color.h` includes.
2022-06-05 22:42:35 +01:00
kleines Filmröllchen
a7a5721149 LibWeb: Dispatch mouse events to topmost element instead of hit target
This improves our spec compliance by allowing the user to click
non-element nodes (like text) and having the click be registered with
the parent element (like a div or button). This makes Fandom's cookie
accept button work if you click the text. Additionally, the events test
page contains a test to check the target element, which would previously
not exist when we fired the event at a non-element.
2022-06-05 22:31:06 +01:00
networkException
b0461c1522 LibIPC: Process remaining read bytes before shutting down due to EOF
Previously we would shut down an ipc connection regardless of if there
were still bytes that have been read and not been handed over to
processing, causing WindowServer not to receive
WindowServer::SetFlashFlush messages sent by `wsctl -f` except the first
one.

This patch fixes that behavior by still shutting the connection down due
to having reached EOF while also processing remaining bytes.

Resolves #12954

See also #8912 which fixes the same issue that this patch fixes but also
seems to have initially broken SettingsWindow cancel not actually
closing the window unless the cursor got moved as described in #12003.
Pull request #12547 fixing the SettingsWindow behavior broke `wsctl`
again by always shutting down.
2022-06-05 22:10:02 +01:00
MacDue
a705741be3 LibWeb: Paint list markers antialiased 2022-06-05 16:16:17 +01:00
MacDue
5fd3716e2f LibGfx: Fix antialiased circles becoming too pointy at small sizes
The issue mentioned in the previous FIXME also applied to circles,
I just had not noticed. This is still not a prefect fix rather it
just papers over it, but it now seems to render circles correctly.
2022-06-05 13:58:40 +01:00
networkException
52ee5026ea LibGUI+Browser: Fix crash when activating a "Tab n" action
Previously we would try setting the tab index regardless if that tab
actually existed, resulting in Browser crashing by either pressing
Control + N or using the CommandPalette.
2022-06-05 13:46:52 +01:00
Luke Wilde
971d6ce16f LibGL: Reject GL_LEFT and GL_RIGHT in glCullFace
glCullFace only accepts GL_FRONT, GL_BACK and GL_FRONT_AND_BACK.
We checked if the mode was valid by performing
```
cull_mode < GL_FRONT || cull_mode > GL_FRONT_AND_BACK
```

However, this range also contains GL_LEFT and GL_RIGHT, which we would
accept when we should return a GL_INVALID_ENUM error.
2022-06-04 22:25:16 +01:00
May
47f4bfea35 LibC: Make asctime_r() in time.h POSIX compliant
Previously, when the asctime_r() buffer overflowed, we would fail an
assertion.
This patch modifies asctime_r() to instead set errno and return null.
2022-06-04 12:23:25 +01:00
Idan Horowitz
34e193afa6 LibWeb: Reject invalid background-repeat values instead of crashing 2022-06-03 19:14:22 +01:00
Idan Horowitz
56ec781aea LibWeb: Support DocumentFragments in Node.prototype.cloneNode
In this case, "Do nothing" means do nothing *extra* aside from creating
a new instance.
2022-06-03 17:24:24 +01:00
stelar7
e547f5887e LibWeb: Fix Array OOBs in the HTMLTokenizer
Accessing last() if there are no elements makes WebContent crash :^)
2022-06-03 12:29:11 +01:00
stelar7
771e3b9868 LibJS: Stub out String.prototype.normalize 2022-06-02 23:04:27 +01:00
Karol Kosek
5f89369f67 LibGUI: Use default buttons in ColorPicker and FontPicker 2022-06-02 22:33:00 +02:00
Karol Kosek
a232395b77 LibWeb: Check recursively if CSS functions contain var() or attr()
Previously, `var()` inside functions like `rgb()` wasn't resolved.

This will set the background color for badges in the New category on
https://ports.serenityos.net. :^)
2022-06-02 22:31:41 +02:00
Luke Wilde
bc5dd8dd0f LibGL: Check that texture name is allocated before marking it as free
glDeleteTextures previously did not check that the texture name was
allocated by glGenTextures before adding it to the free texture name
list.

This means that if you delete a texture twice in a row, the name will
appear twice in the free texture list, making glGenTextures return the
same texture name twice in a row.
2022-06-02 13:14:39 +02:00
MacDue
8c2a5bbc15 LibGfx: Implement antialiased outline ellipsis
This is a first pass at antialiased outline ellipses, currently
this is done by painting two filled AA ellipses, and then
subtracting the inner ellipse from the outer.

This produces a good result, but unfortunately requires allocating
a temporary bitmap in the painter. I did try a simpler method
using the existing line painting functions, and drawing the
ellipse as many line segments, but that produced very poor results.

I think with some work it should be possible to remove the extra
allocation, and I've left a big FIXME for this, but I could not
get this working well.
2022-06-01 19:33:45 +02:00
MacDue
8ac5f625e9 LibGfx: Rename draw_ellipse/circle to fill_ellipse/circle
This makes these functions more consistent with the non-aa painter.
2022-06-01 19:33:45 +02:00
Olivier De Cannière
5a3321b899 Taskbar+Desktop: Add super+D keyboard shortcut
This shortcut has the same effect as pressing the "Show Desktop" button
in the taskbar. This shortcut already exists in Windows.
2022-06-01 19:31:34 +02:00
Olivier De Cannière
6c202ee4a9 LibGUI: Fix typo in ConnectionToWindowManagerServer 2022-06-01 19:31:34 +02:00
networkException
524f4be5af LibGUI+WindowServer: Propagate action icon changes to buttons and menus
Previously when setting an action's icon we would only change the bitmap
stored by the action. This patch adds logic to propagate that change to
toolbar buttons as well as window menus.

This fixes an issue in SoundPlayer that would cause the play button not
to reflect the play state.
2022-06-01 12:33:06 +01:00
Luke Wilde
adb5f7e485 LibXML+Tests: Consume > in the character data ending ]]> and test it
For example, with this input:
```xml
<C>]]>
```
After seeing `<C>`, the parser will start parsing the content of the
element. The content parser will then parse any character data it sees.

The character parser would see the first two `]]` and consume them.
Then, it would see the `>` and set the state machine to say we have
seen this, but it did _not_ consume it and would instead tell
GenericLexer that it should stop consuming characters. Therefore,
we only consumed 2 characters.

Then, it would see that we are in the state where we've seen the
full `]]>` and try to take off three characters from the end of the
consumed input when we only have 2 characters, causing an assertion
failure as we are asking to take off more characters than there really
is.
2022-05-30 00:16:17 +01:00
Geordie Hall
9a97ffe883 LibGUI: Add side mouse buttons as an alternate shortcut for back/forward
The up/down side mouse buttons will now also trigger the back/forward
common actions, as used by the Browser, File Manager etc.

This matches standard behaviour of most apps on other operating systems.
2022-05-30 00:13:27 +01:00
Geordie Hall
4efcf3cc8e LibGUI: Activate mouse shortcuts from within WindowServerConnection
We now check if a mouse_down event matches any action shortcuts,
and if so activate it accordingly, following the same consumption
rules to key_down events.
2022-05-30 00:13:27 +01:00
Geordie Hall
737c1c86dc LibGUI: Search for actions with a Shortcut instead of for KeyEvent
Instead of having widget/window/application create a shortcut from a
KeyEvent within their find methods, we'll just pass them a Shortcut
so that the "where to search" logic doesn't need to be duplicated
for different Shortcut types.

It also lets us handle invalid Shortcut rejection at a higher level,
with most things letting the caller be responsible for not searching
for actions with an invalid shortcut.
2022-05-30 00:13:27 +01:00
Geordie Hall
a252c3e058 LibGUI: Allow Shortcuts to have a mouse button associated with them
A Shortcut can now be either have a keyboard key, or a mouse button,
along with any modifiers.

Decided to add an extra type field instead of subclassing, which means
callers will have to be a little careful before accessing a particular
input method's "key", but it keeps things simple for now.
2022-05-30 00:13:27 +01:00
Geordie Hall
8b9b836a0e LibGUI: Add a to_string helper for GUI::MouseButton
It's useful to be able to print mouse button names to the user in other
parts of the system.

Went with a hardcoded switch instead of an enumeration macro like
KeyCode since there were only a handful of cases, and it's unlikely that
many more will ever be added (but can always change it then)
2022-05-30 00:13:27 +01:00
DexesTTP
bf6c4835e6 LibWeb: Allow configuring the default error page path 2022-05-29 23:00:04 +01:00
DexesTTP
26bb95425d LibWeb: Allow configuring the default favicon path
This is useful when using LibWeb in environments that aren't Serenity
2022-05-29 23:00:04 +01:00
Linus Groh
de90faa4c4 LibGfx: Change one instance of 'colour' to 'color'
The system's official language is American English.
2022-05-29 15:22:00 +02:00
Linus Groh
173dcfb7cb Everywhere: Fix a bunch of typos 2022-05-29 15:22:00 +02:00
Rafał Babiarz
b162b7eec6 Browser+LibWeb+WebContent: Add ability to inspect session storage 2022-05-28 23:54:06 +01:00
huttongrabiel
2cfbb9a0e8 LibGUI: Implement case inversion in Vim emulation
When in visual mode with text selected, on Key_Tilde press, uppercase
characters convert to lowercase and lowercase ones to uppercase.
2022-05-26 21:51:23 +01:00