Commit graph

36764 commits

Author SHA1 Message Date
Andreas Kling 02a95a196f Kernel: Use AddressSpace region tree for range allocation
This patch stops using VirtualRangeAllocator in AddressSpace and instead
looks for holes in the region tree when allocating VM space.

There are many benefits:

- VirtualRangeAllocator is non-intrusive and would call kmalloc/kfree
  when used. This new solution is allocation-free. This was a source
  of unpleasant MM/kmalloc deadlocks.

- We consolidate authority on what the address space looks like in a
  single place. Previously, we had both the range allocator *and* the
  region tree both being used to determine if an address was valid.
  Now there is only the region tree.

- Deallocation of VM when splitting regions is no longer complicated,
  as we don't need to keep two separate trees in sync.
2022-04-03 21:51:58 +02:00
Andreas Kling 90a7b9e5b4 Tests: Make TestEFault not rely on automatic guard pages
I'm about to break automatic guard page allocation in sys$mmap(), so we
need to fix this test to not rely on it.
2022-04-03 21:51:58 +02:00
Andreas Kling 2d3fb6ac39 Tests: Clear errno before syscalls in TestEFault
This makes the debug output a little more helpful.
2022-04-03 21:51:58 +02:00
Andreas Kling df64b85925 Tests: Remove unused macro in TestEFault 2022-04-03 21:51:58 +02:00
Andreas Kling 2617adac52 Kernel: Store AddressSpace memory regions in an IntrusiveRedBlackTree
This means we never need to allocate when inserting/removing regions
from the address space.
2022-04-03 21:51:58 +02:00
Enver Balalic 7381474835 LibWeb: Don't break text lines if white-space: nowrap
If white-space is nowrap then we don't want to break a text_node
into multiple line boxes. This fixes the width calculation in the
min-content case for white-space: nowrap elements. Before this
the min-width would be the width of the biggest line box.
2022-04-03 21:51:15 +02:00
Nico Weber fd82121319 Tests: Add some test coverage for the TTF parser
This is in Tests/LibTTF instead of Tests/LibGfx because Tests/LibGfx
depends on serenity's file system layout and can't run in lagom,
but this new test runs just fine in lagom.
2022-04-03 19:16:03 +02:00
Nico Weber 9b24600779 Meta: Give Lagom build errors colored diagnostics
Non-lagom builds get this from the root CMakeLists.txt file,
but lagom builds didn't before this change.
2022-04-03 19:16:03 +02:00
Tim Schumacher de7aa80669 Ports: Add GNU core utilities 2022-04-03 19:15:14 +02:00
Tim Schumacher 4ba39c8d63 Kernel: Implement f_basetype in statvfs 2022-04-03 19:15:14 +02:00
Tim Schumacher 8209c2b570 AK: Add StringView::copy_characters_to_buffer() 2022-04-03 19:15:14 +02:00
Tim Schumacher 3237efc661 LibC: Implement __fseterr 2022-04-03 19:15:14 +02:00
Tim Schumacher 4f706d819a LibC: Implement __freadptrinc 2022-04-03 19:15:14 +02:00
Tim Schumacher 89ed0649f7 LibC: Implement __freadahead 2022-04-03 19:15:14 +02:00
Tim Schumacher 9b543ddb16 LibC: Implement __freadptr 2022-04-03 19:15:14 +02:00
kleines Filmröllchen 8da0cf7912 Applets: Add a network graph applet
This resource graph applet shows incoming network traffic graphically,
and the tooltip shows both TX and RX. The data of all adapters is
combined. The scale of the applet auto-adapts to the shown traffic load.

