Commit graph

245 commits

Author SHA1 Message Date
Andreas Kling
7a51e846b2 Base: Add two HTML test pages for DOM cloneNode() functionality 2022-12-14 15:21:48 +01:00
MacDue
cdf6e568f6 Base: Add some repeating-radial-gradient() HTML examples 2022-12-03 09:06:51 -05:00
Timothy Flynn
4a30446999 LibWeb: Support displaying HTMLInputElement placeholder values
This adds support for parsing the ::placeholder pseudo-element and
injecting an anonymous layout node with that element when the input
element's data is empty.
2022-12-01 11:18:11 -05:00
MacDue
cdbb2cc917 Base: Add some radial-gradient() HTML examples 2022-11-30 14:24:04 +00:00
martinfalisse
f351418a1e LibWeb: Include tests for grid track spans
Include tests for grid track spans when given for automatically-placed
grid tracks in the grid-*-end properties.
2022-11-29 19:27:31 +01:00
Andreas Kling
e3b8a8f7c8 LibWeb: Treat unresolvable percentage width on inline-block as auto 2022-11-28 19:14:05 +01:00
Andreas Kling
c884aa3f25 Base: Add a test for [SameObject] behavior in LibWeb 2022-11-25 22:49:59 +01:00
martinfalisse
0c577b4b3b Base: Add test for multiple line names in CSS Grid 2022-11-21 21:48:25 +00:00
Timothy Flynn
894bddf62c Base: Add a simple test page for window.prompt
The window prototypes alert, confirm, and prompt must "pause" execution
until a response is received from the user. This test page is meant to
ensure that a timeout queued before a prompt is not executed until after
that prompt is closed.
2022-11-16 17:23:56 +00:00
martinfalisse
70559e9d14 Base: Add test for grid-gap and auto-fit 2022-11-16 00:53:00 +01:00
MacDue
d5cf403f70 Base: Add some repeating-conic-gradient() test cases 2022-11-07 13:13:22 +00:00
martinfalisse
0586730a92 Base: Add tests for grid gap 2022-11-07 10:06:07 +01:00
martinfalisse
13ac078202 Base: Add test for sizing children of grid 2022-11-06 13:23:33 +01:00
MacDue
d66b219453 Base: Add some extra conic-gradient() test cases
This adds a test of a conic-gradient() with just a center position
and no starting angle.

This also adds a gradient that gives each quadrant a different color,
this is very sensitive to the center position being correct.
2022-11-06 01:42:55 +00:00
Andreas Kling
7809cc6557 LibWeb: Use preferred flex item sizes as min/max-content contribution
When a flex item has a specific preferred size, that size should be its
contribution to the containers intrinsic sizes.

This fixes an issue on Patreon where the logo would cover the entire
viewport since the SVG had a large intrinsic size but the flex item
containing it had a small specified size in CSS.
2022-11-05 11:42:19 +01:00
Timothy Flynn
9564f04fa6 Base: Add a disabled button to the button.html test page 2022-11-03 19:15:43 +00:00
MacDue
d6334dcab1 Base: Add some conic-gradient() HTML examples 2022-11-01 23:07:05 +00:00
martinfalisse
937fcfc75c LibWeb+Base: Use line names for positioning grid items
When there are grid tracks with line names, use these to resolve
line-names passed to positioned grid items.
2022-11-01 11:19:41 +01:00
Smrtnyk
ae950816b5 Base: Add SameSite cookie test cases 2022-10-22 18:17:01 +02:00
martinfalisse
8653903bee Base: Update display grid test page
Update the tests after adding minmax(), auto-fill and auto-fit
functionality to the LibWeb implementation of the CSS Grid.
2022-10-15 16:04:01 +02:00
Pavel
db23e2d546 Base: Add test page for exceptions
Created a simple page where you can check
that the exceptions appear in the JS console.
2022-10-15 01:25:12 +02:00
martinfalisse
f538dc2fae LibWeb+Base: Add grid repeat() functionality
Add ability to use values passed to grid-template-columns and
grid-template-rows for CSS Grid layout within a repeat() function.

E.g. grid-template-columns: repeat(2, 50px); means to have two columns
of 50px width each.
2022-10-09 12:40:18 +01:00
martinfalisse
e537035cc6 LibWeb+Base: Deal with column-spans greater than implicit grid
When the indicated column-span is greater than the implicit grid (like
in cases when the grid has the default size of 1x1, and the column is
supposed to span any number greater than that), then previously were
crashing.
2022-10-08 17:26:41 +02:00
MacDue
5a832c0326 Base: Add example backdrop-filter using saturate() 2022-10-07 13:08:24 +01:00
martinfalisse
84290ed7c8 Base+LibWeb: Make sure grid positions don't cause out of bounds
Add some tests to the test page to make sure that different combinations
of GridTrackPlacement don't cause out of bounds issues.
2022-10-06 21:16:01 +02:00
martinfalisse
56f50c9cde Base+LibWeb: Deal with zero-positioned grid items
If a grid item has as its position value a 0 then it should be
invalidated.
2022-10-06 21:16:01 +02:00
martinfalisse
9051a56554 Base+LibWeb: Stub out negative spans
Ensure that when a grid item is passed with a span and a fixed end
position, that if the resulting start of this item is less than 0 then
it won't throw. This is a temporary measure until the correct
functionality is implemented.
2022-10-06 21:16:01 +02:00
martinfalisse
236795e931 LibWeb+Base: Re-implement grid track span
Implement span correctly when indicated in the grid-column-start,
grid-row-start, etc. CSS properties. Previously it had been implemented
as if span was something that went alongside the position property, but
actually it seems like if you do 'span 3' in the grid-column-start
property, for example, this means it literally spans 3 blocks, and the
3 has nothing to do with position.
2022-10-06 21:16:01 +02:00
MacDue
2a9128efe3 Base: Add example backdrop-filter using hue-rotate() 2022-10-02 21:17:41 +02:00
Luke Wilde
082abf9998 Base: Add rotateX, rotateY, rotateZ and matrix3d examples for transform 2022-10-01 14:07:47 +02:00
MacDue
c0eda77928 Base: Add paint effects with opacity/transforms HTML test cases 2022-09-25 18:37:31 +02:00
Andreas Kling
d43ef27761 LibWeb: Only include containing blocks in coordinate space translation
Layout box offset coordinates are always relative to their containing
block. Therefore, the functions that convert between coordinate spaces
should only visit containing blocks and apply their offsets, not *every*
box in the parent chain.

