summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-01-21Kernel: Stop using LibKeyboard's CharacterMap in HIDManagementIdan Horowitz
This was easily done, as the Kernel and Userland don't actually share any of the APIs exposed by it, so instead the Kernel APIs were moved to the Kernel, and the Userland APIs stayed in LibKeyboard. This has multiple advantages: * The non OOM-fallible String is not longer used for storing the character map name in the Kernel * The kernel no longer has to link to the userland LibKeyboard code * A lot of #ifdef KERNEL cruft can be removed from LibKeyboard
2022-01-21Shell: Make Juxtaposition autocompletion smarterAli Mohammad Pur
Now something like `"$HOME"/` autocompletes correctly. Note that only the first element of lists is used to autocomplete things.
2022-01-21Shell: Make SimpleVariable::hit_test_position not hit irrelevant offsetsAli Mohammad Pur
Without this, any offset would be accepted as being part of the SimpleVariable. Fixes #11976 (by making it no longer crash).
2022-01-21LibRegex: Allow the pattern to match the zero-length end of the stringAli Mohammad Pur
...only if Multiline is not enabled. Fixes #11940.
2022-01-21LibRegex: Implement an ECMA262 Regex quirk with negative lookaroundsAli Mohammad Pur
This implements the quirk defined by "Note 3" in section "Canonicalize" (https://tc39.es/ecma262/#sec-runtime-semantics-canonicalize-ch). Crosses off another quirk from #6042.
2022-01-21LibRegex: Correct jump offset to the start of the loop blockAli Mohammad Pur
Previously we were jumping to the new end of the previous block (created by the newly inserted ForkStay), correct the offset to jump to the correct block as shown in the comments. Fixes #12033.
2022-01-21LibCore: Make sockets close-on-exec by defaultsin-ack
This mirrors the previous default in Core::LocalSocket, and is the safer default anyway. This prevents fds from living on in other processes when exec() is called in certain programs such as Assistant. Fixes #12029.
2022-01-21LibGL: Fix incorrect GL_DECAL constant valueLuke Wilde
The constant value for GL_DECAL is 0x2101 instead of 0x2102. This was tripping up Half-Life when making the water texture transparent when under water. The Half-Life port uses its own OpenGL header, meaning this error wasn't hidden by us.
2022-01-21UserspaceEmulator: Correctly fail in execve when binary is inaccessibleRummskartoffel
Previously, Emulator::virt$execve would not report ENOENT and EACCES when the binary to be executed was nonexistent or not executable. This broke the execp family of functions, which rely on ENOENT being reported in order to know that they should continue searching $PATH.
2022-01-21UserspaceEmulator: Fix execve messing up command lines with "--"Rummskartoffel
Emulator::virt$execve would construct command lines such as `/bin/UserspaceEmulator echo -- hello` instead of `/bin/UserspaceEmulator -- echo hello`, which naturally caused problems. This commit moves the "--" to the correct place.
2022-01-21Taskbar: Remove QuickLaunch entries if corresponding file was deletedMaciej
2022-01-21Taskbar: Support arbitrary *files* as QuickLaunch entriesMaciej
2022-01-21LibDesktop: Add Launcher::ensure_connection()Maciej
This can be use force connection at startup and not to leave 'unix' pledge all the time.
2022-01-21Taskbar: Support arbitrary executables as QuickLaunch entriesMaciej
2022-01-21Taskbar: Abstract out quick launch entriesMaciej
... into QuickLaunchEntry class. It will be used to implement adding plain executables to the taskbar. For now, it adds TRY() error handling to app launching :^)
2022-01-21LibCore: Add Core::System wrapper for disown()Maciej
2022-01-21LibCore: Handle null lines in ConfigFileMaciej
Fixes nullptr dereference when trying to read binary files.
2022-01-21LibJS: Increase margin in check for stack space limitMorten Larsen
test-js crashes with a segmentation fault when running on macOS on Arm. Increasing the margin in the test in did_reach_stack_space_limit() to 32 * KiB makes the tests pass. To simplify the code, this is applied independently of platform, and the previous test for use of an address sanitizer is removed.
2022-01-21zip: Add unveil and pledge promisesDavid Lindbom
2022-01-21cal: Add unveil and pledge promisesDavid Lindbom
2022-01-21aplay: Add unveil and pledge promisesDavid Lindbom
2022-01-21adjtime: Port to LibMainmjz19910
2022-01-21LibCore: Add ArgsParser::add_option for Optional doublemjz19910
2022-01-21LibCore: Add ErrorOr wrapper for adjtimemjz19910
2022-01-20LibWeb: Don't match the node querySelector(All) was called onLuke Wilde
In querySelector(All)'s use of "Match a Selector Against a Tree", it passes in the node the function was called on as the "optional scoping root", which causes it and the nodes which aren't descendants of it to be excluded from the list of possible nodes to match against. For us, this is the equivalent of using the non-inclusive variant of `for_each_in_subtree_of_type`. This was tripping up the node re-ordering logic of d3 and would cause it to try and reinsert nodes into their parent, causing an exception to be thrown. Note that this should be shadow-including, but we don't currently have shadow-including tree traversal as per https://dom.spec.whatwg.org/#concept-shadow-including-tree-order https://drafts.csswg.org/selectors-4/#match-a-selector-against-a-tree https://dom.spec.whatwg.org/#scope-match-a-selectors-string
2022-01-20LibJS: Implement ECMA-402 compliant TypedArray.prototype.toLocaleStringIdan Horowitz
2022-01-20LibCore: Use Core::System and Error::from_syscall in Stream classessin-ack
This makes what caused a failure more obvious. The use of Core::System additionally allows us to remove a lot of boilerplate code from Stream classes.
2022-01-20LibCore: Implement Core::System::lseeksin-ack
2022-01-20LibCore: Don't manually close the fd when connection fails in socketssin-ack
This is wrong because we have already set the fd in the PosixSocketHelper, and the destructor of the respective Socket class will close the fd for us. With the manual closing of the fd, we attempt to close the same fd twice which results in a crash. Thanks to stelar7 for noticing this bug.
2022-01-20FileSystemAccessClient: Remove old API returning file descriptors :^)Mustafa Quraish
Since all users of the old API are now removed, this commit removes all the methods that returned raw file descriptors, in favor of returning `ErrorOr<NonnullRefPtr<Core::File>`.
2022-01-20SpreadSheet: Use FileSystemAccessClient::try_* APIsMustafa Quraish
2022-01-203DFileViewer: Use FileSystemAccessClient::try_* APIsMustafa Quraish
This commit also removed the redundant `filename` parameter from `GLContextWidget::load_file`, since the filename is already stored within the file itself.
2022-01-20ThemeEditor: Use FileSystemAccessClient::try_* APIsMustafa Quraish
2022-01-20TextEditor: Use FileSystemAccessClient::try_* APIsMustafa Quraish
2022-01-20PDFViewer: Use FileSystemAccessClient::try_* APIsMustafa Quraish
2022-01-20PixelPaint: Use FileSystemAccessClient::try_* APIsMustafa Quraish
2022-01-20HexEditor: Use FileSystemAccessClient::try_* APIsMustafa Quraish
2022-01-20FileSystemAccessClient: Add `try_*` variants returning `Core::File`Mustafa Quraish
The current implementation is a bit of a hack since we also want to keep around the previous variants for now, but will be cleaned up later once all applications have been ported to the new API.
2022-01-20CrashReporter: Don't crash when investigating a HackStudio crashSam Atkins
Previously when opening a crash report for HackStudio, the `unveil("/bin/HackStudio", "rx")` call was failing because of the earlier `unveil(executable_path.characters(), "r")` call requesting only "r" permissions for it. This patch handles this specific case, so you can crash HackStudio to your heart's content. :^) Also, we were unveiling the executable path twice, once manually and once implicitly as part of the coredump's libraries, so we now check for the latter and avoid it. Thanks to Daniel for noticing what was right in front of me and I didn't see! Co-authored-by: Daniel Bertalan <dani@danielbertalan.dev>
2022-01-20Userland: Add horizontal mouse scroll supportDmitry Petrov
2022-01-20Kernel: Add horizontal mouse scroll supportDmitry Petrov
2022-01-20LibGL+LibSoftGPU: Clean up some `for` loopsJelle Raaijmakers
2022-01-20LibGL: Rename `GLMat.cpp` to `GLMatrix.cpp`Jelle Raaijmakers
2022-01-20LibGL: Transpose matrix in `glGetDoublev` and `glGetFloatv`Jelle Raaijmakers
We were returning row-major matrices when OpenGL clients are expecting column-major instead.
2022-01-20LibGL: Use 4 hex characters for error code constants in `gl.h`Jelle Raaijmakers
2022-01-20LibGL: Report GL errors to debug consoleJelle Raaijmakers
2022-01-20LibGL: Stub `GL_BACK` implementation for `glPolygonMode`Jelle Raaijmakers
This prevents overwriting the front face mode when providing `GL_BACK` as a parameter.
2022-01-20LibGL+LibSoftGPU: Implement `GL_POLYGON_OFFSET_FILL` capabilityJelle Raaijmakers
2022-01-20LibGL: Implement `glColor4b`Jelle Raaijmakers
2022-01-20LibGL: Correct values for `GL_BGR` and `GL_BGRA`Jelle Raaijmakers