summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-04Kernel+SystemServer+Base: Introduce the RAMFS filesystemLiav A
This filesystem is based on the code of the long-lived TmpFS. It differs from that filesystem in one keypoint - its root inode doesn't have a sticky bit on it. Therefore, we mount it on /dev, to ensure only root can modify files on that directory. In addition to that, /tmp is mounted directly in the SystemServer main (start) code, so it's no longer specified in the fstab file. We ensure that /tmp has a sticky bit and has the value 0777 for root directory permissions, which is certainly a special case when using RAM-backed (and in general other) filesystems. Because of these 2 changes, it's no longer needed to maintain the TmpFS filesystem, hence it's removed (renamed to RAMFS), because the RAMFS represents the purpose of this filesystem in a much better way - it relies on being backed by RAM "storage", and therefore it's easy to conclude it's temporary and volatile, so its content is gone on either system shutdown or unmounting of the filesystem.
2023-02-04Documentation: Reorganize Ladybird build docs to put easy path firstAndrew Kaster
Instead of explaining custom build directories first and then following that up with a an explainer that Meta/serenity.sh is the easiest way to get the browser up and running to try it out was not very ergonmic. Also reorganize some of the per-distro documentation to put the compiler requirements front and center.
2023-02-04LibPDF: Fix clipping of painting operationsRodrigo Tobar
While the clipping logic was correct (current v/s new clipping path), the clipping path contents weren't. This commit fixed that. We calculate the clipping path in two places: when we set it to be the whole page at graphics state creation time, and when we perform clipping path intersection to calculate a new clipping path. The clipping path is then used to limit painting by passing it to the painter (more precisely, but passing its bounding box to the painter, as the latter doesn't support arbitrary path clipping). For this last point the clipping path must be in device coordinates. There was however a mix of coordinate systems involved in the creation, update and usage of the clipping path: * The initial values of the path (i.e., the whole page) were in user coordinates. * Clipping path intersection was performed against m_current_path, which is in device coordinates. * To perform the clipping operation, the current clipping path was assumed to be in user coordinates. This mix resulted in the clipping not working correctly depending on the zoom level at which one visualised a page. This commit fixes the issue by always keeping track of the clipping path in device coordinates. This means that the initial full-page contents are now converted to device coordinates before putting them in the graphics state, and that no mapping is performed when applied the clipping to the painter.
2023-02-04Base: Delete the "test" chess piece setSam Atkins
We have several nice sets to choose from now, and so we no longer need this one, which is "ugly" even according to its original author. ;^)
2023-02-04Chess+GamesSettings: Give chess pieces some breathing roomSam Atkins
Draw pieces around 80% of the size of a square, instead of 100%, so that there is a nice gap around them. This feels more comfy, and makes it actually possible to read the coordinates while a piece is on their square.
2023-02-04Chess+GamesSettings: Use the correct term for chess squaresSam Atkins
"Square" is the technical term, so let's use it. :^) Also, stop using size_t for pixel sizes, that's not what that means.
2023-02-04Base: Add more emojiXexxa
🤳 - U+1F933 SELFIE 🏄 - U+1F3C4 PERSON SURFING 🏄‍♂️ - U+1F3C4 U+200D U+2642 MAN SURFING 🏄‍♀️ - U+1F3C4 U+200D U+2640 WOMAN SURFING 🥋 - U+1F94B MARTIAL ARTS UNIFORM 🚭 - U+1F6AD NO SMOKING 📴 - U+1F4F4 MOBILE PHONE OFF
2023-02-04Base: Fix typo of MasterWrod.afCubic Love
MasterWrod.af becomes MasterWord.af - too small a change?
2023-02-04SpaceAnalyzer: Rename widget variables to match code styleSam Atkins
2023-02-04SpaceAnalyzer: Stop treating selecting a node as a path changeSam Atkins
This served no obvious purpose, but did make the breadcrumb bar change confusingly.
2023-02-04SpaceAnalyzer: Rename `TreeMapWidget::m_path` -> `m_path_segments`Sam Atkins
This is clearer to me at least.
2023-02-04SpaceAnalyzer: Give the Analyze action an icon and F5 shortcutSam Atkins
This action is basically equivalent to "Refresh", so let's use the common shortcut for that.
2023-02-04SpaceAnalyzer: Make TreeMapWidget responsible for filesystem analysisSam Atkins
Also, the Tree object was only ever used by the TreeMapWidget, so its creation can happen inside `analyze()`, fixing the memory leak issue. Plus, it doesn't have to be RefCounted.
2023-02-04SpaceAnalyzer: Propagate more errorsSam Atkins
2023-02-04SpaceAnalyzer: Extract ProgressWindow into its own classSam Atkins
2023-02-03Base: Add a test page for canvas patternsMacDue
2023-02-03LibWeb: Implement CanvasRenderingContext2D.createPattern()MacDue
This is a first pass at implementing CRC2D.createPattern() and the associated CanvasPattern object. This implementation only works for a few of the required image sources [like CRC2D.drawImage()], and does not yet support transforms. Other than that it supports everything else (which is mainly the various repeat modes).
2023-02-03Meta: Register CanvasPattern as a platform objectMacDue
2023-02-03LibWeb: Fix typo and use auto where possibleMacDue
2023-02-03SQLStudio: Display real column names in the results tabTimothy Flynn
2023-02-03SQLStudio: Separate the script and results tabs with a vertical splitterTimothy Flynn
2023-02-03LibSQL+SQLServer: Send result column names over IPC to SQL clientsTimothy Flynn
2023-02-03LibSQL+Userland: Pass SQL IPC results to clients in a structureTimothy Flynn
SQLClient exists as a wrapper around SQL IPC to provide a bit friendlier interface for clients to deal with. Though right now, it mostly forwards values as-is from IPC to the clients. This makes it a bit verbose to add values to IPC responses, as we then have to add it to the callbacks used by all clients. It's also a bit confusing seeing a sea of "auto" as the parameter types for these callbacks. This patch moves these response values to named structures instead. This will allow adding values without needing to simultaneously update all clients. We can then separately handle the new values in interested clients only.
2023-02-03LibSQL: Store selected column names in the results for SELECT statementsTimothy Flynn
2023-02-03Kernel/aarch64: Include Error.h to fix aarch64 missing ErrorOrSteffen Rusitschka
2023-02-03TextEditor: Propagate errors from `read_file()`Lucas CHOLLET
2023-02-03TextEditor: Use `request_file_read_only_approved` for the drop eventLucas CHOLLET
This allows TextEditor to open the file without asking for user consent.
2023-02-03TextEditor: Port to `Core::Stream`Lucas CHOLLET
2023-02-03grep: Port to `Core::Stream`Lucas CHOLLET
It also adds support for `ErrorOr` in one lambda.
2023-02-03SystemServer: Propagate errors properly in the main codeLiav A
To do this properly, we also create Strings with formatting of device nodes' names, taking into consideration errors when doing that. Also, we use LibCore System mknod method instead of raw LibC functions to be able to propagate errors from these calls too.
2023-02-03AK: Add thresholds to `quickselect_inline` and `Statistics::Median`Staubfinger
I did a bit of Profiling and made the quickselect and median algorithms use the best of option for the respective input size.
2023-02-03AK: Use `AK:quickselect_inline` to compute `AK::Statistics::median`Staubfinger
Quick select is an algorithm that is able to find the median of a Vector without fully sorting it. This replaces the old very naive implementation for `AK::Statistics::median()` with `AK::quickselect_inline`
2023-02-03AK: Testing for `AK::quickselect_inline`Staubfinger
The testing code found here is mainly derived from the Tests for `AK::quick_sort`.
2023-02-03AK: Implement the quick select algorithm as AK::quickselect_inplaceStaubfinger
This adds the quick select algorithm that finds the kth smallest element for any collection. Whilst doing so it also partially sorts the collection. I have also included the option to use different pivoting functions including median of medians which makes the quick select have a truely linear time complexity at the costs of enormous overhead, so this that only really useful for really large datasets. The same was chosen to reflect the fact that it modifies the collection in place during the selection process.
2023-02-03Kernel: Fix usermode verification in ptrace with PT_SETREGSItamar
When doing PT_SETREGS, we want to verify that the debugged thread is executing in usermode. b2f7ccf refactored things and flipped the relevant check around, which broke things that use PT_SETREGS (for example, stepping over breakpoints with sdb).
2023-02-03Base: Add British English Apple Macintosh keymapCubic Love
Full support for EN-GB Mac Laptop and Magic Keyboards
2023-02-03LibWeb: Parse font-stretch CSS propertyAliaksandr Kalenik
2023-02-03Settings: Change initial window size to fit the current contentSam Atkins
Previously, it would open with a scrollbar visible which felt a little silly. :^)
2023-02-03AK: Remove JsonObject::get_deprecated() and ::get_ptr() :^)Sam Atkins
2023-02-03Utilities/w: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/route: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/pmap: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/netstat: Replace uses of JsonObject::get_deprecated()/get_ptrSam Atkins
2023-02-03Utilities/mount: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/lsusb: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/lsof: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/lsjails: Replace uses of JsonObject::get_deprecated()/get_ptrSam Atkins
2023-02-03Utilities/lsirq: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/lscpu: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins
2023-02-03Utilities/json: Replace uses of JsonObject::get_deprecated()/get_ptr()Sam Atkins