Co-authored-by: bgianfo <bgianf@serenityos.org>
2022-04-03 09:49:08 -07:00
kleines Filmröllchen 7a0cd6793e AK: Add non-const iterator for CircularQueue 2022-04-03 09:49:08 -07:00
Lenny Maiorani 9afc7d5379 LibCompress: Change DeflateSpecialCodeLengths to constexpr variables 2022-04-03 17:36:48 +01:00
Lenny Maiorani 35af46ee62 LibChess: Change UCI::Command::Type to enum class 2022-04-03 17:36:48 +01:00
Ali Chraghi 0eaed09517 TextEditor: Update file argument parser regex pattern 2022-04-03 18:54:47 +04:30
Linus Groh 5b48912d35 LibJS: Remove a bunch of gratuitous JS namespace qualifiers 2022-04-03 15:19:33 +01:00
Valtteri Koskivuori f2c02077ba Userland: Remove a few gratuitous IPC namespace qualifiers
Spotted this while trying to search for specific IPC encode/decode
implementations. Now they are all the same, so searching is easier.
2022-04-03 15:18:20 +01:00
Hunter Kvalevog 85ed64b99c Ports: Enable libx264 support in FFmpeg 2022-04-03 14:45:13 +01:00
Hunter Kvalevog a0bbadac14 Ports: Add x264 2022-04-03 14:45:13 +01:00
Jelle Raaijmakers 9ca15793e7 Meta: Move screenshots into subdir
It's a bit neater to give them their own directory instead of jamming
them in between our shell scripts :^)
2022-04-03 13:14:15 +01:00
Valtteri Koskivuori 45a81f5a2c Browser+LibWeb+WebContent: Add ability to inspect local storage
The storage inspector now has a new tab for local storage. The next step
would be to persist local storage and receive real-time notifications
for changes to update the table view.
2022-04-03 13:13:10 +01:00
Valtteri Koskivuori f2b4c044db LibIPC: Add encoder and decoder for AK::OrderedHashMap
Seems like a useful thing to have.
2022-04-03 13:13:10 +01:00
djwisdom a8a50a994b Base: Update font Ataraxia with additional glyphs
Latin Extended-A
 0132,0152,0153
 https://www.unicode.org/charts/PDF/U0100.pdf

LISU Supplement
 11FB0
 https://www.unicode.org/charts/PDF/U11FB0.pdf

Egyptian Hieroglyph Format Controls
 13430-13438
 https://www.unicode.org/charts/PDF/U13430.pdf

Ideographic Symbols and Punctuation
 16FE0-16FE4,16FF0,16FF1
 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03 12:39:59 +01:00
djwisdom 0d8542536e Base: Update font Satori Regular with additional glyphs
Latin Extended-A
 0132,0152,0153
 https://www.unicode.org/charts/PDF/U0100.pdf

LISU Supplement
 11FB0
 https://www.unicode.org/charts/PDF/U11FB0.pdf

Egyptian Hieroglyph Format Controls
 13430-13438
 https://www.unicode.org/charts/PDF/U13430.pdf

Ideographic Symbols and Punctuation
 16FE0-16FE4,16FF0,16FF1
 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03 12:39:42 +01:00
djwisdom 6f9ce7bc96 Base: Update font Satori Mono Regular with additional glyphs
Latin Extended-A
 0132,0152,0153
 https://www.unicode.org/charts/PDF/U0100.pdf

LISU Supplement
 11FB0
 https://www.unicode.org/charts/PDF/U11FB0.pdf

Egyptian Hieroglyph Format Controls
 13430-13438
 https://www.unicode.org/charts/PDF/U13430.pdf

Ideographic Symbols and Punctuation
 16FE0-16FE4,16FF0,16FF1
 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03 12:39:42 +01:00
djwisdom 14349a40d5 Base: Update font Satori Mono Bold with additional glyphs
Latin Extended-A
 0132,0152,0153
 https://www.unicode.org/charts/PDF/U0100.pdf

LISU Supplement
 11FB0
 https://www.unicode.org/charts/PDF/U11FB0.pdf

Egyptian Hieroglyph Format Controls
 13430-13438
 https://www.unicode.org/charts/PDF/U13430.pdf

Ideographic Symbols and Punctuation
 16FE0-16FE4,16FF0,16FF1
 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03 12:39:42 +01:00
djwisdom 5046f72ad1 Base: Update Satori Bold with additional glyphs
Latin Extended-A
 0132,0152,0153
 https://www.unicode.org/charts/PDF/U0100.pdf

LISU Supplement
 11FB0
 https://www.unicode.org/charts/PDF/U11FB0.pdf

Egyptian Hieroglyph Format Controls
 13430-13438
 https://www.unicode.org/charts/PDF/U13430.pdf

Ideographic Symbols and Punctuation
 16FE0-16FE4,16FF0,16FF1
 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03 12:39:42 +01:00
Jelle Raaijmakers 31b72c20f0 Meta: Check port property for ports in the linter
We now make sure the directory name and `port` property are identical.
2022-04-03 12:35:14 +01:00
Jelle Raaijmakers d53c602e11 Ports: Set port to match the port's directory
We currently have no valid use case for having a `port` property
different from the directory name the port's residing in. We do have
issues when this is the case when referencing dependencies, so let's
make sure all ports have a sensible `port` property to begin with.
2022-04-03 12:35:14 +01:00
Jelle Raaijmakers 563d11c977 Ports: Move luajit warning into preconfigure
Otherwise this message will be printed during other `package.sh`
actions such as `showproperty`.
2022-04-03 12:35:14 +01:00
Tim Schumacher 4c9fbea987 Revert "Ports: Fix dependency install if port name is not folder name"
This breaks ports whose name may come up in more than one port name.

