summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2023-03-20LibWeb: Let FormattingContext decide the automatic width of its rootAndreas Kling
Instead of special-casing FlexFormattingContext in the intrinsic sizing layout helpers, add FormattingContext::automatic_content_width() and let each context subclass decide what that means. No behavior change here, just moving this responsibility.
2023-03-20LibJS: Update spec numbers / text for the Change Array by Copy proposalTimothy Flynn
This proposal has been merged into the main ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/4a32716 Note this includes some editorial changes made when the proposal was merged into the main spec, but are not in the proposal spec.
2023-03-20LibWeb: Scale checkbox image instead of repeating on large checkboxesSrikavin Ramkumar
2023-03-20LibWeb: Add indeterminate checkbox styling to useragent stylesheetSrikavin Ramkumar
2023-03-20LibWeb: Implement selector matching for :indeterminate pseudo-classSrikavin Ramkumar
2023-03-20LibWeb: Implement indeterminate IDL attribute in HTMLInputElementSrikavin Ramkumar
2023-03-20LibWeb: Match selected option elements with checked pseudo-classSrikavin Ramkumar
2023-03-20tar: Add partial support for LZMA-compressed archivesTim Schumacher
2023-03-20Utilities: Add an `lzcat` utilityTim Schumacher
2023-03-20LibCompress: Add support for LZMA streamsTim Schumacher
2023-03-20GMLPlayground: Let WindowServer handle the title's modification symbolSam Atkins
2023-03-20GMLPlayground: Add list of recent files to the File menuSam Atkins
2023-03-20TextEditor: Remove confirmation when opening from recent files listSam Atkins
If the user has clicked to open a recent file, we don't need to ask them again if they want to open it.
2023-03-20grep: Remove a leftover debug lineTim Schumacher
2023-03-20LibCrypt: Start installing headers againTim Schumacher
This was accidentally broken in ac401970475cd3ceb2c284a6072d91ca5d9de23e, after which we started installing headers into a `LibCrypt` subdirectory instead. `serenity_install_headers("")` is really the only thing that we need from `serenity_libc`, so just replicate that manually.
2023-03-20Snake: Implement image-based skinsSam Atkins
Co-authored-by: HawDevelopment <hawdevelopment@gmail.com>
2023-03-20Snake: Move geometry types into Geometry.h and add Direction enumSam Atkins
2023-03-20Snake: Remember if game was paused when picking colorSam Atkins
If we were paused before, don't start the game after closing the dialog.
2023-03-19LibWeb: Add keep-alive in response headers if it present in requestAliaksandr Kalenik
This fix addresses issue where, if request headers contain "Connection: keep-alive", we keep socket open without letting client know that we support keep-alive connections. This can result in a large number of open and unused sockets.
2023-03-19LibWeb: Stub out a few form validation and selection methodsElisée Maurer
2023-03-19SoundPlayer: Keep track of the selected visualization in the configCaoimhe
2023-03-19SoundPlayer: Move `get_image_from_music_file` to the advanced viewCaoimhe
2023-03-19LibWeb: Rename `PaintableBox::clip_rect()`Aliaksandr Kalenik
2023-03-19LibWeb: Apply border-radius clip only if overflow hidden for both axisAliaksandr Kalenik
Before this change `apply_clip_overflow_rect` might crash trying to access `clip_rect` that does not have value because we currently support calculation of visible rectangle when `overflow: hidden` is applied for both axis.
2023-03-19LibWeb: Update stylesheet loading to use fetch infrastructureSrikavin Ramkumar
2023-03-19LibWeb: Implement 'create a potential-CORS request' algorithmSrikavin Ramkumar
2023-03-19LibAudio: Support FLAC files with unknown amount of sampleskleines Filmröllchen
This is a special case of the sample count field in the header which we treated as a format error before. Now we just take care to check stream EOF before reading chunks. This makes the final FLAC spec test pass, making us one of the most compliant loaders! :^)
2023-03-19LibAudio: Use specified bit depth directlykleines Filmröllchen
We report a rounded up PCM sample format to the outside, but use the exact bit depth as specified in header and frames. This makes the three FLAC spec tests with a a bit depth of 20 pass.
2023-03-19WebDriver: Fix handling of disconnected WebContent processAliaksandr Kalenik
If WebContent process got disconnected it is only necessary to remove associated window instead of terminating the entire session.
2023-03-19WebDriver: Close all WebContent connections while destroying a sessionAliaksandr Kalenik
While closing a session, it is necessary to close all windows that may have been opened during that session.
2023-03-19WebDriver: Inline `Sesssion::stop()` in session destructorAliaksandr Kalenik
Previously it was possible to have following sequence of calls while destroying a session: 1. `WebContentConnection::die()` calls `Client::close_session()` 2. `Client::close_session()` removes a session from active sessions map which causes session destructor call. 3. Session destructor calls `Client::close_session()` to remove a session from active sessions. With `stop()` method inlined into destructor `close_session()` need to be called just once while destroying a session.
2023-03-19LibGUI: Update progress of thumbnail generations on failureLucas CHOLLET
Not doing it result in FileManager's progress bar being left as incomplete even if all jobs were finish.
2023-03-19LibThreading: Execute `on_error` on the original `EventLoop`Lucas CHOLLET
As the user might want to have interactions with LibGUI while handling errors, this code should be executed in the original `EventLoop`. Similarly to what is done with the error-free path.
2023-03-19LibGfx/JPEG: Make JPEGImageDecoderPlugin's constructor take a StreamLucas CHOLLET
This allows us to get rid of the raw pointer and size in the JPEG context struct.
2023-03-19LibGfx: Correct the type of Lookup.subtable_offsetsMatt Purnell
According to the spec (and the variable name), it should be an array of offsets, not u16s. Noticed while watching Andreas' most recent video.
2023-03-19LibAudio: Use new generic seek table for MP3kleines Filmröllchen
MP3 had the exact same data structure, except less readable and less efficient.
2023-03-19LibAudio: Improve FLAC seekingkleines Filmröllchen
"Improve" is an understatement, since this commit makes all FLAC files seek without errors, mostly with high accuracy, and partially even fast: - A new generic seek table type is introduced, which keeps an always-sorted list of seek points, which allows it to use binary search and fast insertion. - Automatic seek points are inserted according to two heuristics (distance between seek points and minimum seek precision), which not only builds a seek table for already-played sections of the file, but improves seek precision even for files with an existing seek table. - Manual seeking by skipping frames works properly now and is still used as a last resort.
2023-03-19FileManager: Extract .zip files to a temporary folder when openedCaoimhe
Prior to this commit, when you double-click a .zip file to open it, it gets opened in Text-Editor as there is no other file association. Now, when FileManager is invoked with a .zip file as the first argument, a temporary directory will be created and the .zip will be extracted into it. Once the FileManager window is closed, Core::TempFile will delete the temporary directory. This adds something like what we see in other operating systems' file explorers, except for the fact that most other operating systems will treat the .zip file as its own independent read-only filesystem. It would be nice to do that in the future, but I feel like this is sufficient for now.
2023-03-19LibCore: Improve the `TempFile` wrapperCaoimhe
- We were using primitive versions of mkstemp and mkdtemp, they have been converted to use LibCore::System. - If an error occurred whilst creating a temporary directory or file, it was thrown and the program would crash. Now, we use ErrorOr<T> so that the caller can handle the error accordingly - The `Type` enumeration has been made private, and `create_temp` has been "split" (although rewritten) into create_temp_directory and create_temp_file. The old pattern of TempFile::create_temp(Type::File) felt a bit awkward, and TempFile::create_temp_file() feels a bit nicer to use! :^) Once the Core::Filesystem PR is merged (#17789), it would be better for this helper to be merged in with that. But until then, this is a nice improvement.
2023-03-19LibCore: Add syscall wrapper for `mkdtemp()`Caoimhe
2023-03-18LibWeb: Add temporary hack for `line-height: calc(...)`Andreas Kling
At the moment, we can't resolve CSS calc() values without having a LayoutNode. The new StyleProperties::line_height() overload was trying to do exactly that, which led to an assertion. This patch makes `line-height: calc(...)` behave the same as `line-height: normal` for now and adds a FIXME.
2023-03-18LibWeb: Don't deref HTMLInputElement parent if its nullMathis Wiehl
Don't crash in case the elements parent is null.
2023-03-18LibWeb: Honor `pointer-events: none` when hitting a PaintableBoxAndreas Kling
If the PaintableBox had children, but we didn't hit any of them, we default to saying that you hit the PaintableBox itself. However, if said PaintableBox has `pointer-events: none`, we should say nothing was hit, so that the hit testing can continue. This fixes an issue where Discord server icons were not clickable.
2023-03-18LibWeb: Traverse shadow boundaries when looking for focus candidatesAndreas Kling
This makes focusing input fields by clicking on them work. Fixes #17801
2023-03-18LibWeb+Browser+Ladybird: Add menu action to dump paint treeAndreas Kling
2023-03-18LibWeb: Specify height as 1lh to fix the size of empty text boxesSimon Wanner
Previously, empty text boxes would fall back to the min-height: 16px set on the <input> element. As soon as there is any content they would usually gain height because the line height of that text is more than 16px (depending on the font/font-size used). Now they use height: 1lh for the inner div (which contains the actual text), which matches the exact height of 1 line of content.
2023-03-18LibWeb+LibWebView: Show shadow roots in the DOM inspectorSimon Wanner
2023-03-18LibWeb: Add support for the lh and rlh length unitsSimon Wanner
Resolving these units is somewhat tricky because of their interaction with both font-size and line-height, but this implementation seems to work as tested in http://wpt.live/css/css-values/lh-unit-001.html and http://wpt.live/css/css-values/lh-unit-002.html
2023-03-18LibWeb: Port MutationRecord types to FlyStringTimothy Flynn
Co-authored-by: Luke Wilde <lukew@serenityos.org>
2023-03-18LibWeb: Initialize static web strings during main-thread VM creationTimothy Flynn
These are currently initialized in a [[gnu::constructor]], which has a weird initialization order. These constructors are invoked before main() and, incidentally, before any user-defined default constructors of the static strings they are initializing. This will become an issue when these strings are ported to FlyString, which has a user-defined default constructor. In that scenario, when the FlyString constructor is executed after the [[gnu::constructor]], the strings will be "reset" to the empty string. Instead of relying on a non-standard compiler extension here, let's just initialize these strings explicitly during main-thread VM creation, as this now happens in WebContent's main().