summaryrefslogtreecommitdiff
path: root/Userland/Libraries
AgeCommit message (Collapse)Author
2023-04-09LibWeb: Implement WritableStreamDefaultWriter.releaseLock()Matthew Olsson
2023-04-09LibWeb: Implement WritableStreamDefaultWriter.close()Matthew Olsson
2023-04-09LibWeb: Implement WritableStreamDefaultWriter.abort()Matthew Olsson
2023-04-09LibWeb: Implement WritableStream.abort()Matthew Olsson
2023-04-09LibWeb: Implement WritableStream.getWriter()Matthew Olsson
2023-04-09LibWeb: Remove duplicate declaration in Streams/AbstractOperations.hMatthew Olsson
2023-04-09LibWeb/Fetch: Use a basic filtered response for redirect navigationsAliaksandr Kalenik
Match following change in the spec: https://github.com/whatwg/fetch/commit/8f109835dcff90d19caed4b551a0da32d9d0f57e
2023-04-09LibWeb: Add initial implementation of CRC2D.clip()MacDue
This allows clipping your drawing by any path you like! To do this all painting has been wrapped around a new draw_clipped() helper method, which handles the clipping before/after painting. Note: This clipping is currently missing support for intersecting clip paths.
2023-04-09LibWeb: Add simple canvas path clipperMacDue
This adds CanvasPathClipper and ScopedCanvasPathClip. These allow clipping the canvas by some arbitrary path. This initial implementation is fairly naive, with a good few allocations, though this can probably be improved in future.
2023-04-09LibGfx: Floor draw origin in fill path implementationMacDue
This is done to be consistent with enclosing_int_rect() which is used elsewhere to work out offsets in PaintStyles. Without this, you can get an off-by-one in painting.
2023-04-09LibGfx: Add Point::to_floored<T>()MacDue
2023-04-09LibGfx: Fix crash due to vector resize in close_all_subpaths()MacDue
Since close_all_subpaths() appends while iterating, the vector can end up being resized and the iterator invalidated. Previously, this led to a crash/UAF in some cases.
2023-04-09LibGfx: Add BitmapPaintStyleMacDue
This is a simple paint style for filling a path with a bitmap.
2023-04-09LibWeb: Implement WritableStream.close()Matthew Olsson
2023-04-09LibTest: Add a `TRY_OR_FAIL` macroTim Schumacher
This macro has the usual `TRY` semantics, but instead of returning the error, it will let the test fail with the formatted error as the fail message.
2023-04-09LibWeb/HTML: Use correct spec link for multipart/form-data encodingLinus Groh
2023-04-09LibWeb: Port fire_webgl_context_event() to new FlyStringKenneth Myhra
2023-04-09LibWeb: Add WebGL::EventNamesKenneth Myhra
2023-04-09LibWeb: Port fire_keyboard_event() to new FlyStringKenneth Myhra
2023-04-09LibWeb: Port fire_a_synthetic_pointer_event() to new FlySringKenneth Myhra
2023-04-09LibWeb: Port fire_a_page_transition_event() to new FlyStringKenneth Myhra
2023-04-09LibWeb: Port fire_progress_event() + request_error_steps() to new StringKenneth Myhra
This ports XHR's fire_progress_event() and request_error_steps() to new FlyString. Signature of fire_progress_event() parameter event_name was changed from 'String const&' to 'FlyString const&'.
2023-04-09LibWeb: Port DOMEventListener to new FlyStringKenneth Myhra
2023-04-09LibWeb: Port EventTarget to new {Fly}StringKenneth Myhra
2023-04-09LibWeb: Add the WritableStreamDefaultControllerMatthew Olsson
2023-04-09LibGfx: Limit ICC-size-is-multiple-of-4 check to v4 filesNico Weber
The v2 spec doesn't require it, and it's not true in practice (e.g. Compact-ICC-Profiles/profiles/sRGB-v2-nano.icc has size 410).
2023-04-09LibGfx: Remove some of the noisier logging from webp lossless decoderNico Weber
Prefix code decoding seems to work fairly well and produces a ton of log output with `#define WEBP_DEBUG 1`, so remove the log lines. (If needed it's always possible to just locally revert this commit.) No behavior change, since WEBP_DEBUG isn't usually defined.
2023-04-09DynamicLoader: Remove the unused load_regions vectorIdan Horowitz
2023-04-08LibCompress: Mark some XZ-related variables and functions as constTim Schumacher
2023-04-08LibCompress: Move loading XZ blocks into its own functionTim Schumacher
2023-04-08LibCompress: Move finishing the current XZ stream into its own functionTim Schumacher
2023-04-08LibCompress: Move finishing the current XZ block into its own functionTim Schumacher
2023-04-08LibCompress: Move loading XZ stream headers into its own functionTim Schumacher
2023-04-09LibGfx: Correctly decode webp lossless with small palette and odd widthNico Weber
WebP lossless files that use a color indexing transform with <= 16 colors use pixel bundling to pack 2, 4, or 8 pixels into a single pixel. If the image's width doesn't happen to be an exact multiple of the bundling factor, we need to: 1. Use ceil_div() instead of just dividing the width by the bundling factor 2. Remember the original width and use it instead of computing reduced width times bundling factor This does these changes, and adds a simple test for it -- it at least checks that the decoded images have the right size. (I created these images myself in Photoshop, and used the same technique as for Tests/LibGfx/test-inputs/catdog-alert-*.webp to create images with a certain number of colors.)
2023-04-08LibWeb: Begin painting video controls on HTMLVideoElement layout nodesTimothy Flynn
If the video element has a 'controls' attribute, we now paint some basic video controls over the video element. If no frame has been decoded yet, we paint a play button on the center of the element. If a frame has been decoded, we paint that frame and paint a control bar on the bottom of the frame. This control bar currently only contains a play/pause button, depending on the video's playback state. We will only paint the control bar if the video is paused or hovered.
2023-04-08LibWeb: Set the media ready state to HAVE_ENOUGH_DATA after fetchingTimothy Flynn
Because we currently both fetch and process the media data in one chunk, we have enough data for playback immediately.
2023-04-08LibWeb: Implement HTMLMediaElement.playTimothy Flynn
This also includes the HTMLMediaElement's list of pending play promises, which is coupled pretty tightly with HTMLMediaElement.play.
2023-04-08LibWeb: Implement HTMLMediaElement.pauseTimothy Flynn
2023-04-08LibWeb: Implement the HTMLMediaElement paused attributeTimothy Flynn
Note that the default value of the attribute is true. We were previously autoplaying videos as soon as they loaded - this will prevent that from happening until the paused attribute is set to false.
2023-04-08LibWeb: Implement HTMLMediaElement.loadTimothy Flynn
2023-04-08LibWeb: Log correct error object when failing to decode a video sampleTimothy Flynn
2023-04-08LibWeb: Add missing include to WebIDL::PromiseTimothy Flynn
WebIDL::Promise is aliased to a JS::PromiseCapability. This missing include would cause a compile error in an upcoming commit.
2023-04-08LibGfx: Implement color index pixel bundling in webp decoderNico Weber
See the lengthy comment added in this commit for details. With this, the webp lossless decoder is feature complete :^) (...except for bug fixes and performance improvements, as always.)
2023-04-08LibGfx: Enable webp lossless Transform to return new bitmapNico Weber
...in addition to modifying in-place. This is needed for bitpacking support for the color indexing transform (and it could also be used to make the color indexing transform return an indexed bitmap, which is something we could do if that's the last transform that's applied). No behavior change.
2023-04-08LibGfx: Add some more dbgln_if()s to webp decoderNico Weber
2023-04-08LibGfx: Give PrefixCodeGroup a deleted copy ctorNico Weber
This makes the accidental copy fixed in 2125ccdc19 a compile error. No behavior change.
2023-04-08LibGfx: Make webp lossless decoder 6 times as fastNico Weber
Reduces the time to run Build/lagom/image ~/src/libwebp/webp_js/test_webp_wasm.webp -o tmp.png from 0.5s to 0.25s. Before, 60% of the time was spent decoding webp and 40% writing png. Now, 16% of the time was spent decoding webp and 84% writing png. That means png writing takes 0.2s, and webp decoding time went from 0.3s to 0.05s. A template expression without explicit return type deduces its return type as if for a function whose return type is declared auto. That does deduce return-by-value, while `decltype(auto)` would deduce return-by-reference. Explictly saying `decltype(auto)` would work too, but writing out the type is maybe easier to understand. No behavior change other than being much faster.
2023-04-08LibGfx: Second attempt to handle max_symbol correctly in webp decoderNico Weber
The previous attempt was in commit e5e9d3b877c, where I thought max_symbol describes how many code lengths should be read. But it looks like it instead describes how many code length input symbols should be read. (The two aren't the same since one code length input symbol can produce several code lengths.) I still agree with the commit description of e5e9d3b877c that the spec isn't very clear on this :) This time I've found a file that sets max_symbol and with this change here, that file decodes correctly. (It's Qpalette.webp, which I'm about to add as a test case.)
2023-04-08LibGfx: Implement most of COLOR_INDEXING_TRANSFORM for webp decoderNico Weber
Doesn't yet implement pixel packing for when the palette has fewer than 16 colors.
2023-04-08LibGfx: Extract free add_argb32() function in webp decoderNico Weber