Idan Horowitz
ba0a2a3e2f
AK: Hide the infallible make<T> factory function from the Kernel
...
This function has no users, nor should it ever be used in the kernel,
as all allocation failures in the Kernel should be explicitly checked.
2022-02-03 23:33:20 +01:00
Idan Horowitz
7933a9b6c8
AK: Stop using the make<T> factory function in Trie
...
This function is infallible, and so we would like to exclude it from
the Kernel, which includes this header.
2022-02-03 23:33:20 +01:00
Idan Horowitz
3dc8bbbc8b
Kernel: Remove the infallible make_ref_counted<T> factory function
...
This function had no users, nor should it ever be used, as all
allocation failures in the Kernel should be explicitly checked.
2022-02-03 23:33:20 +01:00
Idan Horowitz
a65bbbdb71
Kernel: Convert try_make_ref_counted to use ErrorOr
...
This allows more ergonomic memory allocation failure related error
checking using the TRY macro.
2022-02-03 23:33:20 +01:00
Idan Horowitz
8289727fac
Kernel: Stop using the make<T> factory method in the Kernel
...
As make<T> is infallible, it really should not be used anywhere in the
Kernel. Instead replace with fallible `new (nothrow)` calls, that will
eventually be error-propagated.
2022-02-03 23:33:20 +01:00
Idan Horowitz
e5e7cb822a
Kernel: Ignore allocation failures when trying to retransmit packets
...
We ignore allocation failures above the first 16 guaranteed socket
slots, as we will just retransmit their packets the next time around.
2022-02-03 23:33:20 +01:00
Idan Horowitz
2dc91865a4
Kernel: Stop allocating VirtIO configuration structs on the heap
...
These are trivially-copyable 12-byte structs, so there's no point in
allocating them on the heap.
2022-02-03 23:33:20 +01:00
Idan Horowitz
be4c144524
AK: Support formatting Vectors with any inline_capacity
...
The default Vector type has its inline capacity set to 0, which means
any Vector with non-zero inline capacity was unformattable.
2022-02-03 23:33:20 +01:00
Sam Atkins
6b0c4908df
FileManager: Don't show command palette for the desktop
2022-02-03 23:28:56 +01:00
Sam Atkins
bf4328de52
LibGUI: Allow widgets to opt-out from showing the command palette
2022-02-03 23:28:56 +01:00
Sam Atkins
a4cb6a49ae
FileManager: Disable "View as..." actions for desktop DirectoryView
...
This stops these actions from being activated with Ctrl+[1,2,3] or the
command palette.. Switching to table or columns view would just hide
all the icons, so let's not make those options available.
2022-02-03 23:28:56 +01:00
Andreas Kling
f92ee94fe2
LibWeb: Expose KeyboardEvent's constructor on the window object
2022-02-03 22:35:13 +01:00
Andreas Kling
926d5271b4
LibWeb: Forward CanvasRenderingContext.strokeText() to fillText()
...
This is a hack until we get an actual text stroking implementation.
2022-02-03 22:35:13 +01:00
Andreas Kling
dc3bf32307
LibWeb: Add barebones CanvasGradient object
...
Also add the CanvasRenderingContext2D APIs to go along with it.
Note that it can't be used for anything yet.
2022-02-03 22:35:13 +01:00
Andreas Kling
545ec334f0
LibWeb: Add Document.hasFocus() stub
...
This always returns true for now. A proper implementation needs to check
if the document is in the focused widget within an active window.
2022-02-03 22:35:13 +01:00
Andreas Kling
90a8744823
LibWeb: Add CanvasRenderingContext2D.bezierCurveTo()
2022-02-03 22:35:13 +01:00
Andreas Kling
34f6c88ffd
Revert "Kernel: Protect InodeWatcher internals with spinlock instead of mutex"
...
This reverts commit 0bebf013e3
.
This caused a deadlock when handling a crashed process, so let's revert
it until we can figure out what went wrong.
2022-02-03 18:25:55 +01:00
Andreas Kling
e7dc9f71b8
Kernel: Protect Inode flock list with spinlock instead of mutex
2022-02-03 17:28:45 +01:00
Andreas Kling
a81aebfd6e
Kernel: Remove unnecessary mutex for ubsan-is-deadly ProcFS node
2022-02-03 16:11:26 +01:00
Andreas Kling
e86ab57078
AK+Kernel+LibSanitizer: Store "ubsan-is-deadly" flag as Atomic<bool>
2022-02-03 16:11:26 +01:00
Andreas Kling
0bebf013e3
Kernel: Protect InodeWatcher internals with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
64254b5df8
Kernel: Protect PCI access with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
200589ba27
Kernel: Turn VirtIOGPU operation lock from mutex into spinlock
2022-02-03 16:11:26 +01:00
Andreas Kling
ca42621be1
Kernel: Protect FramebufferDevice with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
ddde9e7ee5
Kernel: Protect global device map with spinlock instead of mutx
2022-02-03 16:11:26 +01:00
Andreas Kling
e0d9472ced
Kernel: Protect Inode's list of watchers with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
210689281f
Kernel: Protect mounted filesystem list with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
3becff9eae
Kernel: Protect network adapter list with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
0899153170
Kernel: Protect PTYMultiplexer freelist with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
6fbb924bbf
Kernel: Protect ARP table with spinlock instead of mutex
2022-02-03 16:11:26 +01:00
Andreas Kling
248832f438
Kernel: Convert OpenFileDescriptor from mutex to spinlock
...
A mutex is useful when we need to be able to block the current thread
until it's available. This is overkill for OpenFileDescriptor.
First off, this patch wraps the main state member variables inside a
SpinlockProtected<State> to enforce synchronized access. This also
avoids "free locking" where figuring out which variables are guarded
by which lock is left as an unamusing exercise for the reader.
Then we remove mutex locking from the functions that simply call through
to the underlying File or Inode, since those fields never change anyway,
and the target objects perform their own synchronization.
2022-02-03 16:11:26 +01:00
Andreas Kling
35e24bc774
Kernel: Move Spinlock lock/unlock functions out of line
...
I don't see why these have to be inlined everywhere in the kernel.
2022-02-03 16:11:26 +01:00
Timothy Flynn
362e167239
ClockSettings: Display a text bubble with extra time zone information
2022-02-03 16:11:15 +01:00
Timothy Flynn
4d2ea773db
ClockSettings: Display a map to show the current time zone's location
2022-02-03 16:11:15 +01:00
Timothy Flynn
35cacb850a
LibGUI: Add a const accessor to ImageWidget's bitmap
2022-02-03 16:11:15 +01:00
Timothy Flynn
4cf4a7cc87
LibGUI: Forward declare ImageWidget
2022-02-03 16:11:15 +01:00
Timothy Flynn
ea814a3ce6
LibTimeZone: Parse and generate time zone coordinate data
2022-02-03 16:11:15 +01:00
Timothy Flynn
7b41a09540
LibGUI: Set a fixed width for the SettingsWindow reset-to-default button
...
Otherwise, any subclass which increased the size of the window would see
a very large reset button. The width chosen here is the same width as
the other buttons in this window.
2022-02-03 16:11:15 +01:00
Rummskartoffel
2560d0b9ad
Documentation: Update reference to obsolete config option
2022-02-03 14:57:46 +01:00
Rummskartoffel
85c3852b8f
KeyboardPreferenceLoader: Don't crash when "Keymaps" is empty
2022-02-03 14:57:46 +01:00
Brian Gianforcaro
2b14a11238
LibC: Add IN6_IS_ADDR_LINKLOCAL to in.h
...
I tried the OpenSSH port but it failed to compile due to a missing
definition of this macro. It's simple enough to add, and it's addition
allowed OpenSSH to compile once again.
I also went ahead and added spec comments for these macros as well.
2022-02-03 14:57:16 +01:00
Brian Gianforcaro
e8857f9b2d
CrashReporter: Stop attempting to lockdown the process veil
...
The idea of locking the process veil in CrashReproter is well
intentioned, but ultimately frought with issues.
The fundamental premise is a bit flawed, as we are using the crashing
program as input to dynamically add new paths to the process veil.
This means that an attacker can potentially produce a custom or
malformed binary to trick CrashReporter into allowing an arbitrary
path to be read.
2022-02-03 14:57:01 +01:00
Timur Sultanov
6edb34aa56
Base: Update keymap man page to include new functionality
...
Adding examples on how to use keymap tool to set a list of keymaps
2022-02-03 00:47:22 +01:00
Timur Sultanov
c7bd47c87c
Base+WindowsServer+keymap: Store multiple keymaps in a config
2022-02-03 00:47:22 +01:00
Timur Sultanov
5a31697bcf
Base: Start Keymap.Applet automatically
2022-02-03 00:47:22 +01:00
Timur Sultanov
b9c558f6c6
WindowServer+Keymap+LibGUI: Add widget to display current keymap
2022-02-03 00:47:22 +01:00
Timur Sultanov
68a01f0e27
WindowManager: Basic support for system keymap switching
2022-02-03 00:47:22 +01:00
Sam Atkins
181d1e2dd6
LibWeb: Implement TransformationStyleValue::to_string()
2022-02-03 00:45:49 +01:00
Sam Atkins
5826fe094f
LibWeb: Allow comma- or space-separated StyleValueLists
...
This lets us produce valid CSS in its to_string() method, instead of
always adding commas as before. :^)
Also, finally added a Formatter for StyleValues.
2022-02-03 00:45:49 +01:00
Sam Atkins
f71db4afd8
LibWeb: Make StyleValue::to_string() output valid CSS
...
Having clear debug output was useful, but most places that use to_string
() expect to get valid CSS, so let's do that. :^)
2022-02-03 00:45:49 +01:00