summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-12-06AK+Everywhere: Rename String to DeprecatedStringLinus Groh
We have a new, improved string type coming up in AK (OOM aware, no null state), and while it's going to use UTF-8, the name UTF8String is a mouthful - so let's free up the String name by renaming the existing class. Making the old one have an annoying name will hopefully also help with quick adoption :^)
2022-12-06LibWeb: Do not try to place out-of-flow blocks in anonymous nodesAliaksandr Kalenik
Currently placing floating blocks in anonymous nodes makes https://stackoverflow.com/ hang so let's leave it to try to place only absolute blocks in anonymous nodes for now. Also it breaks flex formatting when element with floating is flex child.
2022-12-05LibAudio: Use `NonnullOwnPtr` to keep track of LoaderPlugin streamsTim Schumacher
This doesn't have any immediate uses, but this adapts the code a bit more to `Core::Stream` conventions (as most functions there use NonnullOwnPtr to handle streams) and it makes it a bit clearer that this pointer isn't actually supposed to be null. In fact, MP3LoaderPlugin and FlacLoaderPlugin apparently forgot to check for that completely before starting to decode data.
2022-12-05LibAudio: Switch LoaderPlugin to a more traditional constructor patternTim Schumacher
This now prepares all the needed (fallible) components before actually constructing a LoaderPlugin object, so we are no longer filling them in at an arbitrary later point in time.
2022-12-05LibAudio: Stop passing `Bytes` by referenceTim Schumacher
`Bytes` is very slim, so the memory and/or performance gains from passing it by reference isn't that big, and it passing it by value is more compatible with xvalues, which is handy for things like `::try_create(buffer.bytes())`.
2022-12-05LibWeb: Fix box-shadows where the border-radius is < the blur-radiusMacDue
This fixes a rendering issue where box-shadows would not appear or render completely broken if the blur radius was larger than the border radius (border-radius < 2 * blur-radius to be exact).
2022-12-05LibWeb: Inherit TableFormattingContext from FC instead of BFCAliaksandr Kalenik
2022-12-05LibWeb: Add vertical-align support for table cellsAliaksandr Kalenik
2022-12-05LibWeb: Move box_baseline from LineBuilder.cpp to LayoutState.cppAliaksandr Kalenik
2022-12-05LibWeb: Implement intrinsic width calculation for TFCAliaksandr Kalenik
2022-12-05LibWeb: Take rowspan into account while table formattingAliaksandr Kalenik
2022-12-05LibWeb: Start implementation of CSS Table 3 specAliaksandr Kalenik
Here I try to address bug where content of table overflows it's width (hacker news is an example of such site) by reimplementing some parts of table formatting context. Now TFC implements first steps of: https://www.w3.org/TR/css-tables-3/#table-layout-algorithm but column width and row height distribution steps are still very incomplete.
2022-12-05LibGUI: Fix a typoCameron Youell
2022-12-04MouseSettings: Add "Natural scrolling" toggleFiliph Sandström
2022-12-04WindowServer: Add "Natural scrolling" supportFiliph Sandström
Also commonly referred to as "reverse scrolling" or "inverted scrolling".
2022-12-04WebContent+WebDriver: Implement `POST /session/{id}/window` endpointVictor Song
2022-12-04WebContent: Unveil /usr/lib as readableMacDue
This is required to load libsoftgpu for the WebGL demos.
2022-12-04DisplaySettings: Remove unnecessary check for an overridden themeOsamu-kj
Issue discussed in #16290
2022-12-04Utilities: Add stringsAlec Murphy
2022-12-04LibGUI: Swap Next and Previous button on IncrementalSearchBannerŠtěpán Balážik
This order seems more natural as it is used in basically all apps on other systems (e.g. Firefox, CLion,...).
2022-12-03Everywhere: Remove 'clang-format off' comments that are no longer neededLinus Groh
https://github.com/SerenityOS/serenity/pull/15654#issuecomment-1322554496
2022-12-03Everywhere: Run clang-formatLinus Groh
2022-12-03LibCodeComprehension: Add .clang-format to disable formatting for testsLinus Groh
Same as 42865b8975818116b922aa2411eb167618fc532c.
2022-12-03LibC: Add definitions for missing ELF constantsAndrew Kaster
Qt 6.4.0 relies on the definitions of ELFOSABI_GNU, ELFOSABI_AIX, and EM_S390 existing.
2022-12-03LibJS: Add a function to ensure calls are made within the same seconddavidot
Before these tests could be flaky if they happened to be called around the edge of a second. Now we try up to 5 times to execute the tests while staying within the same second.
2022-12-03LibC: Return h_aliases array from gethostbyname() and gethostbyaddr()Taj Morton
The hostent struct's h_aliases field conventionally contains a pointer to an array of alternate hostnames, where the final entry in this array is a nullptr (signifying the end of the list). At least one POSIX application (Pine email client) does not expect `h_aliases` itself to be nullptr.
2022-12-03LibWeb: Fix integer overflow in gradient paintingMacDue
This would cause rendering glitches at the edges of gradients (at certain angles).
2022-12-03LibGfx: Fix some more antialiased line off-by-onesMacDue
Turns out most things expect lines to include the endpoint, e.g. 0,0 -> 3,0 is a 4px long line. But the fill_path() implementation seems to expect the line to be the distance between the two points (so the above example is a 3px line instead). This now adds an option to pick between PointToPoint line length or Distance line length and uses the latter for fill_path().
2022-12-03LibGfx: Remove some unused AntiAliasingPainter methodsMacDue
2022-12-03LibGfx: Add some AntiAliasingPainter FIXMEsMacDue
Also fixup the style on some comments. See #16270... Hopefully someone will land on these :^)
2022-12-03LibJS: Add an EliminateLoads pass to BytecodeHendiadyoin1
This pass tries to eliminate repeated lookups of variables by name, by remembering where these where last loaded to. For now the lookup cache needs to be fully cleared with each call or property access, because we do not have a way to check if these have any side effects on the currently visible scopes. Note that property accesses can cause getters/setters to be called, so these are treated as calls in all cases.
2022-12-03LibJS: Expose some internals of InstructionsHendiadyoin1
These will be needed in the future to allow optimization passes to check against these
2022-12-03LibJS: Add a way to replace references to registers in BytecodeHendiadyoin1
2022-12-03LibJS: Make Register comparableHendiadyoin1
2022-12-03LibWeb: Support `repeating-radial-gradient()`sMacDue
2022-12-03LibJS: Don't try to merge blocks not ending in JumpsHendiadyoin1
2022-12-03LibJS: Remeber which instruction terminated a blockHendiadyoin1
2022-12-03LibJS: Add a debug_position helper to the Bytecode InterpreterHendiadyoin1
This also changes argument_list_evaluation's dbgln to use it.
2022-12-03LibJS: Restore cached current_block on return in BytecodeHendiadyoin1
Otherwise debug prints will show the wrong block until we preform a jump
2022-12-03LibJS: Handle FinishUnwind in GenerateCFGHendiadyoin1
2022-12-03LibJS: Mark FinishUnwind as a terminatorHendiadyoin1
2022-12-03LibJS: Use a switch statement in GenerateCFGHendiadyoin1
2022-12-03LibJS: Don't mark blocks for unification multiple timesHendiadyoin1
This would cause a UAF otherwise
2022-12-03js: Force optimizations when setting the -p flagHendiadyoin1
2022-12-03LibCore: Mark connections to InspectorServer as MSG_NOSIGNALSam Atkins
If InspectorServer closes for some reason at the wrong time, there is no need for the inspected application to terminate.
2022-12-03LibCore: Mark LocalServer client sockets as MSG_NOSIGNALSam Atkins
Make LocalServer connections not terminate their process from SIGPIPE, which fixes the issue where closing DisplaySettings with the[OK] button would often crash WindowServer.
2022-12-03LibCore: Optionally pass MSG_NOSIGNAL to socket read/writesSam Atkins
When creating a `Core::Stream::Socket`, you can now choose to prevent SIGPIPE signals from firing and terminating your process. This is done by passing MSG_NOSIGNAL to the `System::recv()` or `System::send()` calls when you `read()` or `write()` to that Socket.
2022-12-03Kernel+SystemServer: Don't hardcode coredump directory pathLiav A
Instead, allow userspace to decide on the coredump directory path. By default, SystemServer sets it to the /tmp/coredump directory, but users can now change this by writing a new path to the sysfs node at /sys/kernel/variables/coredump_directory, and also to read this node to check where coredumps are currently generated at.
2022-12-02LibJS: Implement Set.prototype.isDisjointFromIdan Horowitz
2022-12-02LibJS: Implement Set.prototype.isSupersetOfIdan Horowitz