| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/renderer/autofill/autofill_agent.h" | 5 #include "chrome/renderer/autofill/autofill_agent.h" | 
| 6 | 6 | 
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" | 
| 8 #include "base/time.h" | 8 #include "base/time.h" | 
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" | 
| 10 #include "chrome/common/autofill_messages.h" | 10 #include "chrome/common/autofill_messages.h" | 
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 215 } | 215 } | 
| 216 | 216 | 
| 217 void AutofillAgent::TextFieldDidChangeImpl(const WebInputElement& element) { | 217 void AutofillAgent::TextFieldDidChangeImpl(const WebInputElement& element) { | 
| 218   if (password_autofill_manager_->TextDidChangeInTextField(element)) | 218   if (password_autofill_manager_->TextDidChangeInTextField(element)) | 
| 219     return; | 219     return; | 
| 220 | 220 | 
| 221   ShowSuggestions(element, false, true, false); | 221   ShowSuggestions(element, false, true, false); | 
| 222 | 222 | 
| 223   webkit_glue::FormData form; | 223   webkit_glue::FormData form; | 
| 224   webkit_glue::FormField field; | 224   webkit_glue::FormField field; | 
| 225   if (FindFormAndFieldForNode(element, &form, &field)) { | 225   if (FindFormAndFieldForInputElement(element, &form, &field, REQUIRE_NONE)) { | 
| 226     Send(new AutofillHostMsg_TextFieldDidChange(routing_id(), form, field, | 226     Send(new AutofillHostMsg_TextFieldDidChange(routing_id(), form, field, | 
| 227                                                 base::TimeTicks::Now())); | 227                                                 base::TimeTicks::Now())); | 
| 228   } | 228   } | 
| 229 } | 229 } | 
| 230 | 230 | 
| 231 void AutofillAgent::textFieldDidReceiveKeyDown(const WebInputElement& element, | 231 void AutofillAgent::textFieldDidReceiveKeyDown(const WebInputElement& element, | 
| 232                                                const WebKeyboardEvent& event) { | 232                                                const WebKeyboardEvent& event) { | 
| 233   if (password_autofill_manager_->TextFieldHandlingKeyDown(element, event)) | 233   if (password_autofill_manager_->TextFieldHandlingKeyDown(element, event)) | 
| 234     return; | 234     return; | 
| 235 | 235 | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 392 | 392 | 
| 393 void AutofillAgent::QueryAutofillSuggestions(const WebInputElement& element, | 393 void AutofillAgent::QueryAutofillSuggestions(const WebInputElement& element, | 
| 394                                              bool display_warning_if_disabled) { | 394                                              bool display_warning_if_disabled) { | 
| 395   static int query_counter = 0; | 395   static int query_counter = 0; | 
| 396   autofill_query_id_ = query_counter++; | 396   autofill_query_id_ = query_counter++; | 
| 397   autofill_query_element_ = element; | 397   autofill_query_element_ = element; | 
| 398   display_warning_if_disabled_ = display_warning_if_disabled; | 398   display_warning_if_disabled_ = display_warning_if_disabled; | 
| 399 | 399 | 
| 400   webkit_glue::FormData form; | 400   webkit_glue::FormData form; | 
| 401   webkit_glue::FormField field; | 401   webkit_glue::FormField field; | 
| 402   if (!FindFormAndFieldForNode(element, &form, &field)) { | 402   if (!FindFormAndFieldForInputElement(element, &form, &field, | 
|  | 403                                        REQUIRE_AUTOCOMPLETE)) { | 
| 403     // If we didn't find the cached form, at least let autocomplete have a shot | 404     // If we didn't find the cached form, at least let autocomplete have a shot | 
| 404     // at providing suggestions. | 405     // at providing suggestions. | 
| 405     WebFormControlElementToFormField(element, EXTRACT_VALUE, &field); | 406     WebFormControlElementToFormField(element, EXTRACT_VALUE, &field); | 
| 406   } | 407   } | 
| 407 | 408 | 
| 408   Send(new AutofillHostMsg_QueryFormFieldAutofill( | 409   Send(new AutofillHostMsg_QueryFormFieldAutofill( | 
| 409       routing_id(), autofill_query_id_, form, field)); | 410       routing_id(), autofill_query_id_, form, field)); | 
| 410 } | 411 } | 
| 411 | 412 | 
| 412 void AutofillAgent::FillAutofillFormData(const WebNode& node, | 413 void AutofillAgent::FillAutofillFormData(const WebNode& node, | 
| 413                                          int unique_id, | 414                                          int unique_id, | 
| 414                                          AutofillAction action) { | 415                                          AutofillAction action) { | 
| 415   static int query_counter = 0; | 416   static int query_counter = 0; | 
| 416   autofill_query_id_ = query_counter++; | 417   autofill_query_id_ = query_counter++; | 
| 417 | 418 | 
| 418   webkit_glue::FormData form; | 419   webkit_glue::FormData form; | 
| 419   webkit_glue::FormField field; | 420   webkit_glue::FormField field; | 
| 420   if (!FindFormAndFieldForNode(node, &form, &field)) | 421   if (!FindFormAndFieldForInputElement(node.toConst<WebInputElement>(), &form, | 
|  | 422                                        &field, REQUIRE_AUTOCOMPLETE)) { | 
| 421     return; | 423     return; | 
|  | 424   } | 
| 422 | 425 | 
| 423   autofill_action_ = action; | 426   autofill_action_ = action; | 
| 424   was_query_node_autofilled_ = field.is_autofilled; | 427   was_query_node_autofilled_ = field.is_autofilled; | 
| 425   Send(new AutofillHostMsg_FillAutofillFormData( | 428   Send(new AutofillHostMsg_FillAutofillFormData( | 
| 426       routing_id(), autofill_query_id_, form, field, unique_id)); | 429       routing_id(), autofill_query_id_, form, field, unique_id)); | 
| 427 } | 430 } | 
| 428 | 431 | 
| 429 bool AutofillAgent::FindFormAndFieldForNode(const WebNode& node, |  | 
| 430                                             webkit_glue::FormData* form, |  | 
| 431                                             webkit_glue::FormField* field) { |  | 
| 432   const WebInputElement& element = node.toConst<WebInputElement>(); |  | 
| 433   return FindFormAndFieldForFormControlElement(element, form, field); |  | 
| 434 } |  | 
| 435 |  | 
| 436 }  // namespace autofill | 432 }  // namespace autofill | 
| OLD | NEW | 
|---|