summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-15LibWeb: Support generating IDL namespacesTimothy Flynn
These are similar to prototypes and constructors in that they will now be lazily instantiated when they are first requested.
2023-03-15LibIDL: Begin parsing IDL namespacesTimothy Flynn
For example, the CSS namespace is defined via IDL, but we currently have a manual implementation.
2023-03-15LibSyntax+Libraries: Replace TextStyle with Gfx::TextAttributesSam Atkins
Rather than creating a TextStyle struct, and then copying its fields over to a TextAttributes, let's just create a TextAttributes to start with. This also simplifies the syntax highlighting code by letting us define underlines along with the other text styling.
2023-03-15LibGfx+Userland: Make TextAttributes::underline_style optionalSam Atkins
Rather than having a style AND a field saying whether to use the style, just make the style Optional.
2023-03-15LibGfx: Make a comment in BMPWriter more preciseNico Weber
2023-03-15LibGfx: Let decode_bmp_v5_dib() skip reserved fieldNico Weber
This has no effect in practice: decode_bmp_v5_dib() is the last thing called with the streamer object (...the streamer is passed to set_dib_bitmasks(), but that doesn't read anything off it except for DIBType::Info bitmaps, which v5 bitmaps aren't). But dib_size is 16 larger for v5 than for v4, so we should read 16 bytes. This is also useful for a hypothetical person who might look at the reading code to figure out how the writing code should look like.
2023-03-15LibGfx: Make BMPWriter code a tiny bit shorterNico Weber
2023-03-15image: Preserve ICC profiles in BMP outputNico Weber
2023-03-15LibGfx: Let BMPWriter optionally embed an ICC profileNico Weber
2023-03-15LibGfx: Allow BMPWriter to write v5 bmps and make that the defaultNico Weber
2023-03-15LibGfx: VERIFY correct type length in PNGChunk ctorNico Weber
2023-03-15LibGfx: Make PNGChunk::m_type a String instead of a DeprecatedStringNico Weber
It's always 4 bytes, so the data fits in a String's inline buffer. (Else I would've used a StringView.)
2023-03-15LibGfx: Use * a b s t r a c t i o n * in PNGChunk::store_type()Nico Weber
2023-03-15LibGfx: Remove reckless PNGChunk::add(T) methodNico Weber
This method added function using host byte order, which is never what we want. In practice, it was fine because it was only called from add_u8() (which is just 1 byte large) and add_as_big_endian() (since that did endian swapping before calling the method). But the method doesn't really help any and is dangerous, so remove it. No behavior change.
2023-03-15LibGfx: Remove unused PNGChunk::add_as_little_endian() methodNico Weber
PNG uses big-endian data internally.
2023-03-15image: Make the ppm writing code a tiny bit shorterNico Weber
2023-03-15image: Preserve ICC profiles in PNG outputNico Weber
This probably does strange things for CMYK jpegs, since JPEGLoader converts those from CMYK to RGB but the ICC profile is still an CMYK profile. The Right Fix for that is probably for JPEGLoader to consume the profile when it does CMYK->RGB conversion and then not hand out the profile data. (Or we could add a CMYK bitmap type.) But most of the time, this is a progression :^)
2023-03-15LibGfx: Let PNGWriter optionally embed an ICC profileNico Weber
2023-03-15LibGfx: Add PNGChunk::compress_and_add APINico Weber
2023-03-15LibGfx: Use ReadonlyBytes in PNGChunk APINico Weber
2023-03-15Tests/LibWeb: Add ACID1 as a layout testAndreas Kling
This will help us catch any future regressions immediately.
2023-03-15LibWeb: Don't truncate font sizes before scaling them to device pixelsAndreas Kling
This fixes an issue where fonts would often paint at the wrong sizes with device pixel ratios other than 1.0.
2023-03-15LibGfx: Add Font::point_size()Andreas Kling
This returns the font size in pt instead of px.
2023-03-15LibWeb: Make sure `float: left` boxes get pushed down if they can't fitAndreas Kling
2023-03-15PartitionEditor: Add missing unveilsMacDue
These were somewhat found by trial and error, but it seems like this is now the required set to launch this without error.
2023-03-15Meta: Download pci.ids and usb.ids to Build/cachesTimothy Flynn
This ensures we only need to download these files once for all build configurations. We similarly download the UCD, CLDR, and TZDB to this cache directory as well.
2023-03-15Kernel/Ramdisk: Propagate error during Ramdisk initializePankaj Raghav
Use the same pattern for Ramdisk similar to other storage devices during device initialization. This will propagate errors if the Ramdisk fails to initialize.
2023-03-15Kernel/Storage: Use NonnullRefPtr for storage controllersPankaj Raghav
Storage controllers are initialized during init and are never modified. NonnullRefPtr can be safely used instead of the NonnullLockRefPtr. This also fixes one of the UB issue that was there when using an NVMe device because of NonnullLockRefPtr. We can add proper locking when we need to modify the storage controllers after init.
2023-03-15Ports: Add taskwarrior portSeal Sealy
2023-03-15LibGUI: Do not attempt to close non-existent notificationsimplicitfield
2023-03-15Lagom: Remove debug line in LibJSGCVerifierMatthew Olsson
2023-03-15Spreadsheet: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtrMatthew Olsson
2023-03-15LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtrMatthew Olsson
2023-03-15LibJS: Allow constructing a Handle<T> from a {Nonnull,}GCPtr<T>Matthew Olsson
2023-03-15LibJS: Allow constructing a GCPtr from another GCPtr of convertible typeMatthew Olsson
2023-03-15LibJS: Allow GCPtr and NonnullGCPtr to be hashedMatthew Olsson
2023-03-14AK: Rename CaseInsensitiveStringViewTraits to reflect intentgustrb
Now it is called `CaseInsensitiveASCIIStringViewTraits`, so we can be more specific about what data structure does it operate onto. ;)
2023-03-14Ports: Add bzip3 portSeal Sealy
2023-03-14LibWeb: Implement the [PutForwards] IDL extended attributeTimothy Flynn
For example, consider the attribute: interface Element { [PutForwards=value] readonly attribute DOMTokenList classList; } When `classList` is set, we should instead set the attribute `value` on the `classList` attribute of the Element interface.
2023-03-14LibWeb: Invalidate styles on font loadMathis Wiehl
It is not sufficient to just invalidate layout when a new font has loaded, because while it was loading we might have chosen a fallback font-family value instead. Invalidate style instead.
2023-03-14LibWeb/Tests: Remove image from a testAndreas Kling
The image made the test flaky when running on my machine, so this doesn't seem safe at the moment. We can just hardcode the dimensions. Eventually we should make it possible to use external images in tests, but for now let's not flake up the CI.
2023-03-14LibWeb: Actually instantiate ::before/::after pseudo elements when foundAndreas Kling
Regressed in 3e970540b4a1663f3569ebe049b71c60100ee018. Thanks to Luke for noticing the issue on YouTube! :^)
2023-03-14LibWeb: Prevent variadic arguments from reserving heaps of memoryTimothy Flynn
Don't try to reserve capacity for a variadic arguments list unless we actually have enough arguments to fill it with anything. Otherwise we may overflow to an extremely large size if, e.g., the argument count is 0 and the start of the variadic arguments is index 1.
2023-03-14LibWeb: Don't compute full style for ::before/::after unless matchedAndreas Kling
Before this patch, we would build full computed style for these pseudo elements, for every DOM element, even if no ::before/::after selector actually matched. This was a colossal waste of time, and we can also just not do that. Instead, just abort pseudo element style resolution early if no relevant selectors matched. :^)
2023-03-14WebContent: Coalesce multiple sequential MouseMove eventsAndreas Kling
This can avoid getting into a situation where lots of MouseMove events are queued up and they all trigger relayout (or something else that takes a lot of time). To make sure that we don't get out of sync with the input events queue on the UI process side, we still send acknowledgements for coalesced MouseMoves. There's room for improvement here. My Discord friends list is now pleasantly responsive. :^)
2023-03-14AK: Add Queue::tail()Andreas Kling
We already had head(), so let's also have tail().
2023-03-14WebContent: Give paint requests a chance to happen between input eventsAndreas Kling
Before this patch, we had an issue where the WebContent process could get backed up with tons of pending input events (especially mouse moves) and have to work through all of those before responding to a paint request from the UI process. This could lead to a situation where we went for a very long time without seeing any visual updates. The approach I've taken here is pretty simple, we basically make a queue of all incoming input events on the WebContent process side, and then process that queue one event at a time, using a zero timer. This is basic, but it allows paint requests to come in between the input events and we do now get more frequent visual updates even during heavy pressure from input events.
2023-03-14LibWeb: Avoid inside layout of flex items during intrinsic sizingAndreas Kling
When we're calculating the intrinsic size of a flex container, we don't *need* to layout the inside of each flex item. That's only necessary if the flex items will be seen (as is the case for "normal" layout). This avoids a whole bunch of unnecessary layout work on pages that use flexbox layout. :^)
2023-03-14Ladybird: Rely on transparent text color for location highlightingnetworkException
This patch replaces the usage of QPalette::PlaceholderText with QPalette::Text with opacity reduced to roughly 50%. This fixes the non highlighted spans having an extremely low contrast compared to the background in dark mode.
2023-03-14LibWeb: Consider margins of atomic inlines in layoutMathis Wiehl
According to CSS Inline Layout Module Level 3 ยง 2.2 Step 1. atomic inlines should be layed out in a line box based on their margin box. However, up until this patch we were unconditionally considering only the border box during line box height calculation. This made us essentially drop all vertical margins for atomic inlines.