summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-02-26LibWeb: Make TreeNode::child_count return size_t instead of intLuke Wilde
The primary benefit of this is that it's unsigned, as you can't have a negative amount of children. Plus, all the users of child_count expect it to be size_t.
2022-02-26LibWeb: Implement StaticRangeLuke Wilde
2022-02-26LibWeb: Abstract Range's members into AbstractRangeLuke Wilde
Range's member variables are stored in AbstractRange as per the spec, as they are also shared with StaticRange.
2022-02-26LibWeb: Implement the legacy Audio factory functionLuke Wilde
This creates an Audio element with preload="auto" and the given src attribute. Required by Cookie Clicker.
2022-02-26LibWeb: Add HTMLTableSectionElement.rows and HTMLTableRowElement.cellsAndreas Kling
1% progression on ACID3. :^)
2022-02-26LibWeb: Fix LibWeb build with ClangAndreas Kling
Clang doesn't like unused lambda captures.
2022-02-26Spreadsheet: Disable cut/copy if no cell is selectedFiliph Sandström
This resolves #12766 which occurred when the user tried to use either the cut or copy action before selecting a cell.
2022-02-26LibWeb: Check for valid names in Document.createElement() & friendsAndreas Kling
We now validate that the provided tag names are valid XML tag names, and otherwise throw an "invalid character" DOM exception. 2% progression on ACID3. :^)
2022-02-26LibWeb: Paint full bitmap font glyphs, even if there's overlapAndreas Kling
Since we now honor the CSS font-size values when deciding line box metrics, we sometimes find ourselves needing to paint text with a bitmap font into a box that isn't large enough for the glyphs. As it turns out, it looks a bit better if we just grow the paint rect to fit the glyphs (instead of painting chopped-off glyphs.) So let's just do that for now.
2022-02-26LibWeb: Very basic support for CSS vertical-align: <length>Andreas Kling
If vertical-align is a length value, we lift each line box fragment that far from the baseline of the line box. This is rather messy, and we'll have to improve factoring as we add support for more alignment types.
2022-02-26LibWeb: Make InlineLevelIterator not enter into inline-block boxesAndreas Kling
The purpose of "entering" a box is to collect box model metrics that apply to content fragments within the box. However, inline-blocks are special, in that their inner content does not directly participate in the inline formatting context outside it.
2022-02-26LibWeb: Fix InlineLevelIterator not exiting box model metric nodesAndreas Kling
We were neglecting to pop nodes from the box model stack. The metrics were already being zeroed out when used, but let's not grow the stack needlessly.
2022-02-26LibWeb: Add border box top/bottom metrics to line box fragmentsAndreas Kling
This will allow us to support more kinds of vertical alignment.
2022-02-26LibWeb: Remove unused LineBox::ends_with_forced_line_break()Andreas Kling
2022-02-26LibWeb: Make DOM inspector overlay rects a little nicerAndreas Kling
Instead of just the outline, fill them with some semi-transparent color. Also add tag name, ID, classes and coordinates to the little tooltip. Finally, use the border box instead of the context box for metrics, same as other browsers.
2022-02-26LibWeb: Make StyleValue absolutization non-destructiveAndreas Kling
Instead of awkwardly visiting and mutating lengths inside StyleValues, we now simply create a new StyleValue instead. This fixes an issue where inherited relative lengths could get absolutized using a parent as reference, and then not having the correct values when used in a child context.
2022-02-26LibWeb: Add vertical-align to ComputedValuesAndreas Kling
2022-02-26LibWeb: Use CSS font-size when computing text fragment content heightAndreas Kling
2022-02-25LibDesktop: Rename LaunchServerConnection=>ConnectionToLaunchServerItamar
This was done with CLion's automatic rename feature.
2022-02-25LibGUI: Rename ClipboardServerConnection=>ConnectionToClipboardServerItamar
This was done with CLion's automatic rename feature.
2022-02-25LibGUI: Rename NotificationServerConnectionItamar
Rename NotificationServerConnection=>ConnectionToNotificationServer. This was done with CLion's automatic rename feature.
2022-02-25SpiceAgent: Rename ClipboardServerConnectionItamar
Rename ClipboardServerConnection=>ConnectionToClipboardServer. This was done with CLion's automatic rename feature.
2022-02-25HackStudio: Rename HackStudio::ServerConnection=>ConnectionToServerItamar
Also renames ServerConnectionWrapper=>ConnectionToServerWrapper and ServerConnectionInstances=>ConnectionToServerInstances This was done with CLion's automatic rename feature.
2022-02-25Userland: Rename WindowServerConnection=>ConnectionToWindowServerItamar
This was done with CLion's automatic rename feature.
2022-02-25Userland: Rename WindowManagerServerConnectionItamar
Rename WindowManagerServerConnection=>ConnectionToWindowManagerServer. This was done with CLion's automatic rename feature.
2022-02-25Userland: Rename IPC::ServerConnection=>IPC::ConnectionToServerItamar
This was done with CLion's automatic rename feature.
2022-02-25Userland: Rename IPC ClientConnection => ConnectionFromClientItamar
This was done with CLion's automatic rename feature and with: find . -name ClientConnection.h | rename 's/ClientConnection\.h/ConnectionFromClient.h/' find . -name ClientConnection.cpp | rename 's/ClientConnection\.cpp/ConnectionFromClient.cpp/'
2022-02-25LibWeb: Parse <style> element text content when inserted into documentAndreas Kling
1% progression on ACID3. :^)
2022-02-25LibWeb: Use the prefix passed to Document.createElementNS()Andreas Kling
1% progression on ACID3. :^)
2022-02-25LibWeb: Support HTMLFormElement.elements and HTMLFormElement.lengthAndreas Kling
Note that we implement .elements as a HTMLCollection for now, instead of the correct HTMLFormControlsCollection subclass. This covers most use-cases already. 1% progression on ACID3. :^)
2022-02-25LibWeb: Improve HTMLElement.click()Andreas Kling
This API now follows the spec a bit more closely, with regards to the event being dispatched. There are still FIXME's but this is already an improvement. 2% progression on ACID3. :^)
2022-02-25LibWeb: Implement Range.commonAncestorContainerAndreas Kling
2022-02-25LibWeb: Expose Range.collapsed to JavaScriptAndreas Kling
2022-02-25LibWeb: Implement HTMLImageElement.width and HTMLImageElement.heightAndreas Kling
2022-02-25LibWeb: Notify parent when DOM::CharacterData content changesAndreas Kling
This makes <style> elements reparse the CSS when their text child is programmatically changed.
2022-02-25LibWeb: Implement UIEvent.initUIEvent()Andreas Kling
1% progression on ACID3. :^)
2022-02-25LibWeb: Make document.createEvent("UIEvent") actually create a UIEventAndreas Kling
There were two things preventing this from working right: - UIEvents::UIEvent::create() was actually just DOM::Event::create() - We didn't return the right JavaScript wrapper type for UIEvent
2022-02-25LibWeb: Make CSS :empty selector match empty text nodes as wellAndreas Kling
Previously we were only matching elements with *no* text children. With this patch, we now also allow any number of empty text children to be present as well. 1% progression on ACID3. :^)
2022-02-25LibWeb: Allow all ASCII whitespace chars between element class namesAndreas Kling
1% progression on ACID3. :^)
2022-02-25LibWeb: Fix off-by-one in calculation of available space for line boxesAndreas Kling
The rightmost edge of the available space ends exactly at the leftmost right-side floating box, not one pixel away from it.
2022-02-25LibWeb: Look for nearest available size when using bitmap fontsAndreas Kling
Use the new Gfx::Font::AllowInexactSizeMatch parameter when doing CSS font lookups. This fixes a long-standing issue where text with e.g text with "font-size:12px" would be larger than "font-size:13px" since there was an exact match for 12, but none for 13 (so we'd fall back to 10).
2022-02-25LibGfx: Add Font::AllowInexactSizeMatch parameter to font lookupAndreas Kling
This allows bitmap font lookup to return the best matching size instead of failing completely. The previous behavior (exact matches only) remains the default.
2022-02-25LibWeb: Fix rounding errors in calculation of final line box widthAndreas Kling
Instead of re-measuring the distance between the left and right edges of a line box, we now simply adjust the final width based on how much the rightmost fragment moved during the alignment process.
2022-02-25Assistant+CommandPalette: Use FrameShape::Window for main widgetsthankyouverycool
2022-02-25Taskbar: Update ClockWidget FrameShape and adjust dimensionsthankyouverycool
Uses the new Window FrameShape. Fixes some erroneously elided text and incorrect calendar window placement.
2022-02-25Applets: Update Audio applet FrameShape and adjust dimensionsthankyouverycool
Uses the new Window FrameShape. Fixes margins for erroneously elided CheckBoxes. Demystifies the numbers used to calculate the slider window rect.
2022-02-25LibGfx+LibGUI: Add FrameShape::Windowthankyouverycool
This shape is for use by the main widget of a frameless window that still wishes to have proper borders but no title. Raised Containers were used previously for this pattern but did not always represent perspective and shadow correctly depending on thread highlighting and the immediate background color. Containers are really meant to be used inside other widgets where the background color can be controlled.
2022-02-25LibGfx+LibGUI: Remove {Horizontal,Vertical}Line FrameShapesthankyouverycool
These were added 3 years ago but never used. Their intended purpose was probably superceded by the Separator widget.
2022-02-25LibWeb: Add a rule-cache for PseudoElementsSam Atkins
This works a little differently from the other caches - ALL rules containing a pseudo-element are in this bucket. This lets us only look at this bucket when finding styles for a pseudo-element, and ignore it if we're not.
2022-02-25LibWeb: Implement the ::marker pseudo-elementSam Atkins
This matches the marker boxes of list-items.