This reverts commit cc08f82ddb.
2022-04-03 12:32:00 +01:00
Ben Maxwell 8070a98288 DisplaySettings+WindowServer: Allow updating theme without background
With this change you can now set the theme and background color at the
same time in the Display Settings. Before if both were changed
before hitting 'apply' the theme background color would overwrite
the custom background.
2022-04-03 12:58:46 +02:00
Ben Maxwell e6ad55ab53 DisplaySettings: Stop theme tab from overriding background color
Fixes #13448
2022-04-03 12:58:46 +02:00
Enver Balalic d8ec9a5501 LibWeb: Fix computing_width of a block when LayoutMode::MaxContent
We had an issue with computing a width of a block in MaxContent
mode because we would set the width of the containing block to
infinity which would make everything in the try_compute_width
block infinity as well.

This adds a special case for width = 'auto' when
width_of_containing_block is infinity and removes the width of
containing block from the equation entirely.
2022-04-03 12:58:08 +02:00
Rob Ryan c1b311835b LibWeb: Not dispatching page_did_click_link event breaks page refresh
The WebView url wouldn't update so reload in Tab would still use the
previous URL before any left click navigation.

I am unsure if there was any good reason not to dispatch the event when
there are no modifiers.
2022-04-03 12:41:48 +02:00
Rob Ryan 0b5adfef8c Calculator: Update mimic_pressed for refactor into the Button class 2022-04-03 12:21:50 +02:00
Rob Ryan 554709fec6 LibGUI: Extend mimic pressed across keyboard shortcuts for buttons
Primary motivation for this was to get a visual indication in the
browser for Ctrl-R refresh. This extends what ForLoveOfCats had done
for calculator button shortcuts across all buttons with shortcuts.

When an action is triggered without an activator each associated button
will be set as mimic pressed.
2022-04-03 12:21:50 +02:00
kleines Filmröllchen 7af87e8e6b SystemMonitor: Move process window to GML
Extra stuff done in this commit to facilitate the above (if you want to
really push my commit count, ask for more atomicisation):
- Register a bunch of widgets that are used in the process window.
- Allow setting the pid after the fact for the process state widget.
2022-04-03 12:21:05 +02:00
kleines Filmröllchen 452bbcaa84 LibCore: Turn size properties from an object into a size 2 array
Previously, size properties were a JSON object of the form { "width": x,
"height": y }. Now they are a JSON array [x, y]. Reasons for this
change:
- Much more concise.
- More intuitive, as existing multi-dimensional properties (like
  margins) already use this array format.
2022-04-03 12:21:05 +02:00
kleines Filmröllchen ee4cec4ea9 SystemMonitor: Open PCI database in parallel
This was causing a bunch of lag (at least half a second, very
noticeable) when first opening the hardware tab, as we would only load
the PCI database when initializing the widget lazily. By starting the
PCI database open on another thread, we avoid this entirely, as nobody
can click the hardware tab this fast :^)
2022-04-03 12:21:05 +02:00
kleines Filmröllchen 81d5e93b92 SystemMonitor: Move storage tab into custom widget 2022-04-03 12:21:05 +02:00
kleines Filmröllchen 99005ca90f SystemMonitor: Move hardware tab to custom widget
This is just a LazyWidget with fancy initialization code that works
perfectly in isolation.
2022-04-03 12:21:05 +02:00
kleines Filmröllchen 5a2716baea SystemMonitor: Move entire main UI to GML
:^)
2022-04-03 12:21:05 +02:00
kleines Filmröllchen 98ed18124d SystemMonitor: Register GraphWidget's stack_values property 2022-04-03 12:21:05 +02:00
kleines Filmröllchen a7d9d416d5 SystemMonitor: Register a graph_widget pseudo-property in MemoryStatsW
The property graph_widget on MemoryStatsWidget is a-pseudo property that
specifies the name of the graph widget which should be attached to the
MemoryStatsWidget. When the property is set, the widget looks up the
graph with that name in its parent, therefore automatically linking to
the correct widget given that it's a sibling or descendant of a sibling.
2022-04-03 12:21:05 +02:00