Commit graph

37733 commits

Author SHA1 Message Date
Sam Atkins
28278efafb LibWeb: Extract MediaType to/from_string() logic into functions 2022-04-29 00:07:31 +02:00
Sam Atkins
1f114eaebe LibWeb: Allow whitespace inside An+B again and use StateTransactions
I accidentally broke parsing of internal whitespace (eg `-3n + 7`
instead of `-3n+7`) when implementing `:nth-child(An+B of foo)`.
2022-04-29 00:07:31 +02:00
Sam Atkins
a490f24a2d LibWeb: Add StateTransaction RAII to CSS TokenStream
This is modeled after the one in ISO8601Parser. It rolls back the
TokenStream state automatically at the end of scope unless told to
commit the changes. This should be less error-prone than remembering to
manually call `rewind_to_position()` at the correct time.

For convenience, a StateTransaction can have "child" transactions. When
a transaction is committed, it automatically commits its parents too.
This is useful in situations where you have several nested and don't
want to have to remember to manually `commit()` them all.
2022-04-29 00:07:31 +02:00
Sam Atkins
5c8ff96a94 LibWeb: Move variables in parse_a_n_plus_b_pattern() closer to usage
`a` and `b` had to be declared at the top of the function before since
they were used by the `make_return_value()` lambda. But now that
doesn't exist, we can move them to where they are used - or eliminate
them entirely.
2022-04-29 00:07:31 +02:00
Sam Atkins
f2d6bdce3f LibWeb: Handle trailing tokens outside of parse_a_n_plus_b_pattern()
parse_a_n_plus_b_pattern()'s job is to parse as much of the TokenStream
as it can as a An+B, and then stop. The caller can then deal with any
trailing tokens as it wishes.
2022-04-29 00:07:31 +02:00
Sam Atkins
d6ae08d023 LibWeb: Rename a local variable to not collide with a parameter 2022-04-29 00:07:31 +02:00
Sam Atkins
d784a8aaf0 LibWeb: Replace Result with ErrorOr in CSS Parser
...using a ParseErrorOr type alias.

This lets us replace a bunch of manual error-checking with TRY. :^)

I also replaced the ParsingResult::Done value with returning an
Optional. I wasn't happy with treating "Done" as an error when I first
wrote this, and this makes a clear distinction between the two.
2022-04-29 00:07:31 +02:00
Sam Atkins
761d29d647 LibWeb: Make CSS ParsingContext::m_url not Optional
This always has a value, so let's make that clearer.
2022-04-29 00:07:31 +02:00
huttongrabiel
25970f2763 LibMarkdown: Add strike-through text support to markdown
Using ~~text~~ syntax will strike out the text between the two tildes.

