Index: chrome/browser/autofill/autofill_external_delegate.h |
diff --git a/chrome/browser/autofill/autofill_external_delegate.h b/chrome/browser/autofill/autofill_external_delegate.h |
index 20d15bb6fc82400d891c92fe9049b5113df89896..6953594412562d720a0dbff49c33ba93be746c07 100644 |
--- a/chrome/browser/autofill/autofill_external_delegate.h |
+++ b/chrome/browser/autofill/autofill_external_delegate.h |
@@ -8,7 +8,9 @@ |
#include <vector> |
+#include "base/compiler_specific.h" |
#include "base/string16.h" |
+#include "webkit/forms/form_data.h" |
#include "webkit/forms/form_field.h" |
class AutofillManager; |
@@ -18,12 +20,6 @@ namespace gfx { |
class Rect; |
} |
-namespace webkit { |
-namespace forms { |
-struct FormData; |
-} |
-} |
- |
// TODO(csharp): A lot of the logic in this class is copied from autofillagent. |
// Once Autofill is moved out of WebKit this class should be the only home for |
// this logic. See http://crbug.com/51644 |
@@ -37,7 +33,7 @@ class AutofillExternalDelegate { |
// When using an external Autofill delegate. Allows Chrome to tell |
// WebKit which Autofill selection has been chosen. |
// TODO(jrg): add feedback mechanism for hover on relevant platforms. |
- void SelectAutofillSuggestionAtIndex(int listIndex); |
+ virtual void SelectAutofillSuggestionAtIndex(int unique_id, int list_index); |
// Records and associates a query_id with web form data. Called |
// when the renderer posts an Autofill query to the browser. |bounds| |
@@ -61,8 +57,20 @@ class AutofillExternalDelegate { |
const std::vector<string16>& autofill_icons, |
const std::vector<int>& autofill_unique_ids); |
+ // Inform the delegate that the text field editing has ended, this is |
+ // used to help record the metrics of when a new popup is shown. |
+ void DidEndTextFieldEditing(); |
+ |
+ // Inform the delegate that an autofill suggestion have been chosen. |
+ void DidAcceptAutofillSuggestions(string16 value, |
+ int unique_id, |
+ unsigned index); |
+ |
+ // Informs the delegate that the Autofill previewed form should be cleared. |
+ virtual void ClearPreviewedForm(); |
+ |
// Hide the Autofill poup. |
- virtual void HideAutofillPopup() = 0; |
+ virtual void HideAutofillPopup(); |
// Platforms that wish to implement an external Autofill delegate |
// MUST implement this. The 1st arg is the tab contents that owns |
@@ -70,11 +78,6 @@ class AutofillExternalDelegate { |
// tab contents. |
static AutofillExternalDelegate* Create(TabContentsWrapper*, |
AutofillManager*); |
- |
- // Inform the delegate that the text field editing has ended, this is |
- // used to help record the metrics of when a new popup is shown. |
- void DidEndTextFieldEditing(); |
- |
protected: |
explicit AutofillExternalDelegate(TabContentsWrapper* tab_contents_wrapper, |
AutofillManager* autofill_manager); |
@@ -95,7 +98,16 @@ class AutofillExternalDelegate { |
const webkit::forms::FormField& field, |
const gfx::Rect& bounds) = 0; |
+ // Handle platform-dependent hiding. |
+ virtual void HideAutofillPopupInternal() = 0; |
+ |
private: |
+ // Fills the form with the Autofill data corresponding to |unique_id|. |
+ // If |is_preview| is true then this is just a preview to show the user what |
+ // would be selected and if |is_preview| is false then the user has selected |
+ // this data. |
+ void FillAutofillFormData(int unique_id, bool is_preview); |
+ |
TabContentsWrapper* tab_contents_wrapper_; // weak; owns me. |
AutofillManager* autofill_manager_; // weak. |
@@ -103,7 +115,8 @@ class AutofillExternalDelegate { |
// out of date responses. |
int autofill_query_id_; |
- // The current field selected by Autofill. |
+ // The current form and field selected by Autofill. |
+ webkit::forms::FormData autofill_query_form_; |
webkit::forms::FormField autofill_query_field_; |
// Should we display a warning if Autofill is disabled? |
@@ -113,6 +126,12 @@ class AutofillExternalDelegate { |
// currently editing? Used to keep track of state for metrics logging. |
bool has_shown_autofill_popup_for_current_edit_; |
+ // The menu index of the "Clear" menu item. |
+ int suggestions_clear_index_; |
+ |
+ // The menu index of the "Autofill options..." menu item. |
+ int suggestions_options_index_; |
+ |
DISALLOW_COPY_AND_ASSIGN(AutofillExternalDelegate); |
}; |