summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/WebFormElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/WebFormElement.cpp')
-rw-r--r--WebKit/chromium/src/WebFormElement.cpp66
1 files changed, 37 insertions, 29 deletions
diff --git a/WebKit/chromium/src/WebFormElement.cpp b/WebKit/chromium/src/WebFormElement.cpp
index 5471608..9c77732 100644
--- a/WebKit/chromium/src/WebFormElement.cpp
+++ b/WebKit/chromium/src/WebFormElement.cpp
@@ -31,10 +31,13 @@
#include "config.h"
#include "WebFormElement.h"
+#include "FormState.h"
#include "HTMLFormControlElement.h"
#include "HTMLFormElement.h"
#include "HTMLInputElement.h"
#include "HTMLNames.h"
+#include "WebFormControlElement.h"
+#include "WebInputElement.h"
#include "WebString.h"
#include "WebURL.h"
#include <wtf/PassRefPtr.h>
@@ -43,25 +46,6 @@ using namespace WebCore;
namespace WebKit {
-class WebFormPrivate : public HTMLFormElement {
-};
-
-WebFormElement::WebFormElement(const WTF::PassRefPtr<HTMLFormElement>& e)
- : WebElement(e.releaseRef())
-{
-}
-
-WebFormElement& WebFormElement::operator=(const WTF::PassRefPtr<HTMLFormElement>& e)
-{
- WebNode::assign(e.releaseRef());
- return *this;
-}
-
-WebFormElement::operator WTF::PassRefPtr<WebCore::HTMLFormElement>() const
-{
- return PassRefPtr<HTMLFormElement>(static_cast<HTMLFormElement*>(m_private));
-}
-
bool WebFormElement::autoComplete() const
{
return constUnwrap<HTMLFormElement>()->autoComplete();
@@ -72,16 +56,21 @@ WebString WebFormElement::action() const
return constUnwrap<HTMLFormElement>()->action();
}
-WebString WebFormElement::name() const
+WebString WebFormElement::name() const
{
return constUnwrap<HTMLFormElement>()->name();
}
-WebString WebFormElement::method() const
+WebString WebFormElement::method() const
{
return constUnwrap<HTMLFormElement>()->method();
}
-
+
+bool WebFormElement::wasUserSubmitted() const
+{
+ return constUnwrap<HTMLFormElement>()->submissionTrigger() == NotSubmittedByJavaScript;
+}
+
void WebFormElement::submit()
{
unwrap<HTMLFormElement>()->submit();
@@ -94,17 +83,36 @@ void WebFormElement::getNamedElements(const WebString& name,
unwrap<HTMLFormElement>()->getNamedElements(name, tempVector);
result.assign(tempVector);
}
-
-void WebFormElement::getInputElements(WebVector<WebInputElement>& result) const
+
+void WebFormElement::getFormControlElements(WebVector<WebFormControlElement>& result) const
{
const HTMLFormElement* form = constUnwrap<HTMLFormElement>();
- Vector<RefPtr<HTMLInputElement> > tempVector;
- for (size_t i = 0; i < form->formElements.size(); i++) {
- if (form->formElements[i]->hasLocalName(HTMLNames::inputTag))
- tempVector.append(static_cast<HTMLInputElement*>(
- form->formElements[i]));
+ Vector<RefPtr<HTMLFormControlElement> > tempVector;
+ // FIXME: We should move the for-loop condition into a variable instead of
+ // re-evaluating size each time. Also, consider refactoring this code so that
+ // we don't call form->associatedElements() multiple times.
+ for (size_t i = 0; i < form->associatedElements().size(); i++) {
+ if (form->associatedElements()[i]->hasLocalName(HTMLNames::inputTag)
+ || form->associatedElements()[i]->hasLocalName(HTMLNames::selectTag))
+ tempVector.append(form->associatedElements()[i]);
}
result.assign(tempVector);
}
+WebFormElement::WebFormElement(const PassRefPtr<HTMLFormElement>& e)
+ : WebElement(e)
+{
+}
+
+WebFormElement& WebFormElement::operator=(const PassRefPtr<HTMLFormElement>& e)
+{
+ m_private = e;
+ return *this;
+}
+
+WebFormElement::operator PassRefPtr<HTMLFormElement>() const
+{
+ return static_cast<HTMLFormElement*>(m_private.get());
+}
+
} // namespace WebKit