LibWeb: Fix empty value attribute for 'file' input returning fakepath

It should be returning the empty string for this case.
This commit is contained in:
Shannon Booth 2023-08-26 13:26:24 +12:00 committed by Andreas Kling
parent c03e025a32
commit fc4fd6cb02
Notes: sideshowbarker 2024-07-17 20:22:04 +09:00
3 changed files with 11 additions and 1 deletions

View File

@ -0,0 +1 @@
value = ''

View File

@ -0,0 +1,8 @@
<script src="include.js"></script>
<script>
test(() => {
const input = document.createElement("input");
input.type = 'file';
println(`value = '${input.value}'`);
})
</script>

View File

@ -304,9 +304,10 @@ DeprecatedString HTMLInputElement::value() const
if (type_state() == TypeAttributeState::FileUpload) {
// NOTE: This "fakepath" requirement is a sad accident of history. See the example in the File Upload state section for more information.
// NOTE: Since path components are not permitted in filenames in the list of selected files, the "\fakepath\" cannot be mistaken for a path component.
// On getting, return the string "C:\fakepath\" followed by the name of the first file in the list of selected files, if any, or the empty string if the list is empty.
if (m_selected_files && m_selected_files->item(0))
return DeprecatedString::formatted("C:\\fakepath\\{}", m_selected_files->item(0)->name());
return "C:\\fakepath\\"sv;
return DeprecatedString::empty();
}
// https://html.spec.whatwg.org/multipage/input.html#dom-input-value-value