Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Unified Diff: chrome/browser/ui/autofill/autofill_dialog_controller.h

Issue 11636040: AutofillPopupController clarifications + simplifications. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ilya review Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/autofill/autofill_dialog_controller.h
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller.h b/chrome/browser/ui/autofill/autofill_dialog_controller.h
index 0a4a581b1110c6e00d163e62987791fc162d53e4..d0b71532debdb73a686a375f0ddf01eee6e626f7 100644
--- a/chrome/browser/ui/autofill/autofill_dialog_controller.h
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller.h
@@ -15,10 +15,15 @@
#include "base/string16.h"
#include "chrome/browser/autofill/field_types.h"
#include "chrome/browser/autofill/form_structure.h"
+#include "chrome/browser/autofill/personal_data_manager.h"
#include "chrome/browser/ui/autofill/autofill_dialog_comboboxes.h"
+#include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h"
+#include "chrome/browser/ui/autofill/autofill_popup_delegate.h"
#include "content/public/common/ssl_status.h"
#include "ui/base/models/combobox_model.h"
+#include "ui/gfx/native_widget_types.h"
+class AutofillPopupControllerImpl;
class FormGroup;
class GURL;
class Profile;
@@ -27,6 +32,10 @@ namespace content {
class WebContents;
}
+namespace gfx {
+class Rect;
+}
+
namespace autofill {
class AutofillDialogView;
@@ -48,7 +57,7 @@ struct DetailInput {
float expand_weight;
// When non-empty, indicates the value that should be pre-filled into the
// input.
- string16 starting_value;
+ string16 autofilled_value;
};
// Sections of the dialog --- all fields that may be shown to the user fit under
@@ -71,7 +80,7 @@ typedef std::map<const DetailInput*, string16> DetailOutputMap;
// This class drives the dialog that appears when a site uses the imperative
// autocomplete API to fill out a form.
-class AutofillDialogController {
+class AutofillDialogController : public AutofillPopupDelegate {
public:
AutofillDialogController(
content::WebContents* contents,
@@ -108,6 +117,24 @@ class AutofillDialogController {
// whether the Autofill operation should be aborted.
void ViewClosed(DialogAction action);
+ // Called by the view when the user changes the contents of a text field.
+ void UserEditedInput(const DetailInput* input,
+ gfx::NativeView view,
+ const gfx::Rect& content_bounds,
+ const string16& field_contents);
+
+ // Called when focus has changed position within the view.
+ void FocusMoved();
+
+ // AutofillPopupDelegate implementation.
+ virtual void DidSelectSuggestion(int identifier) OVERRIDE;
+ virtual void DidAcceptSuggestion(const string16& value,
+ int identifier) OVERRIDE;
+ virtual void RemoveSuggestion(int identifier) OVERRIDE;
+ virtual void RemoveAutocompleteEntry(const string16& value) OVERRIDE;
+ virtual void ClearPreviewedForm() OVERRIDE;
+ virtual void ControllerDestroyed() OVERRIDE;
+
content::WebContents* web_contents() { return contents_; }
private:
@@ -124,11 +151,6 @@ class AutofillDialogController {
// Initializes |suggested_email_| et al.
void GenerateComboboxModels();
- // Fills in all the DetailInputs structs with guessed values for
- // starting_value. The guesses come from Autofill data, drawing from the most
- // filled out AutofillProfile.
- void PopulateInputsWithGuesses();
-
// Fills in |section|-related fields in |output_| according to the state of
// |view_|.
void FillOutputForSection(DialogSection section);
@@ -146,6 +168,21 @@ class AutofillDialogController {
// Gets the SuggestionsComboboxModel for |section|.
SuggestionsComboboxModel* SuggestionsModelForSection(DialogSection section);
+ // Loads profiles that can suggest data for |type|. |field_contents| is the
+ // part the user has already typed. |inputs| is the rest of section.
+ // Identifying info is loaded into the last three outparams as well as
+ // |popup_guids_|.
+ void GetProfileSuggestions(
+ AutofillFieldType type,
+ const string16& field_contents,
+ const DetailInputs& inputs,
+ std::vector<string16>* popup_values,
+ std::vector<string16>* popup_labels,
+ std::vector<string16>* popup_icons);
+
+ // Returns the PersonalDataManager for |profile_|.
+ PersonalDataManager* GetManager();
+
// The |profile| for |contents_|.
Profile* const profile_;
@@ -178,6 +215,11 @@ class AutofillDialogController {
SuggestionsComboboxModel suggested_billing_;
SuggestionsComboboxModel suggested_shipping_;
+ // The GUIDs for the currently showing unverified profiles popup.
+ std::vector<PersonalDataManager::GUIDPair> popup_guids_;
+
+ AutofillPopupControllerImpl* popup_controller_;
+
scoped_ptr<AutofillDialogView> view_;
DISALLOW_COPY_AND_ASSIGN(AutofillDialogController);

Powered by Google App Engine
This is Rietveld 408576698