Bug 675943 - Part 2: Implement dirname attr for textarea elements within forms. r=edgar

Depends on D175626

Differential Revision: https://phabricator.services.mozilla.com/D178164
This commit is contained in:
Vincent Hilla
2023-05-24 08:04:52 +00:00
parent 7aea40ce2a
commit 7a0066d76e
10 changed files with 70 additions and 262 deletions

View File

@@ -706,9 +706,27 @@ HTMLTextAreaElement::SubmitNamesValues(FormData* aFormData) {
GetValueInternal(value, false);
//
// Submit
// Submit name=value
//
return aFormData->AddNameValuePair(name, value);
const nsresult rv = aFormData->AddNameValuePair(name, value);
if (NS_FAILED(rv)) {
return rv;
}
// Submit dirname=dir if element has non-empty dirname attribute
if (HasAttr(kNameSpaceID_None, nsGkAtoms::dirname)) {
nsAutoString dirname;
GetAttr(kNameSpaceID_None, nsGkAtoms::dirname, dirname);
if (!dirname.IsEmpty()) {
const Directionality eDir = GetDirectionality();
MOZ_ASSERT(eDir == eDir_RTL || eDir == eDir_LTR,
"The directionality of an element is either ltr or rtl");
const nsString dir = eDir == eDir_LTR ? u"ltr"_ns : u"rtl"_ns;
return aFormData->AddNameValuePair(dirname, dir);
}
}
return NS_OK;
}
void HTMLTextAreaElement::SaveState() {