LibWeb: Fix “step base” computation for HTMLInputElement

This change fixes a bug in our implementation of the “step base”
algorithm at https://html.spec.whatwg.org/#concept-input-min-zero. We
were using the “value” IDL/DOM attribute in a particular step, where the
spec instead actually requires using the “value” content attribute.
This commit is contained in:
sideshowbarker 2025-03-05 03:38:20 +09:00 committed by Tim Flynn
commit 13f9670f20
Notes: github-actions[bot] 2025-03-06 14:01:24 +00:00
4 changed files with 11 additions and 6 deletions

View file

@ -104,6 +104,7 @@
{conditions: {max: "5", value: "6"}, expected: false, name: "[target] suffering from an overflow"},
{conditions: {min: "5", value: "4"}, expected: false, name: "[target] suffering from an underflow"},
{conditions: {step: 2 * 1 * 1, value: "3"}, expected: false, name: "[target] suffering from a step mismatch"},
{conditions: {step: 10, value: "20", content_value: "9"}, expected: false, name: "[target] (with 'value' content attribute) suffering from a step mismatch"},
{conditions: {required: true, value: ""}, expected: false, name: "[target] suffering from being missing"}
]
},

View file

@ -340,6 +340,8 @@ var validator = {
for (var attr in obj) {
if (attr === "message")
ctl.setCustomValidity(obj[attr]);
else if (attr === "content_value")
ctl.setAttribute("value", obj["content_value"])
else if (attr === "checked" || obj[attr] || obj[attr] === "")
ctl[attr] = obj[attr];
}