summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webkit/glue/form_field_values.cc67
-rw-r--r--webkit/glue/form_field_values.h1
2 files changed, 22 insertions, 46 deletions
diff --git a/webkit/glue/form_field_values.cc b/webkit/glue/form_field_values.cc
index d739b5f..66d6b0a 100644
--- a/webkit/glue/form_field_values.cc
+++ b/webkit/glue/form_field_values.cc
@@ -2,88 +2,63 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "config.h"
-
-#include "Document.h"
-#include "Frame.h"
-#include "HTMLFormElement.h"
-#include "HTMLInputElement.h"
-#include "HTMLNames.h"
-#undef LOG
-
#include "base/basictypes.h"
#include "base/logging.h"
#include "base/string16.h"
#include "base/string_util.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h"
#include "webkit/glue/form_field_values.h"
-// Can include from api/src because this file will eventually be there too.
-#include "third_party/WebKit/WebKit/chromium/src/DOMUtilitiesPrivate.h"
-#include "webkit/glue/glue_util.h"
-
-using WebKit::WebFormElement;
+using namespace WebKit;
namespace webkit_glue {
-FormFieldValues* FormFieldValues::Create(const WebFormElement& webform) {
- RefPtr<WebCore::HTMLFormElement> form = WebFormElementToHTMLFormElement(webform);
- DCHECK(form);
+FormFieldValues* FormFieldValues::Create(const WebFormElement& form) {
+ DCHECK(!form.isNull());
- WebCore::Document* document = form->document();
- WebCore::Frame* frame = document->frame();
+ WebFrame* frame = form.frame();
if (!frame)
return NULL;
- WebCore::FrameLoader* loader = frame->loader();
- if (!loader)
- return NULL;
-
// Construct a new FormFieldValues.
FormFieldValues* result = new FormFieldValues();
- result->form_name = StringToString16(form->name());
- result->method = StringToString16(form->method());
- result->source_url = KURLToGURL(document->url());
- result->target_url = KURLToGURL(document->completeURL(form->action()));
- result->ExtractFormFieldValues(webform);
+ result->form_name = form.name();
+ result->method = form.method();
+ result->source_url = frame->url();
+ result->target_url = frame->completeURL(form.action());
+ result->ExtractFormFieldValues(form);
return result;
}
void FormFieldValues::ExtractFormFieldValues(
- const WebKit::WebFormElement& webform) {
- RefPtr<WebCore::HTMLFormElement> form = WebFormElementToHTMLFormElement(webform);
-
- const WTF::Vector<WebCore::HTMLFormControlElement*>& form_elements =
- form->formElements;
+ const WebKit::WebFormElement& form) {
- size_t form_element_count = form_elements.size();
- for (size_t i = 0; i < form_element_count; i++) {
- WebCore::HTMLFormControlElement* form_element = form_elements[i];
-
- if (!form_element->hasLocalName(WebCore::HTMLNames::inputTag))
- continue;
+ WebVector<WebInputElement> input_elements;
+ form.getInputElements(input_elements);
- WebCore::HTMLInputElement* input_element =
- static_cast<WebCore::HTMLInputElement*>(form_element);
- if (!input_element->isEnabledFormControl())
+ for (size_t i = 0; i < input_elements.size(); i++) {
+ const WebInputElement& input_element = input_elements[i];
+ if (!input_element.isEnabledFormControl())
continue;
// Ignore all input types except TEXT.
- if (input_element->inputType() != WebCore::HTMLInputElement::TEXT)
+ if (input_element.inputType() != WebInputElement::Text)
continue;
// For each TEXT input field, store the name and value
- string16 value = StringToString16(input_element->value());
+ string16 value = input_element.value();
TrimWhitespace(value, TRIM_LEADING, &value);
if (value.empty())
continue;
- string16 name = StringToString16(WebKit::nameOfInputElement(input_element));
+ string16 name = input_element.nameForAutofill();
if (name.empty())
continue; // If we have no name, there is nothing to store.
- string16 type = StringToString16(input_element->formControlType());
+ string16 type = input_element.formControlType();
if (type.empty())
continue;
diff --git a/webkit/glue/form_field_values.h b/webkit/glue/form_field_values.h
index d49ff5b..aca45de 100644
--- a/webkit/glue/form_field_values.h
+++ b/webkit/glue/form_field_values.h
@@ -13,6 +13,7 @@
namespace WebKit {
class WebFormElement;
+class WebInputElement;
}
namespace webkit_glue {