| Index: chrome/browser/autofill/autofill_manager.h
|
| diff --git a/chrome/browser/autofill/autofill_manager.h b/chrome/browser/autofill/autofill_manager.h
|
| index f81e96491ecd19561e1b42da34f9b48b7f23f7f5..4115187595fbdc0b1ffb6f53b0d90c6dae36f418 100644
|
| --- a/chrome/browser/autofill/autofill_manager.h
|
| +++ b/chrome/browser/autofill/autofill_manager.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/basictypes.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/gtest_prod_util.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/string16.h"
|
| @@ -47,10 +48,10 @@ struct FormField;
|
| // Manages saving and restoring the user's personal information entered into web
|
| // forms.
|
| class AutofillManager : public TabContentsObserver,
|
| - public AutofillDownloadManager::Observer {
|
| + public AutofillDownloadManager::Observer,
|
| + public base::RefCounted<AutofillManager> {
|
| public:
|
| explicit AutofillManager(TabContentsWrapper* tab_contents);
|
| - virtual ~AutofillManager();
|
|
|
| // Registers our Enable/Disable Autofill pref.
|
| static void RegisterUserPrefs(PrefService* prefs);
|
| @@ -65,6 +66,8 @@ class AutofillManager : public TabContentsObserver,
|
|
|
| protected:
|
| // Only test code should subclass AutofillManager.
|
| + friend class base::RefCounted<AutofillManager>;
|
| + virtual ~AutofillManager();
|
|
|
| // The string/int pair is composed of the guid string and variant index
|
| // respectively. The variant index is an index into the multi-valued item
|
| @@ -84,6 +87,14 @@ class AutofillManager : public TabContentsObserver,
|
| // Reset cache.
|
| void Reset();
|
|
|
| + // Logs quality metrics for the |submitted_form| and uploads the form data
|
| + // to the crowdsourcing server, if appropriate.
|
| + virtual void UploadFormDataAsyncCallback(
|
| + const FormStructure* submitted_form,
|
| + const base::TimeTicks& load_time,
|
| + const base::TimeTicks& interaction_time,
|
| + const base::TimeTicks& submission_time);
|
| +
|
| // Maps GUIDs to and from IDs that are used to identify profiles and credit
|
| // cards sent to and from the renderer process.
|
| virtual int GUIDToID(const GUIDPair& guid) const;
|
| @@ -110,6 +121,12 @@ class AutofillManager : public TabContentsObserver,
|
| return external_delegate_;
|
| }
|
|
|
| + // Processes the submitted |form|, saving any new Autofill data and uploading
|
| + // the possible field types for the submitted fields to the crowdsouring
|
| + // server. Returns false if this form is not relevant for Autofill.
|
| + bool OnFormSubmitted(const webkit_glue::FormData& form,
|
| + const base::TimeTicks& timestamp);
|
| +
|
| private:
|
| // TabContentsObserver:
|
| virtual void DidNavigateMainFramePostCommit(
|
| @@ -121,8 +138,6 @@ class AutofillManager : public TabContentsObserver,
|
| virtual void OnLoadedServerPredictions(
|
| const std::string& response_xml) OVERRIDE;
|
|
|
| - void OnFormSubmitted(const webkit_glue::FormData& form,
|
| - const base::TimeTicks& timestamp);
|
| void OnFormsSeen(const std::vector<webkit_glue::FormData>& forms,
|
| const base::TimeTicks& timestamp);
|
| void OnTextFieldDidChange(const webkit_glue::FormData& form,
|
| @@ -223,10 +238,6 @@ class AutofillManager : public TabContentsObserver,
|
| // Parses the forms using heuristic matching and querying the Autofill server.
|
| void ParseForms(const std::vector<webkit_glue::FormData>& forms);
|
|
|
| - // Uses existing personal data to determine possible field types for the
|
| - // |submitted_form|.
|
| - void DeterminePossibleFieldTypesForUpload(FormStructure* submitted_form);
|
| -
|
| // Imports the form data, submitted by the user, into |personal_data_|.
|
| void ImportFormData(const FormStructure& submitted_form);
|
|
|
|
|