summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-25LibWeb: Fix clip of hidden overflow when translated boxes are involvedAliaksandr Kalenik
There is a problem with current approach where overflow clip rectange is calculated by aggregating intersection of absolute padding boxes of boxes in containing block chain that resulting rectangle doesn't respect transform properties. To solve this problem `PaintableBox` is changed to store clip rectangle saved from painter because it does respect transform properties of all previously applied clip rectangles.
2023-01-24LibWeb: Propagate more StringBuilder errors in from StyleValuesMacDue
2023-01-24LibWeb: Remove some unchecked .value() calls in StyleValueMacDue
Here .to_string() was being called, which gives an ErrorOr<String>, then .value() was called on that without any checks. Cases like this should at least be .release_value_but_fixme_should_propagate_errors() which makes it clear the error is ignored, but here it's easy to propagate.
2023-01-24LibJS+LibLocale: Port Intl.NumberFormat to StringTimothy Flynn
2023-01-24AK: Add convenience substring wrappers to String to exclude a lengthTimothy Flynn
These overloads exist on other string classes and are used throughout the code base.
2023-01-24AK: Add a method to create a String with a repeated code pointTimothy Flynn
2023-01-24AK: Add a method to find the byte offset of a code pointTimothy Flynn
2023-01-24AK: Remove [[nodiscard]] attribute from String methods returning ErrorOrTimothy Flynn
2023-01-24LibJS: Use correct type for NumberFormat's UseGrouping internal slotTimothy Flynn
This was converted to an enumeration for Intl.NumberFormat V3 in commit 33698b961542618e64c6aede5213c3b0624399d0, but the default value was not updated (and it's a bit surprising it compiled at all, given that this is an 'enum class').
2023-01-24LibJS: Propagate OOM errors from all Intl.Locale *OfLocale AOsTimothy Flynn
2023-01-24LibJS: Add a fallible variant of Array::create_fromTimothy Flynn
2023-01-24LibJS: Propagate OOM errors from ApplyUnicodeExtensionToTagTimothy Flynn
These were missed in bff0e25ebed03db133c708a05c4f08bb5244d0ba.
2023-01-24LibJS: Remove DeprecatedString usage from Intl.PluralRulesTimothy Flynn
This can make due with a StringView.
2023-01-24FileManager+HackStudio+SpaceAnalyzer: Use File::can_delete_or_moveKarol Kosek
2023-01-24LibCore: Implement File::can_delete_or_move()Karol Kosek
Besides from a general check if a file's directory has write permissions, this also checks if the directory has set a sticky bit, meaning that only file owners and the directory owner can remove or move files in such directory. It's being used in /tmp for example.
2023-01-24Kernel: Allow to remove files from sticky directory if user owns itKarol Kosek
It's what the Linux chmod(1) manpage says (in the 'Restricted Deletion Flag or Sticky Bit' section), and it just makes sense to me. :^)
2023-01-24FileManager: Calculate file action permissions for subsequent columnsKarol Kosek
Previously, the permission for the action was always calculated according to the first column.
2023-01-24Documentation: Add a link listkleines Filmröllchen
The link list tries to collect all links from the website, BenW's link list <https://benwiederhake.github.io/serenity-fixmes/index.html#links> and the unofficial wiki <https://wiki.serenityos.net/links.html> into one sorted and expanded list, so that hopefully noone has difficulty searching for serenity pages in the future :^)
2023-01-24LibWeb: Improve column width distributionAliaksandr Kalenik
2023-01-24LibWeb: Avoid division by zero in `distribute_width_to_columns`Aliaksandr Kalenik
2023-01-24LibWeb: Use table wrapper box width to resolve cells widthAliaksandr Kalenik
2023-01-24LibWeb: Use percentage column widths in `compute_table_measures`Aliaksandr Kalenik
This reverts commit 9b6fcd85913a7049041de6206aaa4cfcd535591c because not resolving percentage column widths breaks table width calculation.
2023-01-24LibJS: Add missing MUST in DisposableStack.prototype.usedavidot
Although the spec has a TRY here I believe this is a spec issue together with the missing TRY just above this change.
2023-01-24LibVideo/VP9: Move TreeSelection class to TreeParser.cppZaggy1024
The class no longer needs to be defined in the header, as it is only used in static functions.
2023-01-24Kernel/aarch64: Change base address of the kernel to 0x2000000000Timon Kruiper
This is the same address that the x86_64 kernel runs at, and allows us to run the kernel at a high virtual memory address. Since we now run completely in high virtual memory, we can also unmap the identity mapping. Additionally some changes in MMU.cpp are required to successfully boot.
2023-01-24Kernel/aarch64: Ensure global variable accesses work without MMU enabledTimon Kruiper
Since we link the kernel at a high virtual memory address, the addresses of global variables are also at virtual addresses. To be able to access them without the MMU enabled, we have to subtract the KERNEL_MAPPING_BASE.
2023-01-24Kernel/aarch64: Disable stack protector + sanitizers for MMU-less filesTimon Kruiper
Compile source files that run early in the boot process without the MMU enabled, without stack protector and sanitizers. Enabling them will cause the compiler to insert accesses to global variables, such as __stack_chk_guard, which cause the CPU to crash, because these variables are linked at high virtual addresses, which the CPU cannot access without the MMU enabled.
2023-01-24Kernel/aarch64: Add pre_init function for that sets up the CPU and MMUTimon Kruiper
This is a separate file that behaves similar to the Prekernel for x86_64, and makes sure the CPU is dropped to EL1, the MMU is enabled, and makes sure the CPU is running in high virtual memory. This code then jumps to the usual init function of the kernel.
2023-01-24Kernel/aarch64: Change MMU::kernel_virtual_range to high virtual memoryTimon Kruiper
This was previously hardcoded this to be the physical memory range, since we identity mapped the memory, however we now run the kernel at a high virtual memory address. Also changes PageDirectory.h to store up-to 512 pages, as the code now needs access to more than 4 pages.
2023-01-24Kernel/aarch64: Access MMIO using mapping in high virtual memoryTimon Kruiper
This ensures that we can unmap the identity mapping of the kernel in physical memory.
2023-01-24Kernel/aarch64: Use relative addressing in boot.STimon Kruiper
As the kernel is now linked at high address in virtual memory, we cannot use absolute addresses as they refer to high addresses in virtual memory. At this point in the boot process we are still running with the MMU off, so we have to make sure the accesses are using physical memory addresses.
2023-01-24Kernel/aarch64: Add function to MMU.cpp to unmap identity mappingTimon Kruiper
This function will be used once the kernel runs in high virtual memory to unmap the identity mapping as userspace will later on use this memory range instead.
2023-01-24Kernel/aarch64: Add {panic,dbgln}_without_mmuTimon Kruiper
And use it the code that will be part of the early boot process. The PANIC macro and dbgln functions cannot be used as it accesses global variables, which in the early boot process do not work, since the MMU is not yet enabled.
2023-01-24Kernel/aarch64: Map kernel and MMIO in high virtual memoryTimon Kruiper
In the upcoming commits, we'll change the kernel to run at a virtual address in high memory. This commit prepares for that by making sure the kernel and mmio are mapped into high virtual memory.
2023-01-24Kernel: Add KERNEL_MAPPING_BASE to Sections.h and use it in PrekernelTimon Kruiper
2023-01-24icc: Print every TagData object only onceNico Weber
When several tags refer to the same TagData object, we now only print it the first time, and print "(see 'foob' above)" the following times, where `foob` is the tag identifier where we printed it the first time.
2023-01-24LibGfx: Dedupe ICC TagData objectsNico Weber
Several tags can refer to the same TagData. In particular, the rTRC, gTRC, bTRC tags usually all three refer to the same curve. Curve objects can be large, so allocate only a single TagData object in that case and make all tags point to it. (If we end up storing some cache in the curve object later on, this will also increase the effectiveness of that cache.)
2023-01-24AK: Make HashMap::try_ensure work with a fallible construction callbackNico Weber
Co-authored-by: Timothy Flynn <trflynn89@pm.me>
2023-01-24LibGfx: Move TagTableEntry into read_tag_tableNico Weber
It's now used only there.
2023-01-24LibGfx: Pass offset and size instead of full TagTableEntry to read_tagNico Weber
read_tag() has no business knowing the tag signature.
2023-01-24WindowServer: Reuse existing `WindowManager::desktop_rect()` methodSam Atkins
2023-01-24LibGfx: Use `Core::Stream` to decode QOI imagesTim Schumacher
2023-01-24LibGfx: Pass the first QOI chunk byte to the operation implementationTim Schumacher
This reduces reliance on the peek operation, which the generic stream implementation does not support. This also corrects the naming, since "tag" wasn't entirely correct for some of the operations, where the tag takes up only part of a byte, with the rest being reserved for data.
2023-01-24LibGfx: Use x-mac-roman TextCodec for decoding MacRoman textNico Weber
2023-01-24LibTextCodec: Add a MacRoman decoderNico Weber
Allows displaying `<meta charset="x-mac-roman">` html files. (`:set fenc=macroman`, `:w` in vim to save in that encoding.)
2023-01-24LibTextCodec: Simplify Latin1Decoder::process() a tiny bitNico Weber
2023-01-24LibGfx: Cache font pixel metrics in ScaledFontAndreas Kling
Instead of recomputing the pixel metrics over and over, we can just cache them with the font and avoid a bunch of expensive computation.
2023-01-24WindowServer: Double click a window's frame to latch to screen's edgeJelle Raaijmakers
2023-01-24WindowServer: Always process double clicks for mouse eventsJelle Raaijmakers
This used to be optional and was disabled in two cases: - On a mouse move event during dragging; because double clicks are only possible on mouse up events, this had no effect. - On a mouse event for automatic cursor tracking; this has now gained support for double click events. Since it's always enabled now, we can remove the `bool` argument.
2023-01-24LibDebug: Pass `read_from_stream` calls through `read_value` insteadTim Schumacher