summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-07-21Kernel: Clean up sys$futex and add support for cross-process futexesIdan Horowitz
2022-07-21LibC: Only select Elf32_* in ElfW() macro defintion on 32-bit platformsAndrew Kaster
2022-07-21du: Implement the 1k block size short optionTim Schumacher
2022-07-21du: Invert apparent-size behaviourTim Schumacher
The apparent size is what `stat` says what we use. The non-apparent size is the blocks that we actually use on-disk.
2022-07-21du: Implement custom block sizesTim Schumacher
2022-07-21du: Replace home-grown block-based size calculation with `ceil_div`Tim Schumacher
2022-07-21LibCore: Add support for long integral types to ArgsParserTim Schumacher
2022-07-21LibCore: Implement integral ArgsParser options through a templateTim Schumacher
This keeps us from having to duplicate code for each data type we add.
2022-07-21LibWeb: Allow `calc()` inside CSS transform functions :^)Sam Atkins
As noted, we should probably handle calc() parsing as part of parsing other values. eg, any `<length>` can be a `calc()` that returns a length, but we currently have to manually handle that everywhere that doesn't use the `Parser::parse_css_value(ComponentValue)` method.
2022-07-21LibWeb: Add helper methods for checking a calc()'s resolved typeSam Atkins
2022-07-21LibWeb: Stop handling impossible Percentage return valuesSam Atkins
When a `calc()` is resolved, it can only return a Percentage value if the requested type is Percentage. In all other cases, it returns a concrete value. eg, a `calc()` with Lengths and Percentages in will always resolve to a Length, never a Percentage. This means we can just return Length directly instead of LengthPercentage, which simplifies things in a few places.
2022-07-21LibWeb: Handle `transform` in `style_value_for_property()`Sam Atkins
2022-07-21LibWeb: Mark `transform` property as affecting stacking contextsSam Atkins
2022-07-21LibWeb: Store calculated transformation matrix on the StackingContextSam Atkins
This is mainly so we can easily read that matrix later, but also has the benefit of only calculating the matrix once, instead of every time we paint. :^)
2022-07-21LibWeb: Make PaintableBox private members privateSam Atkins
These are all `m_` prefixed and only used by PaintableBox itself.
2022-07-21LibWeb: Produce a transformation matrix for TransformFunction::RotateSam Atkins
Currently we can't actually paint the result, but at least the maths is correct. :^)
2022-07-21LibWeb: Add proper support for Angle parameters in transform functionsSam Atkins
Also, made the `reference_length` parameter optional for the lambda that extracts transform-function parameters, since it is only needed to resolve `LengthPercentage` parameters.
2022-07-21LibWeb: Alphabetize style_value_for_property() listSam Atkins
2022-07-21LibWeb: Remember the used flex basis for each flex itemAndreas Kling
This will be consulted later on in the flex layout algorithm.
2022-07-21LibWeb: Use right offset for `justify-content: flex-end`Andreas Kling
Offsets in this algorithm are relative to the starting position, so it should be 0 whether its `flex-start` or `flex-end`.
2022-07-21LibWeb: Snap transformed stacking contexts to pixel gridAndreas Kling
Make sure that we're painting them at an integer pixel position, to avoid smearing.
2022-07-21LibWeb: Resolve `auto` containing block sizes before intrinsic sizingAndreas Kling
Before performing intrinsic sizing layout on a box, we now check if its containing block has automatic size in the relevant axis, and if so, we fetch the size of the nearest containing block ancestor with a size.
2022-07-21LibWeb: Floor hypothetical main size at 0Andreas Kling
The spec asks us to do this. It doesn't become relevant until we implement box-sizing, but might as well do it anyway.
2022-07-20LibJS: Implement Intl.NumberFormat.prototype.formatRangeToPartsTimothy Flynn
2022-07-20LibJS: Implement Intl.NumberFormat.prototype.formatRangeTimothy Flynn
2022-07-20LibJS: Move PatternPartitionWithSource structure to AbstractOperations.hTimothy Flynn
This struct will be needed by more than just the DateTimeFormat object. Also add an equality operator, which will be needed by NumberFormat.
2022-07-20LibUnicode: Implement the range pattern processing algorithmTimothy Flynn
This algorithm is to inject spacing around the range separator under certain conditions. For example, in en-US, the range [3, 5] should be formatted as "3–5" if unitless, but as "$3 – $5" for currency.
2022-07-20LibUnicode: Generate per-locale approximately & range separator symbolsTimothy Flynn
2022-07-20js: Don't pass error strings as the format argument to outln()Ali Mohammad Pur
This fixes a crash when the error contains '{}', or an invalid format string.
2022-07-20LibRegex: Check code unit count range when accessing by code unit countAli Mohammad Pur
2022-07-20LibJS: Hook up the 'v' (unicodeSets) RegExp flagAli Mohammad Pur
2022-07-20LibRegex: Partially implement the ECMAScript unicodeSets proposalAli Mohammad Pur
This skips the new string unicode properties additions, along with \q{}.
2022-07-20LibRegex: Refactor parsing 'CharacterEscape' out of 'AtomEscape'Ali Mohammad Pur
The ECMA262 spec has this as a separate production, and we need it to be split up for a future commit.
2022-07-20LibRegex: Pass parse flags as a struct instead of multiple argumentsAli Mohammad Pur
2022-07-20LibJS: Remove invalid CreateDateDurationRecord AO overloadIdan Horowitz
2022-07-20LibJS: Hook the Intl mathematical value into Intl.NumberFormatTimothy Flynn
2022-07-20LibJS: Implement a basic Intl mathematical valueTimothy Flynn
The Intl mathematical value is much like ECMA-262's mathematical value in that it is meant to represent an arbitrarily precise number. The Intl MV further allows positive/negative infinity, negative zero, and NaN. This implementation is *not* arbitrarily precise. Rather, it is a replacement for the use of Value within Intl.NumberFormat. The exact syntax of the Intl MV is still being worked on, but abstracting this away into its own class will allow hooking in the finalized Intl MV more easily, and makes implementing Intl.NumberFormat.formatRange easier. Note the methods added here are essentially the same as the static helpers in Intl/NumberFormat.cpp.
2022-07-20LibJS: Return an enum from ApplyUnsignedRoundingModeTimothy Flynn
After the Intl MV is implemented, returning a copy of the desired value here may involve copying non-trivial data. Instead, return an enum to indicate which decision was made.
2022-07-20LibJS: Avoid FormatNumericToString spec issue more carefullyTimothy Flynn
This becomes more of an issue when implementing the Intl mathematical value, where negative zero is treated as a special enum value. In that case, we already previously changed the value from -0 to +0 in step 1b. Entering the branch for step 4 will then set it back to -0. The math that follows after these steps worked fine with both +0/-0, but assertions will be reached in the Intl MV implementation.
2022-07-20LibWeb: Move extract_mime_type() from XMLHttpRequest to HeaderListLinus Groh
Except some minor tweaks, this is a direct copy of Luke's initial implementation in XMLHttpRequest, now replacing the former.
2022-07-20LibWeb: Fix accidental (name, name) header in Headers::fill()Linus Groh
This makes two more WPT tests pass here: http://wpt.live/fetch/api/headers/headers-basic.any.html
2022-07-20LibC: Remove the initialization workaround from `s_allocation_enabled`Tim Schumacher
2022-07-20LibELF: Copy the entire TLS segment instead of each symbol one-by-oneTim Schumacher
This automatically fixes an issue where we were accidentally copying garbage data from beyond the TLS segment as uninitialized data isn't actually stored inside the image.
2022-07-20LibELF: Remove outdated TLS handling in generic program header codeTim Schumacher
2022-07-19LibC: Remove a bunch of weak `pthread_*` symbolsTim Schumacher
2022-07-19LibWeb: Blockify `inline-flex` to `flex`Andreas Kling
Previously, `inline-flex` would blockify to `block` since blockification didn't take the inner display type into account. This is still not perfect, but it fixes a lot of situations where inline-level flex containers would be demoted to regular block containers.
2022-07-19LibWeb: Add accessors for UsedValues::computed_{width,height}Andreas Kling
This is preparation for doing some more work when assigning to these values.
2022-07-19LibWeb: Fix overflow: hidden not applying to positioned descendantsMacDue
This now calls before/after_child_paint() on the parent paintable of a positioned child. This allows the parent's overflow clipping to apply to the child.
2022-07-19LibWeb: Apply overflow: hidden to all (relevant) child paint phasesMacDue
Previously, before/after_children_paint() was only called for the "Foreground" paint phase, this meant the backgrounds and other features of child nodes of a element with overflow: hidden were not clipped.
2022-07-19LibWeb: Honor the flexbox spec's "automatic minimum size" everywhereAndreas Kling
`min-width: auto` and `min-height: auto` have special behavior on flex items. We already handled it in many cases but there were two places where it was incorrectly treated as 0. This fixes that.