summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-13WindowServer: Add "[user]" to titlebar when uid differs from login usermeiskam
2022-11-13LibThreading: Add thread priority controls to Threadkleines Filmröllchen
This exposes the now properly working pthread APIs on the higher level.
2022-11-13Toolchain: Add libxcrypt to serenity.nixVictor Hugo Aguiar Pacce
Should deal with build errors related to a missing crypt.h file
2022-11-13LibAudio: Revert to using buffered file readingkleines Filmröllchen
This was slowing down FLACLoader below realtime. The real solution is still to use mapped files but that has to wait until a larger refactor.
2022-11-13Piano: Guard against all allocations at top level of the audio pipelinekleines Filmröllchen
Therefore, we don't rely on LibDSP Processors to use allocation guards themselves. It also demonstrates that nested allocation guards work correctly :^)
2022-11-13Piano: Alphabetize sourceskleines Filmröllchen
:greenlinus:
2022-11-13LibWeb+WebContentr+WebDriver: Move driver response wrapping to LibWebTimothy Flynn
Success responses are meant to be wrapped in a JSON object with a single "value" key. Instead of doing this in both WebContent and WebDriver, do it once in LibWeb.
2022-11-13AK: Support taking JSON values out of a JSON arrayTimothy Flynn
2022-11-13WebDriver: Port the WebDriver client to be a Web::WebDriver::ClientTimothy Flynn
2022-11-13LibWeb: Re-implement WebDriver endpoint handling within Web::WebDriverTimothy Flynn
This moves communication and route matching for WebDriver endpoints into LibWeb. This is to reduce the amount of duplication required to create a WebDriver implementation for Ladybird. In doing so, this introduces some cleanup of WebDriver handling. Routes are now a compile-time array, and matching a route is nearly free of allocations (we still allocate a Vector for parsed parameters). This implementation also makes heavier use of TRY semantics to propagate errors into one handler.
2022-11-13WebDriver: Implement Close Window closer to the specTimothy Flynn
We are expected to return the list of open handles after closing the current handle. Also just return a WebDriver::Response instead of a wrapped Error variant.
2022-11-12LibVideo: Rename parse_tree_new to parse_tree in VP9/TreeParser.cppZaggy1024
It is now the only function used to parse the binary trees in the VP9 decoder.
2022-11-12LibVideo: Create TokensContext struct for token parsing parametersZaggy1024
With the addition of this struct, both the bool to determine if coefs should be parsed and the token parse itself can take specific parameters. This is the last step in parameterizing all the tree parsing, so the old functions in TreeParser are now unused. This patch is very satisfying :^) There's still more work to be done to clean up how the parameters are passed from Parser, but that's work for another day.
2022-11-12LibVideo: Parameterize all tree parsing for motion vectors in VP9Zaggy1024
2022-11-12LibVideo: Parameterize parsing single reference frame selection in VP9Zaggy1024
2022-11-12LibVideo: Parameterize parsing compound references in the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize compound mode parsing in the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize parsing if a block is inter predicted in VP9Zaggy1024
2022-11-12LibVideo: Parameterize TXSize parsing for the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize coefficient skip parsing for VP9Zaggy1024
2022-11-12LibVideo: Parameterize segment ID parsing for the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize interpolation filter parsing for the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize inter mode parsing in the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize UV mode parsing in the VP9 decoderZaggy1024
2022-11-12LibVideo: Parameterize intra prediction mode parsing for VP9Zaggy1024
2022-11-12LibVideo: Parameterize parsing the default UV prediction mode for VP9Zaggy1024
2022-11-12LibVideo: Parameterize parsing of the default VP9 intra mode treeZaggy1024
2022-11-12LibVideo: Put motion vector or reference frame pairs in a structZaggy1024
Since these two types are often passed around as a pair, it's easier to handle them with a simple pair struct, at least for now. Once things are fully being passed around as parameters wherever possible, it may be good to change this type for something more generalized.
2022-11-12LibVideo: Move parsing of Partition to its own TreeParser functionZaggy1024
This adds a tree-parsing function that can be called statically from specific trees' implementations in TreeParser, of which Partition is the first. This way, all calls to tree parses will take the context they need to be able to select a tree and probabilities, which will allow removal of the state dependence in TreeParser on fields from itself and Parser.
2022-11-12LibVideo: Add const getters to VP9/ProbabilityTables.hZaggy1024
2022-11-12LibVideo: Use the BlockSubsize enum where appropriate in the VP9 parserZaggy1024
2022-11-12LibVideo: Combine VP9's Intra- and InterMode enums into PredictionModeZaggy1024
The two different mode sets are stored in single fields, and the underlying values didn't overlap, so there was no reason to keep them separate. The enum is now an enum class as well, to enforce that almost all uses of the enum are named. The only case where underlying values are used is in lookup tables, but it may be worth abstracting that as well to make array bounds more clear.
2022-11-12LibVideo: Use Gfx::Size for VP9 frame sizesZaggy1024
Frame sizes will now be represented by Gfx::Size instead of storing width and height separately.
2022-11-12LibVideo: Change all Span<u8 const> to ReadonlyBytesZaggy1024
2022-11-12LibVideo: Allow the VP9 decoder to queue multiple framesZaggy1024
Frames will now be queued for retrieval by the user of the decoder. When the end of the current queue is reached, a DecoderError of category NeedsMoreInput will be emitted, allowing the caller to react by displaying what was previously retrieved for sending more samples.
2022-11-12LibVideo: Rename VP9's ReferenceFrame enum to ReferenceFrameTypeZaggy1024
2022-11-12LibAudio: Restore exact audio enqueuer thread mutex behaviorkleines Filmröllchen
This was changed with a recent move to MutexLocker, but the exact previous behavior is safer as it holds the lock for the minimum amount of time in both locations. We don't want to introduce these kinds of subtle bugs.
2022-11-12LibAudio: Initialize enqueuer event loop to null pointerkleines Filmröllchen
If this is not done, the event loop pointer will be initialized to exploded MALLOC_SCRUB_BYTEs and the null pointer check at destruction time will fail, causing a crash any time an audio client without a started enqueuer thread exits. With this change, we correctly skip quitting the event loop both when it was never started (if the enqueuer thread never ran) as well as if it already exited (if the enqueuer thread exited fast enough) without additional logic for the two very different cases.
2022-11-12AudioServer: Stop re-creating the device stream bufferAlex Chronopoulos
The buffer provided to `OutputMemoryStream` was made a private class member. This is because there is no reason to re-create it in every iteration. Also, the logic becomes more symmetric with `m_zero_filled_buffer` which is already a class member.
2022-11-12AudioServer: Stop glitching when toggling muteAlex Chronopoulos
Initialize the `AudioServer::Mixer::m_zero_filled_buffer` to zero. The garbage memory inside that buffer was causing a glitch sound when the user was toggling the mute checkbox or was moving the volume slider on and off zero. Glitching was more obvious if the toggling was happening without any sound being played in parallel. In addition to that, the `m_zero_filled_buffer` turned to `const` since there is no intention to modify its content.
2022-11-12Kernel/USB: Use proper verbs for Pipe transfer methodsb14ckcat
2022-11-12Kernel/USB: Add support for async & interrupt transfersb14ckcat
Add support for async transfers by using a separate kernel task to poll a list of active async transfers on a set time interval, and invoke their user-provided callback function when they are complete. Also add support for the interrupt class of transfers, building off of this async functionality.
2022-11-12WebDriver: Implement `POST /session/{id}/window/fullscreen` endpointTobias Christiansen
2022-11-12Toolchain: Fix missing makeinfo on macOS VenturaSteffen Rusitschka
macOS ventura no longer comes with makeinfo. binutils has already been fixed - see https://github.com/SerenityOS/serenity/pull/15932 This patch does the same for GDB.
2022-11-11WebContent: Pass the script timeout into the WebDriver script executorTimothy Flynn
This was dropped in 0b9803d and 31469ee before the timeouts object was avaiable in WebContent.
2022-11-11WebContent+WebDriver: Move Get/Set Timeouts to WebContentTimothy Flynn
2022-11-11LibWeb+WebDriver: Move the timeouts configuration object to LibWebTimothy Flynn
2022-11-11Browser+WebDriver: Remove the connection between Browser and WebDriverTimothy Flynn
WebDriver now only has an IPC connection to WebContent. WebDriver still launches the browser, but now when the session ends, we simply send a SIGTERM signal to the browser.
2022-11-11Browser+WebDriver: Add missing header includesTimothy Flynn
These are currently being included transitively, and will cause an error when those intermediate includes are removed.
2022-11-11Browser+WebContent+WebDriver: Move Get Title to WebContentTimothy Flynn