summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-01Base: Document the -f option for grepEli Youngs
2023-04-01grep: Read patterns from a file with -fEli Youngs
2023-04-01LibWeb: Add display grid automated testsmartinfalisse
2023-04-01Tests: Use layout tests placed in subdirectoriesmartinfalisse
Allows organizing layout tests into subdirectories.
2023-04-01Meta: Install PCI and USB ID files directly into /resTimothy Flynn
The install() command used by 1e36d5449304226b097a4929a90f846c0ddf1d76 installs the provided file into the *directory* named by the DESTINATION parameter. So if we ask it to install pci.ids to /res/pci.ids, the final destination will be /res/pci.ids/pci.ids.
2023-04-01LibCompress: Implement block size validation for XZ streamsTim Schumacher
2023-04-01LibCompress: Factor out the list of XZ check sizesTim Schumacher
2023-04-01Tests: Document input of the xz_utils_good_1_block_header_1 test caseTim Schumacher
2023-04-01LibCompress: Reduce indentation in CompressedBlock::try_read_more()Nico Weber
...by removing `else` after `return`. No behavior change.
2023-04-01LibWeb: Don't churn HTML::EventLoop while in microtask checkpointAndreas Kling
At the end of HTML::EventLoop::process(), the loop reschedules itself if there are more runnable tasks available. However, the condition was flawed: we would reschedule if there were any microtasks queued, but those tasks will not be processed if we're currently within the scope of a microtask checkpoint. To fix this, we now only reschedule the HTML event loop for microtask processing *if* we're not already in a microtask checkpoint. This fixes the 100% CPU churn seen when looking at PRs on GitHub. :^)
2023-04-01Base: Remove trailing colons from man page headingsTim Ledbetter
Most man pages don't have these, so removing them where they do exist makes things more consistent.
2023-04-01Base: Update man pages for utilitiesTim Ledbetter
Man pages for utilities now more closely resemble ArgsParser output
2023-04-01LibCore: Remove colons from markdown header names in ArgsParserTim Ledbetter
This makes formatting more consistent across man pages.
2023-04-01gzip: Use utilities from LibCompress to (de)compress filesTimothy Flynn
2023-04-01LibCompress: Add a utility to GZIP compress an entire fileTimothy Flynn
This is copy-pasted from the gzip utility, along with its existing TODO. This is currently only needed by that utility, but this gives us API symmetry with GzipDecompressor, and helps ensure we won't end up in a situation where only one utility receives optimizations that should be received by all interested parties.
2023-04-01gunzip+LibCompress: Move utility to decompress files to GzipDecompressorTimothy Flynn
This is to allow re-using this method (and any optimization it receives) by other utilities, like gzip.
2023-03-31Browser: Add tooltip to reset zoom level buttonMacDue
2023-03-31Ladybird: Add tooltip to reset zoom level buttonMacDue
2023-03-31KeyboardSettings: Add checkbox to enable Caps Lock mapping to Ctrlsbcohen2000
This patch adds an additional control to KeyboardSettings allowing the user to map Caps Lock to Ctrl. Previously, this was only possible by writing to /sys/kernel/variables/caps_lock_to_ctrl. Writing to /sys/kernel/variables/caps_lock_to_ctrl requires root privileges, but KeyboardSettings will not attempt to elevate the privilege of the user if they are not root. Instead, the checkbox is rendered as un-editable.
2023-03-31Kernel/HID: Don't update the remapped Ctrl modifier unconditionallyLiav A
Instead, only update it when the Caps Lock key event is generated and remapping to the Ctrl key is enabled. This fixes a bug that when enabling remapping Caps Lock key to the Ctrl key, the original Ctrl key is no longer usable.
2023-03-31LibCompress: Remove two needless heap allocationsNico Weber
2023-03-31LibWeb: Add HTMLAnchorElement.referrerPolicy propertySam Atkins
2023-03-31LibWeb: Add HTMLAnchorElement.text getter and setterSam Atkins
And a FIXME for the missing `referrerPolicy` property.
2023-03-31LibWeb: Add "CEReactions" to HTMLAnchorElement IDL as in specSam Atkins
2023-03-31HackStudio: Migrate git-diff indicators to TextEditor APISam Atkins
As part of this, the CodeDocument now keeps track of the kind of difference for each line. Previously, we iterated every hunk every time the editor was painted, but now we do that once whenever the diff changes, and then save the type of difference for each line.
2023-03-31HackStudio: Migrate execution-position indicator to TextEditor APISam Atkins
2023-03-31HackStudio: Migrate breakpoint indicators to TextEditor APISam Atkins
2023-03-31LibGUI: Add gutter indicators to TextEditor :^)Sam Atkins
HackStudio's Editor has displayed indicators in its gutter for a long time, but each required manual code to paint them in the right place and respond to click events. All indicators on a line would be painted in the same location. If any other applications wanted to have gutter indicators, they would also need to manually implement the same code. This commit adds an API to GUI::TextEditor so it deals with these indicators. It makes sure that multiple indicators on the same line each have their own area to paint in, and provides a callback for when one is clicked. - `register_gutter_indicator()` should be called early on. It returns a `GutterIndicatorID` that is then used by the other methods. Indicators on a line are painted from right to left, in the order they were registered. - `add_gutter_indicator()` and `remove_gutter_indicator()` add the indicator to the given line. - `clear_gutter_indicators()` removes a given indicator from every line. - The `on_gutter_click` callback is called whenever the user clicks on the gutter, but *not* on an indicator.
2023-03-31LibGUI: Rename TextEditor::LineVisualData -> LineDataSam Atkins
This is going to hold other per-line data too.
2023-03-31LibGUI: Extract repeated code for populating TextEditor per-line dataSam Atkins
2023-03-31CrashReporter: Warn about malloc and free patterns in fault addressLiav A
Warn the user about seemingly known malloc() and free() patterns in the fault address. This brings back the functionality that was removed recently in the 5416a37fdea815b2fc18c35a60d173f8cfa67709 commit, but this time we detect these patterns in userspace code and not in kernel code.
2023-03-31disk_benchmark: Remove the call to umaskPankaj Raghav
Calling umask and open with same permission value will result in a file with no permissions bits if the program is stopped while it is doing an IO. This will result in an error with EACCES when we try to run the benchmark with the same file name. The file needs to be manually removed before continuing the benchmark. There is no use in calling umask here, so just remove it so that interrupting the program while it is doing an IO will not result int the file with no permissions the next time we run the program.
2023-03-31AK+LibCompress: Remove the Deflate back-reference intermediate bufferTimothy Flynn
Instead of reading bytes from the output stream into a buffer, just to immediately write them back out, we can skip the middle-man and copy the bytes directly into the output buffer.
2023-03-31gunzip+LibCompress: Increase buffer sizes used by Deflate and gunzipTimothy Flynn
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-03-31LibCrypto: Implement little endian CRC using the slicing-by-8 algorithmTimothy Flynn
This implements Intel's slicing-by-8 algorithm for CRC checksums (only little endian CPUs for now, as I don't have a way to test big endian). The original paper for this algorithm seems to have disappeared, but Intel's source code is still available as a reference: https://sourceforge.net/projects/slicing-by-8/ As well as other implementations for reference: https://docs.rs/slice-by-8/latest/src/slice_by_8/algorithm.rs.html Using the "enwik8" file as a test (100MB uncompressed, commonly used in benchmarks: https://www.mattmahoney.net/dc/enwik8.zip), decompression time decreases from: 4.89s to 3.52s on Serenity (cold) 1.72s to 1.32s on Serenity (warm) 1.06s to 0.92s on Linux
2023-03-31LibCore: Don't assume ArgsParser arguments are non-emptyAli Mohammad Pur
This was fine before as the last entry was a null string (which could be printed), but we no longer use C-style sentinel-terminated arrays for arguments.
2023-03-31Shell: Don't require ArgsParser values to be null-terminatedAli Mohammad Pur
2023-03-30LibWeb: Split CalculatedStyleValue out of StyleValue.{h,cpp}Sam Atkins
2023-03-30LibWeb: Move PercentageOr and subclasses into PercentageOr.{h,cpp}Sam Atkins
This solves an awkward dependency cycle, where CalculatedStyleValue needs the definition of Percentage, but including that would also pull in PercentageOr, which in turn needs CalculatedStyleValue. Many places that previously included StyleValue.h no longer need to. :^)
2023-03-30LibWeb: Make `absolutized_length()` helper a Length methodSam Atkins
There were a mix of users between those who want to know if the Length changed, and those that just want an absolute Length. So, we now have two methods: Length::absolutize() returns an empty Optional if nothing changed, and Length::absolutized() always returns a value.
2023-03-30LibWeb: Move to_gfx_scaling_mode() helperSam Atkins
There's no longer any reason to have this in StyleValue.h
2023-03-30LibWeb: Move PositionValue into its own filesSam Atkins
It's in Position.{h,cpp} because it represents a <position> in CSS, even though it's currently named PositionValue to avoid collisions.
2023-03-30LibWeb: Move CSS::EdgeRect into its own filesSam Atkins
Also remove the unused StyleValue::to_rect() because an EdgeRect is only ever held by a RectStyleValue.
2023-03-30LibWeb: Move BackgroundSize enum to ComputedValues.hSam Atkins
Again, this doesn't belong in StyleValue.h, though this may not be the ideal place for it either.
2023-03-30LibWeb: Move FlexBasis enum to ComputedValues.hSam Atkins
This may not be the ideal place for this, but it definitely doesn't belong in StyleValue.h
2023-03-30LibWeb: Remove CalculatedStyleValue from LengthSam Atkins
2023-03-30LibWeb: Let CSS::Size contain a CalculatedStyleValueSam Atkins
Technically this was already true, but now we explicitly allow it instead of that calc value being hidden inside a Length or Percentage.
2023-03-30LibWeb: Remove CalculatedStyleValue from TimeSam Atkins
Time also isn't used anywhere yet, hooray!
2023-03-30LibWeb: Remove CalculatedStyleValue from FrequencySam Atkins
Conveniently, we don't actually use Frequency for any properties.
2023-03-30LibWeb: Remove CalculatedStyleValue from AngleSam Atkins
...and replace it with AngleOrCalculated. This has the nice bonus effect of actually handling `calc()` for angles in a transform function. :^) (Previously we just would have asserted.)