summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-10-03Userland: Tighten promises by removing 'proc' where it isn't usedTimothy Flynn
This is a partial revert of commit 7af5eef. After 97d15e9, the 'proc' promise is not needed for operations using getsid(). This also fixes launching several applications in which 7af5eef added the 'proc' promise only in the second call to pledge().
2022-10-03LibWeb: Implement HTMLImageElement.completeAndreas Kling
This was fairly straightforward, although a small part had to be ad-hoc since we don't yet load images through Fetch. With this, we can now see annotation labels on deskto.ps :^)
2022-10-03LibWeb: Dispatch mouseenter and mouseleave events when requiredAndreas Kling
I've left a FIXME here about populating the events with mouse coordinates, button states, etc. We also need to verify that the dispatch order either doesn't matter or at least match other engines.
2022-10-03LibWeb: Don't add half-leading twice to inline block boxesAndreas Kling
Inline-level blocks already have the half-leading applied internally, so by adding it twice, we were offsetting their baseline by the half-leading of the line. This fixes an issue where inline-blocks were vertically offset from the line they're supposed to sit on.
2022-10-03LibWasm: Use String::join in Printer where apropriateHendiadyoin1
2022-10-03LibWasm: Use TRY in Module::parseHendiadyoin1
2022-10-03SystemServer+LoginServer+Userland: Switch to sid-based socketsPeter Elliott
This commit does three things atomically: - switch over Core::Account+SystemServer+LoginServer to sid based socket names. - change socket names with %uid to %sid. - add/update necessary pledges and unveils. Userland: Switch over servers to sid based sockets Userland: Properly pledge and unveil for sid based sockets
2022-10-03Utilities/logout: Refactor to use Core::SessionManagement::logoutPeter Elliott
2022-10-03LibCore: Create Core::SessionManagement for session managementPeter Elliott
2022-10-03LibCore: Make usernames optional in ProcessStatisticsReaderPeter Elliott
2022-10-03LibCore: Add Core::System wrapper for getsid()Peter Elliott
2022-10-03LibWeb: It's AK_OS_MACOS, not AK_OS_MACAndreas Kling
2022-10-02LibJS: Capture promise capability in new_promise_capability() executorLinus Groh
This is how the spec suggests implementing this; we need to be slightly more verbose as our PromiseCapability implementation cannot hold arbitrary JS values. Unfortunately it makes the error message slightly more ambiguous as we no longer expose the non-function value to the outer scope (we could!), but at least we don't UAF the stack allocated values anymore :^)
2022-10-02LibJS: Make PromiseCapability GC-allocatedLinus Groh
A struct with three raw pointers to other GC'd types is a pretty big liability, let's just turn this into a Cell itself. This comes with the additional benefit of being able to capture it in a lambda effortlessly, without having to create handles for individual members.
2022-10-02LibJS: Add Visitor::visit(GCPtr<T>) and Visitor::visit(NonnullGCPtr<T>)Linus Groh
Let's avoid reaching for ptr() as much as possible.
2022-10-02LibJS: Add Value(GCPtr<T>) and Value(NonnullGCPtr<T>) constructorsLinus Groh
Let's avoid reaching for ptr() as much as possible.
2022-10-02LibJS: Move PromiseCapability into its own cpp/h fileLinus Groh
This is not strictly connected to PromiseReaction in any way. Preparation before doing some actual work on it :^)
2022-10-02LibJS: Update outdated PROMISE_DEBUG loggingLinus Groh
2022-10-02LibJS: Remove two outdated forward declarationsLinus Groh
2022-10-02LibWeb: Fix string whitespace splitting mistakeMacDue
`.split_view(Infra::ASCII_WHITESPACE)` tries to split the string view on the string "\t\n\f\r " (not any of the individual characters of that string). The correct way to split this string views here is `.split_view_if(Infra::is_ascii_whitespace)`, this is a little inconsistent with String, so probably should be addressed.
2022-10-02mount: Report error instead of crashing on failureLucas CHOLLET
Being unable to `open` on the source caused mount to crash. The error is now properly reported to the user.
2022-10-02test: Support more optionsimplicitfield
Adds -g, -G, -k, -O and -u options.
2022-10-02test: Print the correct operator on errorimplicitfield
2022-10-02LibWeb: Move strip_and_collapse_whitespace() to Infra/Linus Groh
...and make it spec compliant by considering all ASCII whitespace, greatly simplifying it in the process :^)
2022-10-02LibWeb: Replace incorrect uses of split_view() for whitespace splittingLinus Groh
2022-10-02LibWeb: Replace incorrect uses of String::trim_whitespace()Linus Groh
2022-10-02LibWeb: Replace incorrect uses of AK::is_ascii_space()Linus Groh
2022-10-02LibWeb: Add is_ascii_whitespace() functionLinus Groh
This matches the Infra spec's definition of 'ASCII whitespace', and we can at last stop using AK::is_ascii_space(), which has a different idea about what 'whitespace' means.
2022-10-02Snake: Show message box on game overmatcool
Previously the game would immediately reset on game over, but now it'll pause the game and show a message box with your score.
2022-10-02Games: Wrong parent window passed to GUI::MessageBoxMonroe Clinton
We were passing the wrong parent window to GUI::MessageBox making it impossible to exit the message window.
2022-10-02LibWeb: Support painting the hue-rotate() filter effectMacDue
2022-10-02LibGfx: Implement HueRotateFilterMacDue
This implements a simple and fairly efficient hue rotation filter. It is based off the SVG feColorMatrix "hueRotate" matrix operation. https://drafts.fxtf.org/filter-effects-1/#elementdef-fecolormatrix
2022-10-02LibGfx: Add `[[nodiscard]]` to Matrix operatorsMacDue
2022-10-02LibGfx: Add Matrix::operator*(T scalar)MacDue
2022-10-02LibGfx: Add Matrix::operator+(Matrix const & other)MacDue
2022-10-02LibWeb: Report the current OS instead of always saying SerenityOSAndreas Kling
2022-10-02LibWeb: Improve placement of abspos boxes with dual-auto insetsAndreas Kling
When an absolutely positioned box has auto insets on both sides of an axis, it's placed according to the "static position rectangle". This is, roughly, the rectangle a box would occupy if it were position:static instead of position:absolute or position:fixed. This patch implements a rough, but still significantly better, estimation of such static positions. It gets pretty hairy in the case where an abspos box has a parent whose children are inline.
2022-10-02LibWeb: Reset painter translation when painting fixed-position elementsAndreas Kling
This makes nested position:fixed elements work, previously we'd apply the viewport scroll offset once at every nesting level.
2022-10-02LibGfx: Add a way to get the Painter's current 2D translationAndreas Kling
2022-10-02LibWeb: Add helpful locals in layout_absolutely_positioned_element()Andreas Kling
This code had some obnoxiously repetetive call chains.
2022-10-02LibWeb: Vertical % margins are relative to containing block widthAndreas Kling
We were messing this up on absolutely positioned elements by using the containing block height instead.
2022-10-02LibWeb: Reorganize layout algorithms around available spaceAndreas Kling
This is a big and messy change, and here's the gist: - AvaliableSpace is now 2x AvailableSize (width and height) - Layout algorithms are redesigned around the idea of available space - When doing layout across nested formatting contexts, the parent context tells the child context how much space is available for the child's root box in both axes. - "Available space" replaces "containing block width" in most places. - The width and height in a box's UsedValues are considered to be definite after they're assigned to. Marking something as having definite size is no longer a separate step, This probably introduces various regressions, but the big win here is that our layout system now works with available space, just like the specs are written. Fixing issues will be much easier going forward, since you don't need to do nearly as much conversion from "spec logic" to "LibWeb logic" as you previously did.
2022-10-02LibWeb: Don't try to format inline-block boxes in BFCAndreas Kling
Inline-level block boxes are handled by IFC. BFC doesn't have to worry about these.
2022-10-02LibWeb: Fix crash when loading a HTML string that contains an iframeMacDue
The HTMLIFrameElement does not create the nested browsing context on insertion if the document does not have browsing context, which is not set unless it's the active document. Previously, in FrameLoader the document was not set as active until after parsing, which led to iframes without nested browsing contexts, and crashes. Fixes #14207
2022-10-02LibJS: Show class name in the dump from the NewClass instructionHendiadyoin1
2022-10-02LibJS: Set class' source text in NewClass instructionHendiadyoin1
This fixes the classes toString method.
2022-10-02Calendar: Fix crash when changing event dateMonroe Clinton
We were capturing by reference which lead to the variables going out of scope even when used in the lambda. Due to this the update_starting_day_range lambda crashes when called.
2022-10-01LibWeb: Don't scale by x, x when a scale x, y is provided as a transformHendiadyoin1
2022-10-01LibWeb: Remove the internal window object from WebEngineCustomDataAndrew Kaster
Now that no one needs a Window just to create prototypes, we can remove the internal window Object from the main thread VM and get rid of the HTML::Window include for it. This finally solves the reference binding to nullptr error in ladybird that shows up when compiling it with ASAN.
2022-10-01LibWeb: Cleanup unecessary uses and includes of HTML::WindowAndrew Kaster
The big global refactor left some stragglers behind for atomicity. Clean up the rest, and remove a ton of includes of LibWeb/HTML/Window.h