diff options
author | hayato@chromium.org <hayato@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-31 09:34:50 +0000 |
---|---|---|
committer | hayato@chromium.org <hayato@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-31 09:34:50 +0000 |
commit | e6efd025246dc04f22ee0f62a25e1259ab95512e (patch) | |
tree | a7bee5e86797af0826bf2cbda24070526ef33b60 /chrome/renderer/render_view.cc | |
parent | 5c43b97cfe76c02c88900a4c68326adac842b7be (diff) | |
download | chromium_src-e6efd025246dc04f22ee0f62a25e1259ab95512e.zip chromium_src-e6efd025246dc04f22ee0f62a25e1259ab95512e.tar.gz chromium_src-e6efd025246dc04f22ee0f62a25e1259ab95512e.tar.bz2 |
Page Cycler Intl2 perf regression.
Revert 43181 - AutoFill: Send the forms cached in the FormManager to the AutoFillManager on
page load instead of duplicating this parsing in RenderView.
BUG=38325
TEST=none
Review URL: http://codereview.chromium.org/1530011
TBR=jhawkins@chromium.org
Review URL: http://codereview.chromium.org/1540008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43195 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 6c8b8a2..0d84b7ab 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -79,11 +79,11 @@ #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" #include "third_party/WebKit/WebKit/chromium/public/WebDragData.h" #include "third_party/WebKit/WebKit/chromium/public/WebFileChooserParams.h" -#include "third_party/WebKit/WebKit/chromium/public/WebFormControlElement.h" #include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h" #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" #include "third_party/WebKit/WebKit/chromium/public/WebHistoryItem.h" #include "third_party/WebKit/WebKit/chromium/public/WebImage.h" +#include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h" #include "third_party/WebKit/WebKit/chromium/public/WebNode.h" #include "third_party/WebKit/WebKit/chromium/public/WebNodeList.h" #include "third_party/WebKit/WebKit/chromium/public/WebPageSerializer.h" @@ -106,7 +106,6 @@ #include "webkit/appcache/web_application_cache_host_impl.h" #include "webkit/default_plugin/default_plugin_shared.h" #include "webkit/glue/dom_operations.h" -#include "webkit/glue/form_data.h" #include "webkit/glue/form_field.h" #include "webkit/glue/form_field_values.h" #include "webkit/glue/glue_serialize.h" @@ -135,7 +134,6 @@ using appcache::WebApplicationCacheHostImpl; using base::Time; using base::TimeDelta; using webkit_glue::AltErrorPageResourceFetcher; -using webkit_glue::FormData; using webkit_glue::FormField; using webkit_glue::FormFieldValues; using webkit_glue::ImageResourceFetcher; @@ -159,11 +157,11 @@ using WebKit::WebDragOperationsMask; using WebKit::WebEditingAction; using WebKit::WebFileChooserCompletion; using WebKit::WebFindOptions; -using WebKit::WebFormControlElement; using WebKit::WebFormElement; using WebKit::WebFrame; using WebKit::WebHistoryItem; using WebKit::WebImage; +using WebKit::WebInputElement; using WebKit::WebMediaPlayer; using WebKit::WebMediaPlayerAction; using WebKit::WebMediaPlayerClient; @@ -1952,12 +1950,10 @@ void RenderView::queryAutofillSuggestions(const WebNode& node, static int query_counter = 0; autofill_query_id_ = query_counter++; autofill_query_node_ = node; - const WebKit::WebFormControlElement element = - node.toConstElement<WebFormControlElement>(); - FormField field; - FormManager::WebFormControlElementToFormField(element, &field); + const WebKit::WebInputElement input_element = + node.toConstElement<WebInputElement>(); Send(new ViewHostMsg_QueryFormFieldAutofill( - routing_id_, autofill_query_id_, field)); + routing_id_, autofill_query_id_, FormField(input_element))); } void RenderView::removeAutofillSuggestions(const WebString& name, @@ -1973,8 +1969,7 @@ void RenderView::didAcceptAutoFillSuggestion( autofill_query_id_ = query_counter++; webkit_glue::FormData form; - const WebFormControlElement element = - node.toConstElement<WebFormControlElement>(); + const WebInputElement element = node.toConstElement<WebInputElement>(); if (!form_manager_.FindForm(element, &form)) return; @@ -4658,18 +4653,22 @@ void RenderView::focusAccessibilityObject( } void RenderView::SendForms(WebFrame* frame) { - std::vector<FormData> forms; - FormManager::RequirementsMask requirements = - static_cast<FormManager::RequirementsMask>( - FormManager::REQUIRE_AUTOCOMPLETE | - FormManager::REQUIRE_ELEMENTS_ENABLED); - form_manager_.GetFormsInFrame(frame, requirements, &forms); - if (!forms.empty()) { - // TODO(jhawkins): Remove this call once AutoFillManager uses FormData. - std::vector<FormFieldValues> form_field_values; - FormManager::FormDataToFormFieldValues(forms, &form_field_values); - Send(new ViewHostMsg_FormsSeen(routing_id_, form_field_values)); + WebVector<WebFormElement> web_forms; + frame->forms(web_forms); + + std::vector<FormFieldValues> forms; + for (size_t i = 0; i < web_forms.size(); ++i) { + const WebFormElement& web_form = web_forms[i]; + + if (web_form.autoComplete()) { + scoped_ptr<FormFieldValues> form(FormFieldValues::Create(web_form)); + if (form.get()) + forms.push_back(*form); + } } + + if (!forms.empty()) + Send(new ViewHostMsg_FormsSeen(routing_id_, forms)); } void RenderView::didChangeAccessibilityObjectState( |