summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-11-01LibJS: Set default bytecode optimization level to OptimizeHendiadyoin1
2022-11-01LibJS: Add a sanity check to bytecodes argument_list_evaluationHendiadyoin1
2022-11-01LibJS: Add a note about inaccuracies to UnifySameBlocksHendiadyoin1
2022-11-01LibJS: Fix MergeBlocks emitting some blocks twiceHendiadyoin1
2022-11-01LibJS: Minor cleanups in MergeBlocksHendiadyoin1
2022-11-01LibJS: Don't memcpy NewBigInt instructionHendiadyoin1
These aren't trivially copyable, so we have to be a bit more careful
2022-11-01LibJS: Expose some information about the bytecode interpreters stateHendiadyoin1
This is quite helpful, when reporting internal errors.
2022-11-01LibWeb+Base: Use line names for positioning grid itemsmartinfalisse
When there are grid tracks with line names, use these to resolve line-names passed to positioned grid items.
2022-11-01LibWeb: Parse line names in grid track position propertiesmartinfalisse
Parse line names when passed to the grid-column/row-start/end CSS properties.
2022-11-01LibWeb: Parse line names in grid track size declarationsmartinfalisse
Parse line names in the grid-template-* CSS properties.
2022-11-01LibWeb: Use w3.org for specs and include new onesmartinfalisse
Include new w3.org specs for the grid and correct others so they use w3.org instead of drafts.
2022-11-01LibWeb: Refactor GridTrackPlacementmartinfalisse
Refactor this class for quality-of-life reasons as well as to better prepare for the addition of line names.
2022-11-01LibWeb: Refactor GridTrackSize classesmartinfalisse
Refactor various classes in the GridTrackSize file for the incoming named_tracks feature. Previously the ExplicitTrackSizing had mixed responsiblities with the newly-named GridRepeat class. This made it so it was not possible to have multiple repeats within a single 'GridTrackSizeList' definition. The MetaGridTrackSize class had both the responsibilities of being a container for minmax values as well as for simple GridSizes. By uniting the different possible values (repeat, minmax, default) into the ExplicitGridTrack class are able to be more expressive as to the different grid size modalities. The GridTrackSizeList will be useful as compared to a Vector<ExplicitGridTrack> since this way can keep track of the declared line names. These same line names are able to be declared within the values of a repeat function, hence the presence of a GridTrackSizeList inside the GridRepeat class.
2022-11-01LibWeb: Rename GridTrackSizedConstraintsmartinfalisse
In order to avoid naming conflicts with the many trial-and-error name changes going on in the GridTrackSize file, rename this to a unique name that is unlikely to be troublesome.
2022-11-01LibWeb: Fix bug in placing grid itemsmartinfalisse
Before were resetting the auto_placement_cursor_x to 0 at the end of the row but this was incorrect, especially since the auto_placement_cursor_y wasn't being incremented. This made it so that auto-placed items were occasionally placed before absolutely-placed ones even after the latter had already been placed.
2022-10-31Utilities+LibArchive: Don't follow symlinksPeter Elliott
2022-10-31LibCore: Add Core::System::readlinkPeter Elliott
2022-10-31LibArchive: Support writing paths up to 255 charactersPeter Elliott
The POSIX.1-1988 limit was 100, but with the ustar prefix field it's 255 (kinda).
2022-10-31LibArchive: Refactor null-termination logic in TarFileHeaderPeter Elliott
Before this change the behavior was, confusingly: - never null-terminate if set_field() is passed a StringView. - which would also not fail if the StringView is too large. - require null-termination if set_field() is passed a String. Not only are both of these wrong, having different behavior for those is very confusing, and creating a String copy to force a type checker to cause a string to be null-terminated is extremely weird. The new behavior is to always null-terminate when possible, never null-terminate if the last byte is used, and always verify that the string will fit.
2022-10-31ntpquery: Unveil paths after parsing argumentsTimothy Flynn
This allows running `ntpquery --help` in environments that do not have the LookupServer service running, e.g. when generating man pages. The same was done for netstat in commit 7fba413.
2022-10-31LibELF: Drop the "resolve and map" all-in-oneTim Schumacher
Both users of this function now have to do their resolving separately before anyways, so let's just drop the resolving part inside the function and require absolute paths to be fed in instead.
2022-10-31LibELF: Track libraries using their full pathTim Schumacher
2022-10-31LibELF: Handle absolute and relative paths for all resolve requestsTim Schumacher
2022-10-31LibELF: Sift down "library name only"-strings as far as possibleTim Schumacher
I might have gone a bit overboard with the `VERIFY`s, but this allows for very easy tracking of where we start to leak in non-absolute paths.
2022-10-31LibELF: Use a bit of `TRY` in `DynamicLinker`Tim Schumacher
`TRY` also works for `Result<>`. Who knew?
2022-10-31LibELF: Prepend `resolve_and` to one of the `map_library` overloadsTim Schumacher
Having two functions that are named the same and whose behavior regarding "should probably get a full path" and "does explicitly not require a full path" is quite confusing, especially since that difference is dictated through the other passed arguments.
2022-10-31LibELF: Drop the separate file name member from DynamicLoaderTim Schumacher
2022-10-31LibELF: Ensure that DynamicLoader only receives absolute pathsTim Schumacher
While at it, start renaming variables where we know that they store a path, so that we will get less confused in the future.
2022-10-31LibWeb: Use proper origins in Request::has_redirect_tainted_origin()Linus Groh
URL::url_origin() is a globally available function now, so let's use it!
2022-10-31HexEditor: Specify page skip size in multiples of the line heightpremek
2022-10-31nologin: Use proper format strings with out() and outln()Timothy Flynn
1. Don't use the sv literal as this bypasses CheckedFormatString. 2. Don't use the content of a file as the format string. If the file contains "{}", the program will crash.
2022-10-31LibWeb: Mark `WebIDL::ExceptionOr<T>` as `[[nodiscard]]`Linus Groh
2022-10-31LibWeb: Handle currently ignored `WebIDL::ExceptionOr<T>`sLinus Groh
2022-10-31VideoPlayer: Start fleshing out the user interfaceZaggy1024
This adds player widget with working play/pause controls, a seek bar which currently only displays the current playback position, and a button to cycle between the scaling modes. The player uses the new PlaybackManager class to handle demuxing, decoding, and frame presentation timing. Currently, the volume control is non-functional.
2022-10-31LibVideo: Add PlaybackManager to load and decode videosZaggy1024
This file will be the basis for abstracting away the out-of-thread or later out-of-process decoding from applications displaying videos. For now, the demuxer is hardcoded to be MatroskaParser, since that is all we support so far. The demuxer should later be selected based on the file header. The playback and decoding are currently all done on one thread using timers. The design of the code is such that adding threading should be trivial, at least based on an earlier version of the code. For now, though, it's better that this runs in one thread, as the multithreaded approach causes the Video Player to lock up permanently after a few frames are decoded.
2022-10-31LibVideo: Abstract media container format demuxingZaggy1024
This creates an abstract Demuxer class to allow multiple container container formats to be easily used by video playback systems.
2022-10-31LibVideo: Parse the duration of Matroska filesZaggy1024
2022-10-31LibVideo: Make VP9::Decoder a subclass of a new abstract VideoDecoderZaggy1024
This will allow other decoders to be used in place of VP9::Decoder when new video decoders are implemented, such as AV1.
2022-10-31LibVideo: Set CodingIndependentCodePoints in its member functionsZaggy1024
This moves the setting of code points in CICP structs to member functions completely so that the code having to set these code points can be much cleaner.
2022-10-31LibVideo: Add VideoFrame class for decoded video framesZaggy1024
The class is virtual and has one subclass, SubsampledYUVFrame, which is used by the VP9 decoder to return a single frame. The output_to_bitmap(Bitmap&) function can be used to set pixels on an existing bitmap of the correct size to the RGB values that should be displayed. The to_bitmap() function will allocate a new bitmap and fill it using output_to_bitmap. This new class also implements bilinear scaling of the subsampled U and V planes so that subsampled videos' colors will appear smoother.
2022-10-31Utilities: Add nologin applicationBeckett Normington
This adds the `nologin` application to the system. This application will look for `/etc/nologin`. If it is present, it will display the message in the file. Otherwise, it will display an error about the current account being unavailable.
2022-10-31LibVideo: Make DecoderError getters constZaggy1024
2022-10-31LibThreading: Set BackgroundAction's thread name correctlyZaggy1024
Previously, init() in BackgroundAction.cpp was calling Core::Object::set_name, which does not affect the displayed thread name which is displayed by the system monitor. This changes it to pass the name to the thread constructor.
2022-10-31Userland: Use Threading::MutexLocker to lock/unlock mutexesOleg Kosenkov
2022-10-30LibGUI: Update buttons' text/tooltips in Action::set_textZaggy1024
This allows Actions that change based on some state to update their associated buttons' text and tooltips to match their new text. The play/pause button in SoundPlayer (and VideoPlayer if it's merged) will now change tooltips when the playback changes state, rather than always displaying "Play (Space)".
2022-10-30LibWeb: Implement the fetch() method :^)Linus Groh
With so much infrastructure implemented, we can finally add the last piece of this puzzle - the fetch() method itself! This contains a few hundred lines of generated code as handling the RequestInfo and RequestInfo parameter types manually is not feasible, but we can't use the IDL definition as the Window object is handwritten code at the moment. It's neatly tucked away in Bindings/ and will be removed eventually.
2022-10-30LibWeb: Implement most of the 'Fetching' AOsLinus Groh
This implements the following operations from section 4 of the Fetch spec (https://fetch.spec.whatwg.org/#fetching): - Fetch - Main fetch - Fetch response handover - Scheme fetch - HTTP fetch - HTTP-redirect fetch - HTTP-network-or-cache fetch (without caching) It does *not* implement: - HTTP-network fetch - CORS-preflight fetch Instead, we let ResourceLoader handle the actual networking for now, which isn't ideal, but certainly enough to get enough functionality up and running for most websites to not complain.
2022-10-30LibWeb: Require error message for Response::network_error()Linus Groh
There will be a lot of different cases where we'll return an error response, and having a customized Promise rejection message seems quite useful. Note that this has to be distinct from the existing 'status message', which is required to be empty in those cases.
2022-10-30LibWeb: Partially implement 'relative high resolution time' AOsLinus Groh
2022-10-30LibWeb: Fix URL parsing in Response::location_url()Linus Groh
We need to use URLParser in order to provide a base URL. This makes it work for the common case of `Location: /some/path`.