Only missing portion is the terminal rendering of strike through text.
The ansi escape codes for strike through text are \e[9m and \e[29m but
it appears the terminal does not support these. Please correct me if I
am wrong.

I tested that the render_to_terminal function was being called by giving
it bold ANSI escape codes, and that did work so the function is being
called correctly.
2022-04-28 22:15:08 +02:00
Joel Hansen
45f3fffbad Base: Improvements to the Light theme
- Adding more suitable "icons-only" buttons.
- Adding WindowShadow from default theme.
2022-04-28 22:14:43 +02:00
MacDue
ac0d708634 ThemeEditor: Add preview window with 'Highlighted' window state
This state has been occasionally missed in themes, adding it
to the preview may help avoid that.
2022-04-28 22:14:18 +02:00
MacDue
332574608c ThemeEditor: Center preview windows accounting for window frame 2022-04-28 22:14:18 +02:00
Liav A
5ed3f7c6bf Kernel/Storage: Migrate the partition code to use the ErrorOr container
That code used the old AK::Result container, which leads to overly
complicated initialization flow when trying to figure out the correct
partition table type. Instead, when using the ErrorOr container the code
is much simpler and more understandable.
2022-04-28 22:13:54 +02:00
brapru
19912a0b32 Kernel+Utilities: Add the route utility
This exposes the global routing table in the /proc directory and adds
the userspace utility to query dynamically add from the table.
2022-04-28 08:41:11 -07:00
brapru
419cd479e2 Kernel: Use TRY to handle string copies in GlobalProcessExposed
Each of these string copies are already inside of an ErrorOr context so
any failed copy should propagate.
2022-04-28 08:41:11 -07:00
brapru
8596b1e0c3 Kernel: Add a global routing table
Previously the system had no concept of assigning different routes for
different destination addresses as the default gateway IP address was
directly assigned to a network adapter. This default gateway was
statically assigned and any update  would remove the previously existing
route.

This patch is a beginning step towards implementing #180. It implements
a simple global routing table that is referenced during the routing
process. With this implementation it is now possible for a user or
service (i.e. DHCP) to dynamically add routes to the table.

The routing table will select the most specific route when possible. It
will select any direct match between the destination and routing entry
addresses. If the destination address overlaps between multiple entries,
the Kernel will use the longest prefix match, or the longest number of
matching bits between the destination address and the routing address.
In the event that there is no entries found for a specific destination
address, this implementation supports entries for a default route to be
set for any specified interface.

This is a small first step towards enhancing the system's routing
capabilities. Future enhancements would include referencing a
configuration file at boot to load pre-defined static routes.
2022-04-28 08:41:11 -07:00
brapru
0718b20df0 Kernel: Generalize the UpdateArp table to UpdateTable
We can use the same enum cases to apply to updates on different
networking tables within the Kernel (i.e. a routing table)
2022-04-28 08:41:11 -07:00
Patrick Meyer
03d38e3ab8 Ports: Update dropbear port to 2022.82 2022-04-28 08:38:24 -07:00
Jelle Raaijmakers
f8c81b2f01 LibCore: Remove fixed EventLoop FIXME
This was resolved in commit f25123df66.
2022-04-27 22:59:15 +02:00
Tim Schumacher
a87c85f401 unzip: Create parent directory before extracting files 2022-04-27 11:54:57 +02:00
Jelle Raaijmakers
f25123df66 LibCore: Remove main event loop
The main event loop functionality was used in just two places where the
alternative is a bit simpler. Remove it in favor of referencing the
event loop directly, or just invoking `EventLoop::current()`.

Note that we don't need locking in the constructor since we're now only
modifying a thread-local `Vector`. We also don't need locking in the
old call sites to `::with_main_locked()` since we already lock the
event loop in the subsequent `::post_event()` invocation.
2022-04-27 11:54:37 +02:00
Jelle Raaijmakers
9e2a619fdc LibCore: Remove unused EventLoop::is_main_event_loop() 2022-04-27 11:54:37 +02:00
Jelle Raaijmakers
0bf56e6b40 LibCore: Fix typo in EventLoop comment 2022-04-27 11:54:37 +02:00
timre13
14751a4122 HackStudio: Update window close button on document change 2022-04-27 00:49:54 -07:00
huttongrabiel
1e65e916fc LibMarkdown: Correct typo in forward declaration of HorizontalRule
HoriziontalRule -> HorizontalRule
2022-04-26 23:23:36 -07:00
Peter Elliott
287c6228b5 LoginServer: Change login fail message to avoid enumeration attacks
The current message distinguishes between a user that doesn't exist, and
an invalid password. This is considered to be bad practice, because an
attack can first check if a user exists before guessing that users
password.

Also it's just tradition or something.
2022-04-26 21:57:24 -07:00
kleines Filmröllchen
19f6ef3a0c HexEditor: Add UTF16 to the value inspector 2022-04-27 00:02:24 +02:00
kleines Filmröllchen
ef113b2f91 HexEditor: Add UTF8 to the value inspector 2022-04-27 00:02:24 +02:00
kleines Filmröllchen
e5736cdf2f HexEditor: Add ASCII to the value inspector
This is kind of redundant but probably easier to read than the ASCII
column. Also, it seems appropriate after we add other character
encodings.
2022-04-27 00:02:24 +02:00
kleines Filmröllchen
da7a8a8711 HexEditor: Don't require the ValueInspectorModel's value size to be i32 2022-04-27 00:02:24 +02:00
kleines Filmröllchen
df57536c40 AK: Put invalid UTF8 debug spam behind a flag
This is very annoying if we're (intentionally) passing invalid UTF8 into
Utf8View.
2022-04-27 00:02:24 +02:00
b14ckcat
c65a6b6b22 Kernel: Use C++17 namespace style for nested PCI namespace
Adjust the nested namespace formatting in PCI files to use the nicer
and more consistent C++17 style.
2022-04-26 22:56:45 +02:00
b14ckcat
d8d7b5d82c Kernel: Put USB request constants in namespace
Moved constants in USBRequest.h from global scope to the Kernel::USB
namespace.
2022-04-26 22:56:45 +02:00
Moustafa Raafat
0a3467d665 LibConfig+ConfigServer: Write config values synchronously
This patch fixes the issue of pressing the ok button of a settings menu
without saving the changes, or not reverting the changes when pressing
the cancel button because the app has died before the new values make
it to the other end.
2022-04-26 22:51:49 +02:00
kleines Filmröllchen
0a14732aa8 Documentation: Add more clangd configuration options
This should make clangd work very well. I totally forgot to add this...
2022-04-26 22:47:27 +02:00
circl
8cdbad3c7a Ports: Use correct packages.db location in build_installed.sh
The packages.db file now resides in Serenity's root.
2022-04-26 22:45:48 +02:00
circl
2130a83640 Ports: Make .hosted_defs.sh usable outside of .port_include.sh
This commit moves some stuff around in order to isolate .hosted_defs.sh
from .port_include.sh
2022-04-26 22:45:48 +02:00
Adam Patterson
452334ab6e Documentation: Add EmacsConfiguration.md for emacs editor support
Emacs takes a little work to get working with Serenity.
2022-04-26 22:43:50 +02:00
Ralf Donau
e11fb83bb7 config: Allow setting a key to the empty string 2022-04-26 22:42:54 +02:00
kleines Filmröllchen
a67bbf1ac4 Meta: Re-enable automatic virtualization detection on Windows
Before, we wouldn't enable virtualization on Windows anymore unless
SERENITY_VIRTUALIZATION_SUPPORT was set explicitly. As far as we know,
there's no automatic way of detecting whether WHPX is enabled or not. So
we'll just enable virtualization on Windows by default, and if that
doesn't work the user can still disable it manually with
SERENITY_VIRTUALIZATION_SUPPORT=0.
2022-04-26 22:42:38 +02:00
networkException
64c66e26f5 LibGUI: Check if event loop is alive before quitting it in Dialog::close
Previously we would quit the event loop of a dialog without checking if
it is still alive in the Window::close overload. This patch updates the
implementation to make use of the existing done method, handling closes
more gracefully.

This fixes a CommandPalette crashing when opening an about dialog, as
since 1074c399f3 the command palette
dialog would handle a WindowBecameInactive event after closing itself
due to the action already being called.
2022-04-26 22:41:44 +02:00
Linus Groh
cd3e337487 Kernel: Strip null terminators from all CPUID strings, not just brand
I've noticed that the KVM hypervisor vendor ID string contained null
terminators in the serialized JSON string in /proc/cpuinfo - let's avoid
that, and err on the side of caution and strip them from all strings
built from CPUID register values. They may not be fixed width after all.
2022-04-26 20:20:44 +02:00
ForLoveOfCats
2adc5efe2b LibGUI: Don't merge TextDocumentUndoCommand if too much time has elapsed 2022-04-26 19:13:22 +02:00
ForLoveOfCats
ee81c1b07a LibGUI: Split InsertTextCommand undo/redo based on whitespace 2022-04-26 19:13:22 +02:00
ForLoveOfCats
68aec687cf LibGUI: Use ctrl+shift+z for redo action shortcut 2022-04-26 19:13:22 +02:00
Tim Schumacher
8eb886f069 LibC: Don't handle pending exceptions when reading FPU status 2022-04-26 15:02:56 +02:00
Peter Elliott
5847d326c3 LibMarkdown: Treat whitespace-only lines as blank in paragraphs 2022-04-26 15:02:26 +02:00
Peter Elliott
aef5aac772 LibMarkdown: Don't put a newline in empty code blocks
This doesn't actually matter, but I'm trying to match the commonmark
test cases where possible.
2022-04-26 15:02:26 +02:00
Peter Elliott
e084e1ced6 LibMarkdown: Better support for code fences
- Support tildes.
- Support different lengths of fence.
- Begrudgingly keep support for serenities one markdown extension.
2022-04-26 15:02:26 +02:00
Peter Elliott
4d3454d700 LibMarkdown: Support up to 3 spaces before an ATX header 2022-04-26 15:02:26 +02:00