This fixes an issue where some floating boxes were unexpectedly far away
from their containing block.
2022-09-22 16:54:12 +02:00
Andreas Kling
389f47f6fe LibWeb: Check both top and bottom of float position when looking for fit
We have to check that there's enough space at both the top and bottom of
the float's margin box, otherwise we risk overlapping existing content.
2022-09-22 16:54:12 +02:00
davidot
4912b22e3b LibWeb+WebContent: Setup the js console client earlier
This allows us to print messages in inline scripts. Also add an example
of this in the welcome page to test this.
2022-09-21 17:34:32 +01:00
Jan Metzger
931458c337 LibWeb: Update visibility when Node was invisible before 2022-09-21 10:47:41 +01:00
Andreas Kling
412b2313f3 LibWeb: Improve inline flow around floating boxes
This patch combines a number of techniques to make inline content flow
more correctly around floats:

- During inline layout, BFC now lets LineBuilder decide the Y coordinate
  when inserting a new float. LineBuilder has more information about the
  currently accumulated line, and can make better breaking decisions.

- When inserting a float on one side, and the top of the newly inserted
  float is below the bottommost float on the opposite side, we now reset
  the opposite side back to the start of that edge. This improves
  breaking behavior between opposite-side floats.

- After inserting a float during inline layout, we now recalculate the
  available space on the line, but don't adjust X offsets of already
  existing fragments. This is handled by update_last_line() anyway,
  so it was pointless busywork.

- When measuring whether a line can fit at a given Y coordinate, we now
  consider both the top and bottom Y values of the line. This fixes an
  issue where the bottom part of a line would bleed over other content
  (since we had only checked that the top Y coordinate of that line
  would fit.)

There are some pretty brain-dead algorithms in here that we need to make
smarter, but I didn't want to complicate this any further so I've left
FIXMEs about them instead.
2022-09-16 15:15:50 +02:00
MacDue
cfa9b44894 Base: Add a backdrop-filter demo web page 2022-09-16 10:50:48 +01:00
electrikmilk
b0f9ad0000 Base: Add existing @font-face test to welcome page
This adds the existing `@font-face` test page to the welcome page.
2022-09-14 10:50:33 +01:00
Brian Gianforcaro
d0a1775369 Everywhere: Fix a variety of typos
Spelling fixes found by `codespell`.
2022-09-14 04:46:49 +00:00
martinfalisse
ca3d479f6f Base: Add more tests for display: grid 2022-09-14 00:09:14 +02:00
Andreas Kling
514fa83708 LibWeb: Improve float: right behavior
- Use the border box of the floated element when testing if something
  needs to flow around it.
- Take the floated element's containing block size into account (instead
  of the BFC root) when calculating available space on a line where a
  right-side float intrudes.
2022-09-07 17:47:33 +02:00
davidot
ba5bcb67a5 LibWeb: Implement the HostEnsureCanAddPrivateElement JS hook
Also added a local test for ensuring this behavior since it is unique to
browsers. Since we don't actually use WindowProxy anywhere yet we just
test on location for now.
2022-08-27 20:33:27 +01:00
martinfalisse
a7f5b6b15b Base: Add display grid test page 2022-08-25 13:47:48 +02:00
MacDue
be9d3f9aa4 Base: Add an example linear-gradient with double-position color stops 2022-08-23 01:02:49 +02:00
MacDue
d26203ff90 Base: Add some repeating-linear-gradient() examples 2022-08-18 15:58:05 +02:00
Sam Atkins
9075dea3a8 Base: Add a test page for Path2D
Neither of the tests here actually passes properly right now. It's a
little more aspirational...

In the first one, the circle draws in the wrong place due apparently to
existing bugs in `CanvasRenderingContext2D::ellipse()`.

In the second, I just haven't yet implemented creating a Path2D from an
SVG path string, because that's going to take a fair bit of untangling
first.
2022-08-14 11:30:40 +02:00
martinfalisse
eef0edae7a Base: Clean up Clip test page after absolutely positioned divs fix
Clean up the Clip test page after adding the logic necessary so that
absolutely positioned divs are correctly positioned.
2022-08-14 11:22:52 +02:00
MacDue
c5d1cf7a5a Base: Add some more linear-gradient() transition hint demos
This adds a demo of making a 'rainbow' with hard edges using
transition hints, along with an animated demo of moving the
transition hint.
2022-08-12 12:24:15 +02:00
MacDue
4f83b70c7f Base: Remove modifications from fancy progress bar demo
This restores the demo to being the same as on css-tricks.com.
2022-08-12 12:24:15 +02:00
MacDue
613feb1854 Base: Replace linear-gradient() pattern demo with cooler one
The previous demo didn't work that well, not due to any LibWeb
issue (same in other browsers), it just was a broken demo.

This demo shows the neat tricks you can do with linear-gradient()s
much better.
2022-08-08 21:56:08 -04:00