Browse Source

LibWeb: Ensure value sanitization algorithm trims whitespace if needed

Previously, the value sanitization algorithm would not trim whitespace
for inputs of type URL or email, if they didn't also contain any
newlines.
Tim Ledbetter 10 tháng trước cách đây
mục cha
commit
c4b82318f4

+ 2 - 0
Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp

@@ -1361,6 +1361,7 @@ String HTMLInputElement::value_sanitization_algorithm(String const& value) const
             }
             }
             return MUST(String::from_utf8(builder.string_view().trim(Infra::ASCII_WHITESPACE)));
             return MUST(String::from_utf8(builder.string_view().trim(Infra::ASCII_WHITESPACE)));
         }
         }
+        return MUST(value.trim(Infra::ASCII_WHITESPACE));
     } else if (type_state() == HTMLInputElement::TypeAttributeState::Email) {
     } else if (type_state() == HTMLInputElement::TypeAttributeState::Email) {
         // https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email):value-sanitization-algorithm
         // https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email):value-sanitization-algorithm
         // FIXME: handle the `multiple` attribute
         // FIXME: handle the `multiple` attribute
@@ -1373,6 +1374,7 @@ String HTMLInputElement::value_sanitization_algorithm(String const& value) const
             }
             }
             return MUST(String::from_utf8(builder.string_view().trim(Infra::ASCII_WHITESPACE)));
             return MUST(String::from_utf8(builder.string_view().trim(Infra::ASCII_WHITESPACE)));
         }
         }
+        return MUST(value.trim(Infra::ASCII_WHITESPACE));
     } else if (type_state() == HTMLInputElement::TypeAttributeState::Number) {
     } else if (type_state() == HTMLInputElement::TypeAttributeState::Number) {
         // https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number):value-sanitization-algorithm
         // https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number):value-sanitization-algorithm
         // If the value of the element is not a valid floating-point number, then set it
         // If the value of the element is not a valid floating-point number, then set it