bool HTMLTextAreaElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; document().updateLayout(); const String& text = (m_wrap == HardWrap) ? valueWithHardLineBreaks() : value(); encoding.appendData(name(), text); const AtomicString& dirnameAttrValue = fastGetAttribute(dirnameAttr); if (!dirnameAttrValue.isNull()) encoding.appendData(dirnameAttrValue, directionForFormData()); return true; }
bool FileInputType::appendFormData(FormDataList& encoding, bool multipart) const { FileList* fileList = element()->files(); unsigned numFiles = fileList->length(); if (!multipart) { // Send only the basenames. // 4.10.16.4 and 4.10.16.6 sections in HTML5. // Unlike the multipart case, we have no special handling for the empty // fileList because Netscape doesn't support for non-multipart // submission of file inputs, and Firefox doesn't add "name=" query // parameter. for (unsigned i = 0; i < numFiles; ++i) encoding.appendData(element()->name(), fileList->item(i)->fileName()); return true; } // If no filename at all is entered, return successful but empty. // Null would be more logical, but Netscape posts an empty file. Argh. if (!numFiles) { encoding.appendBlob(element()->name(), File::create("")); return true; } for (unsigned i = 0; i < numFiles; ++i) encoding.appendBlob(element()->name(), fileList->item(i)); return true; }
bool HTMLButtonElement::appendFormData(FormDataList& formData, bool) { if (m_type != SUBMIT || name().isEmpty() || !m_isActivatedSubmit) return false; formData.appendData(name(), value()); return true; }
bool SubmitInputType::appendFormData(FormDataList& encoding, bool) const { if (!element()->isActivatedSubmit()) return false; encoding.appendData(element()->name(), element()->valueWithDefault()); return true; }
bool HTMLButtonElement::appendFormData(FormDataList& encoding, bool /*multipart*/) { if (m_type != SUBMIT || name().isEmpty() || !m_activeSubmit) return false; encoding.appendData(name(), m_currValue); return true; }
bool BaseCheckableInputType::appendFormData(FormDataList& encoding, bool) const { if (!element()->checked()) return false; encoding.appendData(element()->name(), element()->value()); return true; }
bool HiddenInputType::appendFormData(FormDataList& encoding, bool isMultipartForm) const { if (equalIgnoringCase(element().name(), "_charset_")) { encoding.appendData(element().name(), String(encoding.encoding().name())); return true; } return InputType::appendFormData(encoding, isMultipartForm); }
bool TextFieldInputType::appendFormData(FormDataList& list, bool multipart) const { InputType::appendFormData(list, multipart); const AtomicString& dirnameAttrValue = element().fastGetAttribute(dirnameAttr); if (!dirnameAttrValue.isNull()) list.appendData(dirnameAttrValue, element().directionForFormData()); return true; }
bool WMLInputElement::appendFormData(FormDataList& encoding, bool) { if (formControlName().isEmpty()) return false; encoding.appendData(formControlName(), value()); return true; }
bool HTMLTextAreaElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; bool hardWrap = renderer() && wrap() == ta_Physical; String v = hardWrap ? static_cast<RenderTextControl*>(renderer())->textWithHardLineBreaks() : value(); encoding.appendData(name(), v); return true; }
bool HTMLKeygenElement::appendFormData(FormDataList& encoded_values, bool) { // Only RSA is supported at this time. if (!m_keyType.isNull() && !equalIgnoringCase(m_keyType, "rsa")) return false; String value = signedPublicKeyAndChallengeString(shadowSelect()->selectedIndex(), m_challenge, document()->baseURL()); if (value.isNull()) return false; encoded_values.appendData(name(), value.utf8()); return true; }
bool HTMLTextAreaElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; document()->updateLayout(); const String& text = (m_wrap == HardWrap) ? valueWithHardLineBreaks() : value(); encoding.appendData(name(), text); return true; }
bool ImageInputType::appendFormData(FormDataList& encoding, bool) const { if (!element()->isActivatedSubmit()) return false; const AtomicString& name = element()->name(); if (name.isEmpty()) { encoding.appendData("x", m_clickLocation.x()); encoding.appendData("y", m_clickLocation.y()); return true; } DEFINE_STATIC_LOCAL(String, dotXString, (ASCIILiteral(".x"))); DEFINE_STATIC_LOCAL(String, dotYString, (ASCIILiteral(".y"))); encoding.appendData(name + dotXString, m_clickLocation.x()); encoding.appendData(name + dotYString, m_clickLocation.y()); if (!element()->value().isEmpty()) encoding.appendData(name, element()->value()); return true; }
bool HTMLTextAreaElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; // FIXME: It's not acceptable to ignore the HardWrap setting when there is no renderer. // While we have no evidence this has ever been a practical problem, it would be best to fix it some day. RenderTextControl* control = toRenderTextControl(renderer()); const String& text = (m_wrap == HardWrap && control) ? control->textWithHardLineBreaks() : value(); encoding.appendData(name(), text); return true; }
bool HTMLKeygenElement::appendFormData(FormDataList& encoding, bool) { // Only RSA is supported at this time. const AtomicString& keyType = fastGetAttribute(keytypeAttr); if (!keyType.isNull() && !equalIgnoringCase(keyType, "rsa")) return false; String value = signedPublicKeyAndChallengeString(shadowSelect()->selectedIndex(), fastGetAttribute(challengeAttr), document().baseURL()); if (value.isNull()) return false; encoding.appendData(name(), value.utf8()); return true; }
bool HTMLObjectElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; Widget* widget = pluginWidget(); if (!is<PluginViewBase>(widget)) return false; String value; if (!downcast<PluginViewBase>(*widget).getFormValue(value)) return false; encoding.appendData(name(), value); return true; }
bool HTMLObjectElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; Widget* widget = pluginWidget(); if (!widget || !widget->isPluginView()) return false; String value; if (!toPluginView(widget)->getFormValue(value)) return false; encoding.appendData(name(), value); return true; }
bool HTMLObjectElement::appendFormData(FormDataList& encoding, bool) { if (name().isEmpty()) return false; // Widget is needed immediately to satisfy cases like // LayoutTests/plugins/form-value.html. Widget* widget = pluginWidgetForJSBindings(); if (!widget || !widget->isPluginView()) return false; String value; if (!toPluginView(widget)->getFormValue(value)) return false; encoding.appendData(name(), value); return true; }
bool InputType::appendFormData(FormDataList& encoding, bool) const { // Always successful. encoding.appendData(element()->name(), element()->value()); return true; }