layout: Add very basic support for showing text in input boxes (#32365)

This only paints text in input fields. Selection and cursor are still
not painted.

In addition to adding this feature, the change also updates the
user-agent.css with the latest from the HTML specification. Extra
padding and extraneous settings (such as a bogus line-height and
min-height) are also removed from servo.css. This leads to some new
passes.

There are some new passes, this introduces failures as inserting text
reveals issues that were hidden before. Notably:

- failures in `/html/editing/editing-0/spelling-and-grammar-checking/`:
  We do not support spell-checking.
- Most of the rest of the new failures are missing features of input
  boxes that are also missing in legacy layout.
This commit is contained in:
Martin Robinson 2024-06-20 12:13:50 +02:00 committed by GitHub
parent 3d6accbbe3
commit 44064b1439
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
65 changed files with 225 additions and 204 deletions

View file

@ -3473,7 +3473,7 @@
]
],
"input_line_height.html": [
"1de07c88ae2092e2e9885d30e2001e9fe09ca8b3",
"f1c1d742000a6c4c11d40806e07aeba502141368",
[
null,
[
@ -6547,7 +6547,7 @@
]
],
"textarea_space_calculation.html": [
"20945e971b543cbc11741863314ccf3595654e80",
"ee5ea7b1c01f5a11188bc50eca3a60ea2c15edf2",
[
null,
[
@ -9115,7 +9115,7 @@
[]
],
"input_line_height_ref.html": [
"16d4fd99712bd1d21cc8320f2e273a867f3fb807",
"f29e061cc35625fa039473e702f78dbc5a7d9c14",
[]
],
"input_placeholder_ref.html": [
@ -10073,7 +10073,7 @@
[]
],
"textarea_space_calculation-ref.html": [
"b777beb062b67a51c1efdfe4afa55568fd3724e6",
"56abdf23c8f88a9f236d54ef798734becc372027",
[]
],
"transform_3d_from_outside_viewport_ref.html": [

View file

@ -1,2 +0,0 @@
[button_css_width.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[submit_focus_a.html]
expected: FAIL

View file

@ -7,6 +7,7 @@
<body>
<div style="line-height: 100px">
<input type="text"></input>
<input type="text"></input>
</div>
</body>
</html>

View file

@ -5,7 +5,10 @@
</head>
<body>
<div style="line-height: 100px">
<input type="text" style="line-height: 1.8"></input>
<!-- https://html.spec.whatwg.org/multipage/#form-controls defines `line-height` for form
controls to be `initial` ie `normal`. -->
<input type="text" style="line-height: initial;"></input>
<input type="text" style="line-height: normal;"></input>
</div>
</body>
</html>

View file

@ -1,8 +1,18 @@
<!doctype html>
<title>REFERENCE: textarea does not take up more space than it takes up</title>
<style>
textarea{height:2em;width:2em}
div{width:2em;font-size:12px;line-height:3px}
textarea {
height:2em;
width:2em;
/* `em` units are based on font size, so this size
has to be the same as the font size in the div. */
font-size:12px;
}
div {
width: 2em;
font-size: 12px;
line-height: 3px
}
</style>
<h1>To pass, no red should be visible</h1>
<div>

View file

@ -3,8 +3,19 @@
<title>textarea does not take up more space than it takes up</title>
<link rel="match" href="textarea_space_calculation-ref.html">
<style>
textarea{height:2em;width:2em}
div{background:red;width:2em;font-size:12px;line-height:3px}
textarea {
height:2em;
width:2em;
/* `em` units are based on font size, so this size
has to be the same as the font size in the div. */
font-size:12px;
}
div {
background: red;
width: 2em;
font-size: 12px;
line-height: 3px
}
</style>
<h1>To pass, no red should be visible</h1>
<div>