summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2021-07-23LibWeb: Dont try to parse "data" urls as linksstelar7
2021-07-23LibWeb: Fix that empty event handlers return null instead of crashingdavidot
2021-07-23LibJS: Implement Temporal.PlainDateTime.prototype.getISOFields()Linus Groh
2021-07-23LibJS: Implement Temporal.PlainDateTime.prototype.toPlainDate()Linus Groh
2021-07-23LibJS: Fix return type of PlainDateTime::iso_{milli,micro,nano}second()Linus Groh
2021-07-23Hearts: Avoid redrawing the UI unnecessarilyGunnar Beutner
2021-07-22CrashDaemon: Remove BACKTRACE_DEBUG debugging codeAndreas Kling
This thing seems to work fine, no need to hang on to old debug code.
2021-07-22DynamicLoader: Don't truncate dynamic section address on x86_64Andreas Kling
2021-07-22Assistant: Only open one Assistant at oncePeter Elliott
I found myself accidentally opening two assistants at once with the Window+Space shortcut. Since only one assistant window is usable at the same time, I made assistant only spawn 1 instance at most.
2021-07-22LibCore: Add LockFile, a filesystem based mutexPeter Elliott
This API wraps flock(2) and also handles the file creation and deletion when the LockFile goes out of scope.
2021-07-22UserspaceEmulator: Move to using the new SoftFPUHendiadyoin1
2021-07-22UserspaceEmulator: Implement SoftFPU instructionsHendiadyoin1
This implements almost all instructions related to the FPU, including all MMX instructions as well. A lot of these were copied and adjusted from the SoftCPU implementation. The next big milestone would be QNan detection and ShadowValue handling.
2021-07-22UserspaceEmulator: Sketch out a SoftFPU interfaceHendiadyoin1
2021-07-22LibX86: Add missing MovD and MovQ instructionsHendiadyoin1
These are placeholders for now
2021-07-22LibX86: Use names closer to the spec for the ModrmHendiadyoin1
This gets rid of a lot of magic number shifts and ands.
2021-07-22LibWeb: Resolve CSS text-decoration from value listSam Atkins
This detects and resolves these in the text-decoration property, in any order: - text-decoration-color - text-decoration-line - text-decoration-style Only the solid underline renders, but all three sub-properties are assigned correctly.
2021-07-22LibWeb: Resolve background properties from ValueListStyleValueSam Atkins
As before, there are several sub-properties that we do not support, and we ignore anything after the first comma.
2021-07-22LibWeb: Implement ImageStyleValue parsingSam Atkins
Later we will want to make a distinction between URL and Image values, but this works for now.
2021-07-22LibWeb: Resolve CSS font property from value listSam Atkins
The font property now resolves into its various parts: - font-family - font-weight - font-size - font-style - line-height The font-variant and font-stretch parts are left unparsed since LibWeb doesn't know how to render those. Added `fonts.html` as a test for various forms of `font` declarations, based on the examples in the spec.
2021-07-22LibWeb: Resolve CSS list-style from value listSam Atkins
This resolves the three sub-properties, appearing in any order: - list-style-image - list-style-position - list-style-type Added `list-style-position` values to support this, though they are not yet used in rendering.
2021-07-22LibWeb: Resolve CSS flex/flex-flow from value listSam Atkins
Also moved the 'flex' code in StyleResolver to be next to the 'flex-flow' code, because that seemed more reasonable.
2021-07-22LibWeb: Implement CSS color parsing from TokensSam Atkins
This was broken when we switched away from using StringStyleValues. While I was at it, I have implemented hsl/a() and the percentage syntax for rgb/a(). As a bonus, added `colors.html` as a test page for the various CSS color syntaxes, since nothing was testing rgb() or rgba() before. Much of the parsing code in LibGFX/Color.h seems to be centered around CSS color values, but this is not used by the new Parser. (And can't be used, because it requires a String value and we have a list of Tokens of some kind instead.) Maybe that should be removed from there when the new CSS parser is operational.
2021-07-22LibGfx: Implement Color::from_hsl/hsla()Sam Atkins
This is required by CSS, and implemented based on the CSS standard's algorithm.
2021-07-22LibWeb: Handle ValueListStyleValues in StyleResolverSam Atkins
This implements a lot of cases, but not all of them. The following need more infrastructure first: - Flex - FlexFlow - Background - BackgroundImage - BackgroundRepeat - ListStyle and parts - Font Also, colors are not parsed correctly. This will be handled next.
2021-07-22LibWeb: Expose StyleValue parsing method in CSS ParserSam Atkins
Now that StyleResolver is going to deal with StyleComponentValueRules, it will need to be able to parse those into StyleValues, using `parse_css_value()`. Also added StyleValue::is_builtin_or_dynamic(), which returns true for values that are valid anywhere - things like `initial` and `inherit`, along with `var()`, `attr()` and `calc()` - which we want to test for easily.
2021-07-22LibWeb: Convert StyleResolver.{h,cpp} to east constSam Atkins
2021-07-22LibWeb: Generate a ValueListStyleValue when parsing CSS valuesSam Atkins
We skip whitespace tokens while doing this. As far as I can tell, whitespace is not useful once we get to this point, and it legally may or may not appear between any two tokens. By not including it in the ValueListStyleValue, we make the "if it has 3 parts"-type checks a lot more straightforward.
2021-07-22LibWeb: Add CSS ValueListStyleValueSam Atkins
As the new CSS parser tokenizes its input, we can no longer easily rely on a StringStyleValue for multi-value properties. (eg, border) ValueListStyleValue lets us wrap all of the ComponentValues that the Parser produced for one declaration, as a single StyleValue, to then be parsed into StyleValues by the StyleResolver. Originally, I wanted it to be a list of StyleValues, but several properties use syntax that makes use of non-StyleValue tokens, eg: ```css /* Syntax using a / */ font: 12px/14px sans-serif; /* Multiple values separated by commas */ background: url(catdog.png), url(another-image.jpg), blue; ``` Passing the ComponentValue tokens themselves means that all that information is carried over. The alternative might be to create a StyleValue subclass for each property and parse them fully inside the Parser. (eg, `FontStyleValue`) I decided against `ListStyleValue` as a name, to avoid confusion with list styles. It's not ideal, but names are hard.
2021-07-22LibAudio: Implement loaded_samples() in the FLAC LoaderKarol Kosek
This makes aplay show current playback position.
2021-07-22LibAudio: Read custom block sizes and sample rates as big endianKarol Kosek
This fixes stucking in a loop at the end of the file, as (a) custom block sizes are usually placed there, as the remaining size might not be simply calculated as a power of two, and (b) the number of bytes to read was incorrect (the program said the block size was 32525, where flac -a said it's actually 3200). Unfortunately, I couldn't trigger the bug for the sample rates, so it may be not true, but I'd doubt it, giving the fact that flac almost everywhere uses big endian numbers.
2021-07-22LibAudio: Don't read too much bytes in FLACKarol Kosek
This fixes crash when reading the end of the file. The logic is mostly borrowed from WavLoader.
2021-07-22LibGUI: Handle multiple lines of text in MessageBoxTimothy
The total height of text is calculated from the glyph height, the number of lines, and a padding modifier.
2021-07-22js: Implement pretty-printing of Temporal.PlainDateTime objectsLinus Groh
2021-07-22js: Implement pretty-printing of Temporal.PlainDate objectsLinus Groh
2021-07-22LibJS/Tests: Fix this value error test description in a PlainDate testLinus Groh
2021-07-22LibJS/Tests: Replace snake_case with pascalCase in two PlainDate testsLinus Groh
2021-07-22LibJS: Add missing step number in PlainDatePrototypeLinus Groh
2021-07-22LibJS: Implement Temporal.PlainDateTime.prototype.calendarLinus Groh
2021-07-22LibJS: Implement Temporal.PlainDateTime.prototype.valueOf()Linus Groh
2021-07-22LibJS: Implement Temporal.PlainDateTime.prototype[@@toStringTag]Linus Groh
2021-07-22LibJS: Start implementing Temporal.PlainDateTimeLinus Groh
This commit adds the PlainDateTime object itself, its constructor and prototype (currently empty), and the CreateTemporalDateTime abstract operation.
2021-07-22LibJS: Add missing spec links to System{Instant,UTCEpochNanoseconds}Linus Groh
2021-07-22LibJS: Remove pointless 'explicit' from a couple of constructorsLinus Groh
2021-07-22LibJS: Fix value of Temporal.PlainDate.lengthLinus Groh
Should be 3 (year, month, day, optional calendar-like), not 0.
2021-07-22WindowServer: Fix rendering overlays when there's no desktop windowTom
We were missing to account for areas that are not covered by any window. If any of these areas are covered by an overlay we need to render the wallpaper into transparency and also render the overlay over them. This fixes not rendering overlays properly when e.g. the FileManager (desktop) crashed as there is no longer any window underneath.
2021-07-22Userland: Use /proc/kernel_base to determine the kernel base addressGunnar Beutner
This removes all the hard-coded kernel base addresses from userspace tools. One downside for this is that e.g. Profiler no longer uses a different color for kernel symbols when run as a non-root user.
2021-07-22LaunchServer: Remove debug spam about incoming connectionsAndreas Kling
2021-07-22FileOperation: Use LexicalPath::join() for all path joiningSam Atkins
2021-07-22FileManager: Switch FileOperationProgressWidget::did_error() to SV&Sam Atkins
2021-07-22FileManager: Show progress dialog for file deletionsSam Atkins
Progress dialogs are nice! :^) Showing a proper file-deletion animation would be nice, but that is outside the scope of my abilities.