summaryrefslogtreecommitdiff
path: root/Libraries
AgeCommit message (Collapse)Author
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-14LibUnwind: Create UnwindBase.h to capture the EH ABI in codeAndrew Kaster
The header is essentially just a commented + annotated version of both the Itanium Exception Handling ABI Level I, and the 386-specific SystemV ABI for the same. Wrapping one's head around the spec is half the work :^)
2020-05-14LibWeb: Support the :root pseudo classLinus Groh
2020-05-14LibWeb: Make CSS pseudo classes case-insensitiveLinus Groh
2020-05-13LibGUI: Add AbstractTableView::move_selection(int steps)Andreas Kling
This allows embedders to step the selection up/down and also simplifies AbstractTableView by sharing code between Key_Up and Key_Down. :^)
2020-05-13LibGUI: Add GUI::MessageBox::show_error() convenience functionAndreas Kling
This is just a wrapper around show() that puts up a standard-looking error message.
2020-05-13LibWeb: Support "transparent" CSS color valueLinus Groh
2020-05-13LibWeb: Make parsing of most CSS values case-insensitiveLinus Groh
These are all valid: width: AUTO; height: 10PX; color: LiMeGrEeN;
2020-05-13LibWeb: Make CSS property parsing case-insensitiveLinus Groh
These are all valid: background-COLOR: red; Background-Color: red; BACKGROUND-COLOR: red; BaCkGrOuNd-CoLoR: red;
2020-05-13LibLine: Add a hook to run when an interrupt is handledAnotherTest
We do not want to clog up signal handlers by putting possibly complex logic inside them, so allow the editor to handle that.
2020-05-13LibJS: Trim whitespace from string before coercing to numberLinus Groh
2020-05-13LibJS: Use String::trim_whitespace() for String.prototype.trim*()Linus Groh
2020-05-13AK: Replace String::trim_spaces() with String::trim_whitespace()Linus Groh
As suggested by @awesomekling in a code review and (initially) ignored by me :^) Implementation is roughly based on LibJS's trim_string(), but with a fix for trimming all-whitespace strings.
2020-05-13LibJS: Make string to number coercion work for doublesLinus Groh
2020-05-13LibJS: Make the Function() constructor throw a SyntaxError, not returnLinus Groh
2020-05-13LibJS: Check AssignmentExpression LHS in parserLinus Groh
There are many cases which shouldn't even parse, like null = ... true = ... false = ... 123 = ... "foo" = ... However this *is* valid syntax: foo() = ... So we still have to keep the current code doing a runtime check if the LHS value is a resolvable reference. I believe this was declared valid syntax to *in theory* allow functions returning references - though in practice that isn't a thing. Fixes #2204.
2020-05-13LibJS: Handle empty values in operator<<()Linus Groh
Otherwise something like dbg() << Value(); chokes on ASSERT_NOT_REACHED() in Value::to_string()
2020-05-13LibGUI+WindowServer: Allow apps to use the "move" cursor :^)Andreas Kling
2020-05-12LibGUI: Add missing Vector.h include to Event.hAndreas Kling
2020-05-12LibGUI: Include keyboard modifier state with button on_click callsAndreas Kling
This will allow you us to implement special behavior when Ctrl+clicking a button.
2020-05-12LibHTTP+ProtocolServer: Use CaseInsensitiveStringTraits for headersAndreas Kling
These are supposed to be interpreted caselessly so let's just use the case insensitive traits throughout. This means we'll understand things like "Content-Length" even when they send "content-length" etc.
2020-05-12LibIPC+IPCCompiler: Templatize encoding/decoding of Optional<T>Andreas Kling
This was the last one! IPCCompiler no longer has any type-specific encoding/decoding logic! :^)
2020-05-12LibDesktop: Remove accidental unused structAndreas Kling
2020-05-12LibGfx+IPCCompiler: Add IPC encoders for Color and ShareableBitmapAndreas Kling
2020-05-12Terminal: When offering to open a URL, show name + icon for handler appAndreas Kling
Instead of just saying "Open URL" when you right click on a hyperlink in the terminal, we now say something like "Open in Browser". :^)
2020-05-12LaunchServer+LibDesktop: Add API to list handlers for a given URLAndreas Kling
You can now ask for a list of applications that can handle opening a given URL. This will be useful for creating context menus.
2020-05-12LibIPC+LibGfx: Templatize IPC encoding as well as decodingAndreas Kling
Now most classes dictate how they are serialized and deserialized when transmitted across LibIPC sockets. This also makes the IPC compiler a bit simpler. :^)
2020-05-12LibJS: Add missing keywords/tokensLinus Groh
Some of these are required for syntax we have not implemented yet, some are future reserved words in strict mode.
2020-05-12LibGUI: Actually check widgets in focus chain for keyboard shortcutsAndreas Kling
We were iterating the ancestor chain of the focused widget when looking for a matching keyboard shortcut, but we didn't actually look at the ancestors at each step. With this fix, we now correctly activate actions found in the ancestor chain of the focused widgets. :^)
2020-05-12LibGUI: Add KeyEvent::to_string()Andreas Kling
This makes it way easier to debug key events.
2020-05-12LibGUI: Use KeyCode stringification helper in Shortcut::to_string()Andreas Kling
2020-05-12LibGUI: Add a way to highlight the focused widget for debuggingAndreas Kling
You can now pass --gui-focus-debug to any GUI::Application and it will draw a cyan rectangle around the currently focused widget.
2020-05-12LibGUI: Allow scrolling through a ComboBox with the mouse wheelAndreas Kling
2020-05-12LibGUI: Add missing window() null check when widget's child is removedAndreas Kling
Before notifying our window that a child was removed, we should first check that we actually have a window! :^)
2020-05-12LibGUI: Remove ancient code for debugging widget underdrawAndreas Kling
2020-05-12LibHTTP: Support Transfer-Encoding: chunkedAnotherTest
We advertise ourselves to servers as supporting HTTP/1.1; we should put our money where our mouth is, and start supporting some of its features.
2020-05-12LibC: Always assign the offset pointer to endptr in strto{u,}ll()AnotherTest
This patch makes strto{u,}l{l,}() behave more to-spec about endptr. "If endptr is not NULL, strtoull stores the address of the first invalid character in *endptr."
2020-05-12LibLine: Fix suggestion spacing regressionAnotherTest
This patch fixes an issue where the line editor would put no spacing between suggestions (only when there are two suggestions). To reproduce, try on a build with no ports (starting with `pro`): ``` > pro<tab> profilepro ```
2020-05-12LibWeb: Fixed non-spec processing of margin and paddingEryk Skalinski
2020-05-11LibWeb: Add basic support for CSS percentagesAndreas Kling
Many properties can now have percentage values that get resolved in layout. The reference value (what is this a percentage *of*?) differs per property, so I've added a helper where you provide a reference value as an added parameter to the existing length_or_fallback().
2020-05-11LibJS: Parse comma operator into SequenceExpressionLinus Groh
2020-05-11LibC: Implement strtoull correctlyBen Wiederhake
This fixes the behavior for several inputs: - '-0' (shouldn't work but was accepted) - '+3' (shouldn't work but was accepted) - '13835058055282163712' (should work but returned 9223372036854775807 with errno=ERANGE)
2020-05-11LibC: Use more flexible digit parsing code, deduplicateBen Wiederhake
2020-05-11LibC: Implement new strtod, accurate up to 8 epsBen Wiederhake
This strtod implementation is not perfectly accurate, as evidenced by the test (accuracy_strtod.cpp), but it is sufficiently close (up to 8 eps). The main sources of inaccuracy are: - Highly repeated division/multiplication by 'base' (Each operation brings a multiplicative error of 1+2^-53.) - Loss during the initial conversion from long long to double (most prominently, 69294956446009195 should first be rounded to 69294956446009200 and then converted to 69294956446009200.0 and then divided by ten, yielding 6929495644600920.0. Currently, it converts first to double, can't represent 69294956446009195.0, and instead represents 69294956446009190, which eventually yields 6929495644600919.0. Close, but technically wrong.) I believe that these issues can be fixed by rewriting the part at and after double value = digits.number(); and that the loss before that is acceptable. Specifically, losing the exact exponent on overflow is obviously fine. The only other loss occurs when the significant digits overflow a 'long long'. But these store 64(-7ish) bits, and the mantissa of a double only stores 52 bits. With a bit more thinking, one could probably get the error down to 1 or 2 eps. (But not better.) Fixes #1979.
2020-05-11LibWeb: Add very basic handling of "font-family" font stacksLinus Groh
2020-05-11LibWeb: Ignore parsed pseudo-element selectors & empty complex selectorsLinus Groh
Currently we don't deal with them, so they shouldn't return a SimpleSelector - that'd be a false positive. Also don't produce a ComplexSelector if no SimpleSelector was parsed. This fixes a couple of rendering issues on awesomekling.github.io: link colours, footer size, content max-width (and possibly more!)
2020-05-11LibWeb: Don't paint borders with width <= 0pxLinus Groh
Previously we would only check if the border width property is empty and skip drawing in that case, and enforcing a minimum width of 1px otherwise - but "border: 0;" should not paint a border :^)
2020-05-11LibWeb: Set nav, main, article, aside, section to "display: block"Linus Groh
This makes the blog posts on awesomekling.github.io show up :^)
2020-05-11LibWeb: Draw the inspected node rect last in LayoutBox::render()Linus Groh
2020-05-11LibC: Add minimal <netinet/ip.h>Yonatan Goldschmidt
It's based on <netinet/in.h> and more definitions might be required here (e.g, IP header).