summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-20Chess: Gracefully handle ChessEngine disconnectionsTim Ledbetter
The GUI now tracks when it becomes disconnected from ChessEngine. If not currently waiting for a move from ChessEngine, it will automatically reconnect on the next engine move. If a disconnection occurs while waiting for a move, the player is asked whether they want to try again or not.
2023-04-20ChessEngine: Gracefully handle GUI disconnectionsTim Ledbetter
2023-04-20LibChess: Allow UCIEndpoint to handle unexpected disconnectionsTim Ledbetter
2023-04-20Chess: Send a quit command to ChessEngine when it is no longer in useTim Ledbetter
The chess GUI now instructs the ChessEngine to gracefully exit by sending a UCI quit command.
2023-04-20ChessEngine: Handle the UCI quit commandTim Ledbetter
2023-04-20LibChess: Add the UCI quit commandTim Ledbetter
2023-04-20LibWeb: Properly stop, rather than terminate, ongoing media fetchesTimothy Flynn
We are currently using the fetch controller's terminate() method to stop ongoing fetches when the HTMLMediaElement load algorithm is invoked. This method ultimately causes the fetch response to be a network error, which we propagate through the HTMLMediaElement's error event. This can cause websites, such as Steam, to avoid attempting to play any video. The spec does not actually specify what it means to "stop" or "cancel" a fetching process. But we should not use terminate() as that is a defined spec method, and the spec does tend to indicate when that method should be used (e.g. as it does in XMLHttpRequest).
2023-04-20LibWeb: Invent a method to stop an in-progress fetch without errorsTimothy Flynn
The HTMLMediaElement will need to stop fetching processes when its load algorithm is invoked while a fetch is ongoing. We don't have a way to really stop the process, due to the way it runs on nested deferred task invocations. So for now, this swaps the fetch callbacks (e.g. to process a fetch response) with empty callbacks.
2023-04-20LibWeb: Do not handle media ready state changes for empty network statesTimothy Flynn
This was missed in the header text of the ready state transition spec.
2023-04-20LibWeb: Implement the HTMLMediaElement delaying-the-load-event flagTimothy Flynn
2023-04-20LibWeb: Implement the HTMLMediaElement currentSrc attributeTimothy Flynn
2023-04-19LibWeb: Add HTML::TraversableNavigableAndreas Kling
This is the "traversable navigable" concept from the HTML spec. Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19LibWeb: Add HTML::NavigableAndreas Kling
This is the first step towards implementing the new "navigable" concept from the HTML spec. Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19LibWeb: Rename BrowsingContextContainer => NavigableContainerAndreas Kling
The "browsing context container" concept in the HTML spec has been replaced with "navigable container". Renaming this is the first step of many towards implementing the new world. Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19LibWeb: Simplify StyleValue API now that `auto` isn't a lengthSam Atkins
Now that LengthStyleValue never contains `auto`, IdentifierStyleValue is the only type that can hold an identifier. This lets us remove a couple of virtual methods from StyleValue. I've kept `has_auto()` and `to_identifier()` for convenience, but they are now simple non-virtual methods.
2023-04-19LibWeb: Verify we don't accidentally create an `auto` LengthStyleValueSam Atkins
2023-04-19LibWeb: Stop creating `auto` LengthStyleValue for resolved styleSam Atkins
2023-04-19LibWeb: Stop parsing `auto` as a LengthSam Atkins
Previously, whether trying to parse a `<length>` or `<dimension>`, we would accept `auto` and produce a `LengthStyleValue` from it. This would fool the `property_accepts_value()` into allowing `auto` where it does not belong, if the property did accept lengths. Of the few places in the parser that called `parse_dimension_value()` or `parse_length()`, none of them were expecting it to accept `auto`, so this fixes those too. :^)
2023-04-19LibWeb: Check flex longhands first when parsing flex shorthandSam Atkins
Currently, `property_accepts_value()` always returns `true` if the property is a shorthand. (This is a bug, and should actually be fixed properly at some point...) This means that all identifiers are caught here, including `auto`, which should be handled by the `flex-basis` branch instead. This works currently because `auto` is a LengthStyleValue, but that's about to change!
2023-04-19LibWeb: Properly handle `auto` in StyleProperties::length_percentage()Sam Atkins
This relied on `auto` being a LengthStyleValue, which soon will not be true. :^)
2023-04-19LibWeb: Properly handle `auto` when parsing `background-size`Sam Atkins
This code assumed that `auto` was always stored as a LengthStyleValue, which will not be true in the next commit. (And was not a safe assumption to make anyway.)
2023-04-19LibWeb: Fix broken handling of `flex: <flex-grow>` shorthandAndreas Kling
This is a tiny bit messy because: - The spec says we should expand this to `flex: <flex-grow> 1 0` - All major engines expand it to `flex: <flex-grow> 1 0%` Spec bug: https://github.com/w3c/csswg-drafts/issues/5742
2023-04-19Kernel: Add a FIXME about SD card synchronicityHendiadyoin1
This is a major bottleneck when booting the system, especially in non-smp mode.
2023-04-19Kernel: Add High Speed support to the SDHC driverHendiadyoin1
This should not affect boot times on qemu, as that does not use dynamic transfer delays in its adma code path. On real hardware this could potentially double the data throughput, decreasing load times.
2023-04-19Kernel: Add basic ADMA2 support to the SD card driverHendiadyoin1
It only takes ~10s to fully boot with smp enabled!
2023-04-19Kernel: Make SDHC InterruptStatus a bitfieldHendiadyoin1
A raw accessor was left as a means to use already existing codepaths.
2023-04-19Kernel: Add V4.10 fields to SDHC Command structHendiadyoin1
They are not used yet but might become helpful in the future
2023-04-19Kernel: Turn SD CapabilitiesRegister into a bit-fieldHendiadyoin1
2023-04-19WindowServer+LibGUI: Port WindowServer's Menu name to new StringKarol Kosek
2023-04-19LibGUI+Userland: Make Menu::*add_submmenu take name using new stringKarol Kosek
2023-04-19LibGUI+Userland: Make Window::*add_menu take name using new stringKarol Kosek
2023-04-19LibGUI: Port Menubar to new stringKarol Kosek
2023-04-19LibGUI+Browser: Set menu names using the new String classKarol Kosek
2023-04-19Userland: Construct Menus with name using the non-deprecated StringKarol Kosek
2023-04-19LibGUI: Store Menu names as new StringKarol Kosek
2023-04-19LibWeb: Implement the HTMLMediaElement crossOrigin attributeTimothy Flynn
2023-04-19LibWeb: Stub out the HTMLMediaElement buffered attributeTimothy Flynn
This is needed by https://store.steampowered.com. For now, we return an empty TimeRanges object.
2023-04-19LibWeb: Stub out the HTML TimeRanges IDL interfaceTimothy Flynn
This is used by media elements. Provide a stub for websites which depend on the interface existing.
2023-04-19Ports: Force patch regeneration after resolving conflictsTim Schumacher
Otherwise, the post-conflict state will be used as a reference point, and no changes will be detected.
2023-04-19Ports: Don't mangle patches when requiring manual editsTim Schumacher
While at it, pass the `--3way` option to give the user something to work with. Otherwise, Git will just prepare the commit metadata and nothing else. Note that this has a relatively low chance of working, since the recorded blob hashes aren't known to a freshly imported repository.
2023-04-19LibWeb: Layout <svg> nested inside <svg>Andreas Kling
This is far from perfect, but let's at least make an attempt at laying out <svg> when encountering it inside another <svg>. This makes https://awesomekling.substack.com actually load and render instead of asserting. :^)
2023-04-19LibWeb: Make SVG <g> elements generate a SVGGraphicsPaintableAndreas Kling
...instead of defaulting to a PaintableBox. This way it gets the same behavior as other SVG boxes during paint.
2023-04-19LibGfx: Prevent out-of-bounds accumulation in PathRasterizerJelle Raaijmakers
Negative accumulation on the right-hand side of the accumulation bitmap would wrap around to the left, causing a negative start for certain lines which resulted in horizontal streaks of lower alpha values. Prevent this by not writing out of bounds :^) Fixes #18394
2023-04-19LibGfx: Clean up PathRasterizerJelle Raaijmakers
No functional changes; mainly cleaning up the code style and simplifying the code so I could understand it better.
2023-04-19LibGfx: Increase tolerance for bezier curvesJelle Raaijmakers
An oval approximated by quadratic bezier curves ended up with 2048 line segments when rasterized to a bitmap of around 35 by 35 pixels, which seems a bit much. :^) By increasing the tolerance by an order of magnitude, that same oval is now split up into 512 line segments, which is still more than enough for a high quality render.
2023-04-18LibWeb: Implement HTMLMediaElement's autoplay attributeTimothy Flynn
2023-04-18Ladybird: Propagate autoplay settings to the WebContent processTimothy Flynn
2023-04-18Browser: Propagate autoplay settings to the WebContent processTimothy Flynn
2023-04-18BrowserSettings: Add a tab to control the Browser's autoplay settingsTimothy Flynn
This adds a checkbox to enable autoplay on all websites (disabled by default) and a website list to enable autoplay on individual websites (set to file:// URLs only by default).
2023-04-18LibWeb+LibWebView+WebContent: Add APIs to manage an autoplay allowlistTimothy Flynn
The spec defines a Permissions Policy to control some browser behaviors on a per-origin basis. Management of these permissions live in their own spec: https://w3c.github.io/webappsec-permissions-policy/ This implements a somewhat ad-hoc Permissions Policy for autoplaying media elements. We will need to implement the entire policy spec for this to be more general.