summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-26LibAudio: Seek to the first frame on reset in FLACKarol Kosek
The files weren't starting exactly from the beginning before. This happened because the parameter now takes the sample index, instead of a seekpoint.
2022-07-26LibAudio: Read FLAC Metadata blocks larger than the buffer sizeKarol Kosek
Out of 40/63 failed tests, this change reduces the number down to four. :^) See: #14683
2022-07-26Base: Add some more border-radius test casesMacDue
* A border-radius + a border on a <img> tag - The border-radius on the <img> should shrink to line up with the border. * A border-radius + a border on a div with overflow: hidden - The clipping border-radius should shrink (same as the image).
2022-07-26LibWeb: Shrink the inner border radii to accommodate the border widthsMacDue
This fixes the shape of the subreddit logo on new reddit.
2022-07-26LibWeb: Introduce the File interface from the FileAPI specKenneth Myhra
2022-07-26LibWeb: Add missing spec links to the Blob interfaceKenneth Myhra
2022-07-26LibWeb: Fix const issue on type() accessor for the Blob interfaceKenneth Myhra
2022-07-26LibWeb: Make process_blob_parts() publicly accessibleKenneth Myhra
This pulls process_blob_parts() out of the Blob class and makes it publicly accessible.
2022-07-26LibWeb: Add public get accessor function for Blob's internal ByteBufferKenneth Myhra
Blob::bytes() returns the ReadonlyBytes representation of our internal ByteBuffer. This change requires us to ByteBuffer::copy() Blob's ReadonlyBytes to a ByteBuffer in XHR::send() and corresponding error handling of the copy operation. This removes the need for Blob to declare XMLHttpRequest as a friend class.
2022-07-26LibJS: Allow out-of-order plural ranges to be formattedTimothy Flynn
This is a normative change to the Intl NumberFormat V3 spec: https://github.com/tc39/proposal-intl-numberformat-v3/commit/0c3d849
2022-07-26LibJS: Allow out-of-order number ranges to be formattedTimothy Flynn
This is a normative change to the Intl NumberFormat V3 spec: https://github.com/tc39/proposal-intl-numberformat-v3/commit/0c3d849
2022-07-26LibJS: Allow out-of-order date ranges to be formattedTimothy Flynn
This is a normative change to the Intl spec: https://github.com/tc39/ecma402/commit/769df4b
2022-07-26LibGUI: Move tooltip position up 4 pixels to prevent cursor pop-undergbowser3@gmail.com
2022-07-26AK: VERIFY() the index is in bounds in StringView::operator[]MacDue
That this did not already happen took me by surprise, as for most other similar containers/types in AK (e.g. Span) the index will be checked. This check not happening could easily let off-by-one indexing errors slip through the cracks.
2022-07-26LibWeb: Make automatic heights for abspos non-replaced behave betterAndreas Kling
Previously we were checking if values were "auto" after resolving the "auto"-ness out of them, which didn't work. There's still a bunch of work to do on this algorithm, but now we can at least resolve some basic automatic height scenarios.
2022-07-26LibWeb: Remove FFC helpers is_{main,cross}_axis_margin_first_auto()Andreas Kling
We already cache these values with each flex item, so let's just use those instead.
2022-07-26LibWeb: Don't treat calc() in used flex basis as definite for nowAndreas Kling
We'll eventually need some way to determine if a calc() value results in a definite size.
2022-07-26LibWeb: Make two passes in FFC where to support percentage min/max sizesAndreas Kling
Percentage sizes of flex items are relative to the flex container, but even when the flex container is automatically sized, we still have to support them. To make this work, we first do a pass where percentage sizes are ignored (treated as "auto", basically) in order to get a "reference" value. Then we do a second pass where percentages can be resolved against this reference value.
2022-07-26LibWeb: Improve min/max content contribution calculations for flex itemsAndreas Kling
Follow the spec more closely.
2022-07-26LibWeb: Clamp flex items to min/max main size during intrinsic sizingAndreas Kling
We were neglecting to clamp flex items when calculating the intrinsic main size of the flex container. This was covered by a FIXME, which we can now remove. :^)
2022-07-26LibWeb: Simplify flex container main size determinationAndreas Kling
We had an older incomplete implementation of flex container max-content sizing that we used for unconstrained main size determination. This patch replaces the old implementation with a call to the new max-content sizing code. Note that this isn't a complete implementation of flex container sizing still, but at least we've deduplicated some code.
2022-07-26LibWeb: Add FFC helpers for getting the computed main/cross size of boxAndreas Kling
2022-07-26LibWeb: Move get_pixel_{width,height} helpers into FFC classAndreas Kling
2022-07-26LibWeb: Mark flex item cross sizes as definite when spec asks us toAndreas Kling
The CSS-FLEXBOX-1 spec gives us two situations in which flex item cross sizes should be considered definite. Both of them happen *during* flex layout, which is super finicky but it is what it is.
2022-07-26LibWeb: Avoid some unnecessary inside layouts during intrinsic sizingAndreas Kling
When calculating intrinsic sizes, we don't need to recurse into *every* box and layout its insides. IIUC, we can skip any unconstrained box with definite sizes in both axes. So this patch does exactly that.
2022-07-26LibWeb: Rename IntrinsicSizeDetermination to IntrinsicSizingAndreas Kling
This matches the exact terminology used in CSS-SIZING-3: https://drafts.csswg.org/css-sizing-3/#intrinsic-sizing
2022-07-26LibWeb: Take size constraints into account in fit-content calculationsAndreas Kling
Also avoid calculating both min-content and max-content sizes when only one of them is needed.
2022-07-26LibWeb: Resolve flexbox percent heights against containing block heightAndreas Kling
Percentage values for `min-height` and `max-height` should be resolved against the containing block height, not its width.
2022-07-26LibWeb: Resolve definite sizes when instantiating UsedValuesAndreas Kling
When we decide that a box has definite width or height based on its containing block's corresponding size, we'll want to resolve the current box's size as well. Otherwise anyone querying the size on this box will get the bogus message of "yes, this definite, and its value is zero."
2022-07-26LibWeb: Actually check if percentage used flex basis is definiteAndreas Kling
Previously, we considered all LengthPercentage values for used flex basis to be definite. This is not accurate, as percentages should only be considered definite if the reference value they resolve against is a definite size. Fix this by checking the flex container's main definite size flag.
2022-07-26LibWeb: Don't override main size during flex item cross sizingAndreas Kling
There's no need to override the sizes before calculating the cross size. Besides, by the time we're calculating the hypothetical cross size of flex items, we may already have established a definite main size anyway, so overriding it would be wrong.
2022-07-26LibWeb: Some flex items have definite size after flexingAndreas Kling
This patch implements two of the special "definite size" rules from the CSS-FLEXBOX-1 spec. https://drafts.csswg.org/css-flexbox-1/#definite-sizes
2022-07-26LibWeb: Containing block always has definite width during abspos layoutAndreas Kling
From CSS-SIZING-3: "...the size of the containing block of an absolutely positioned element is always definite with respect to that element."
2022-07-26LibWeb: Move "has-definite-width/height" flags to UsedValuesAndreas Kling
This state is less static than we originally assumed, and there are special formatting context-specific rules that say certain sizes are definite in special circumstances. To be able to support this, we move the has-definite-size flags from the layout node to the UsedValues struct instead.
2022-07-25chown: Implement recursionTim Schumacher
2022-07-25chown: Add support for multiple file pathsTim Schumacher
2022-07-26LibWeb: Simplify more code with CSS::LengthPercentage::is_auto()Andreas Kling
2022-07-26LibWeb: Destroy ICB formatting context before committing used valuesAndreas Kling
Absolutely positioned boxes are handled by the BFC destructor, so we need to make sure the ICB BFC is destroyed if we want these boxes to get laid out.
2022-07-25LibJS: Use SortIndexedProperties AO in TypedArray.prototype.sortTimothy Flynn
Note that we cannot use CompareTypedArrayElements until the change- array-by-copy proposal picks up the change to no longer throw with detached array buffers.
2022-07-25LibJS: Use SortIndexedProperties AO in Array.prototype.sortTimothy Flynn
By aligning Array.prototype.sort with the spec, this removes the direct invocation of CompareArrayElements from array_merge_sort. This opens the door for TypedArray to use SortIndexedProperties as well because now array_merge_sort does not assume what kind of array it is invoked with. Further, this addresses a FIXME to avoid an extra JS heap allocation.
2022-07-25LibJS: Add missing spec step to CompareTypedArrayElementsTimothy Flynn
This isn't actually much of an issue because if the LHS side value is -0 and the RHS value is +0, errantly returning 0 in the comparison function here has the same effect as correctly returning -1. In both cases, the -0 is left on the LHS.
2022-07-25ln: Implement correct handling of directories as link targetsTim Schumacher
2022-07-25ln: Rework to use LibCore syscall wrappersTim Schumacher
2022-07-25LibCore: Add `System::link()`Tim Schumacher
2022-07-25Kernel: Fix incorrect return type on aarch64Filiph Sandström
InterruptController's model incorrectly returned a char[] instead of a StringView.
2022-07-25LibGfx+Base: Draw radio buttons programmaticallyAndreas Kling
Remove the static PNG bitmaps we've been using for GUI radio buttons and replace them with on-the-fly pixel painting. This fixes a long-standing issue where radio buttons always looked the same, regardless of system theme settings. :^)
2022-07-25Kernel/LibC: Implement posix syscall clock_getres()zzLinus
2022-07-25chmod: Implement the `--recursive` flagTim Schumacher
2022-07-25chmod: Port to ArgsParserTim Schumacher
2022-07-25Piano: Replace knob instantiations with ProcessorParameterWidgetskleines Filmröllchen
The only remaining "manual" knob instatiation is the octave, which will be moved into an entirely different UI in the future.