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

Unified Diff: chrome/browser/webdata/web_data_service.h

Issue 10908065: Introduce a couple of abstract bases for WebDataService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Respond to comments Created 8 years, 3 months 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/webdata/web_data_service.h
diff --git a/chrome/browser/webdata/web_data_service.h b/chrome/browser/webdata/web_data_service.h
index 4e87e325f6b6066cc6add9969ddc001437132c9f..e1e6087e293b196a566efb9c456747401dd5bcbd 100644
--- a/chrome/browser/webdata/web_data_service.h
+++ b/chrome/browser/webdata/web_data_service.h
@@ -19,7 +19,10 @@
#include "base/memory/ref_counted.h"
#include "base/sequenced_task_runner_helpers.h"
#include "base/synchronization/lock.h"
-#include "chrome/browser/profiles/refcounted_profile_keyed_service.h"
+#include "chrome/browser/api/webdata/autofill_web_data_service.h"
+#include "chrome/browser/api/webdata/web_data_results.h"
+#include "chrome/browser/api/webdata/web_data_service_base.h"
+#include "chrome/browser/api/webdata/web_data_service_consumer.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_id.h"
#include "chrome/browser/webdata/keyword_table.h"
@@ -28,9 +31,7 @@
class AutocompleteSyncableService;
class AutofillChange;
-class AutofillProfile;
class AutofillProfileSyncableService;
-class CreditCard;
struct DefaultWebIntentService;
class GURL;
#if defined(OS_WIN)
@@ -45,12 +46,6 @@ namespace base {
class Thread;
}
-namespace webkit {
-namespace forms {
-struct FormField;
-}
-}
-
namespace webkit_glue {
struct WebIntentServiceData;
}
@@ -71,28 +66,6 @@ struct WebIntentServiceData;
//
////////////////////////////////////////////////////////////////////////////////
-//
-// Result types
-//
-typedef enum {
- BOOL_RESULT = 1, // WDResult<bool>
- KEYWORDS_RESULT, // WDResult<WDKeywordsResult>
- INT64_RESULT, // WDResult<int64>
-#if defined(OS_WIN)
- PASSWORD_IE7_RESULT, // WDResult<IE7PasswordInfo>
-#endif
- WEB_APP_IMAGES, // WDResult<WDAppImagesResult>
- TOKEN_RESULT, // WDResult<std::vector<std::string>>
- AUTOFILL_VALUE_RESULT, // WDResult<std::vector<string16>>
- AUTOFILL_CHANGES, // WDResult<std::vector<AutofillChange>>
- AUTOFILL_PROFILE_RESULT, // WDResult<AutofillProfile>
- AUTOFILL_PROFILES_RESULT, // WDResult<std::vector<AutofillProfile*>>
- AUTOFILL_CREDITCARD_RESULT, // WDResult<CreditCard>
- AUTOFILL_CREDITCARDS_RESULT, // WDResult<std::vector<CreditCard*>>
- WEB_INTENTS_RESULT, // WDResult<std::vector<WebIntentServiceData>>
- WEB_INTENTS_DEFAULTS_RESULT, // WDResult<std::vector<DefaultWebIntentService>>
-} WDResultType;
-
typedef std::vector<AutofillChange> AutofillChangeList;
// Result from GetWebAppImages.
@@ -125,70 +98,13 @@ struct WDKeywordsResult {
bool did_default_search_provider_change;
};
-//
-// The top level class for a result.
-//
-class WDTypedResult {
- public:
- virtual ~WDTypedResult() {}
-
- // Return the result type.
- WDResultType GetType() const {
- return type_;
- }
-
- protected:
- explicit WDTypedResult(WDResultType type) : type_(type) {
- }
-
- private:
- WDResultType type_;
- DISALLOW_COPY_AND_ASSIGN(WDTypedResult);
-};
-
-// A result containing one specific pointer or literal value.
-template <class T> class WDResult : public WDTypedResult {
- public:
-
- WDResult(WDResultType type, const T& v) : WDTypedResult(type), value_(v) {
- }
-
- virtual ~WDResult() {
- }
-
- // Return a single value result.
- T GetValue() const {
- return value_;
- }
-
- private:
- T value_;
-
- DISALLOW_COPY_AND_ASSIGN(WDResult);
-};
-
-template <class T> class WDObjectResult : public WDTypedResult {
- public:
- explicit WDObjectResult(WDResultType type) : WDTypedResult(type) {
- }
-
- T* GetValue() const {
- return &value_;
- }
-
- private:
- // mutable to keep GetValue() const.
- mutable T value_;
- DISALLOW_COPY_AND_ASSIGN(WDObjectResult);
-};
-
class WebDataServiceConsumer;
-class WebDataService : public RefcountedProfileKeyedService {
+class WebDataService
+ : public WebDataServiceBase,
+ public AutofillWebData,
+ public RefcountedProfileKeyedService {
public:
- // All requests return an opaque handle of the following type.
- typedef int Handle;
-
//////////////////////////////////////////////////////////////////////////////
//
// Internal requests
@@ -291,6 +207,10 @@ class WebDataService : public RefcountedProfileKeyedService {
WebDataService();
+ // WebDataServiceBase implementation.
+ virtual void CancelRequest(Handle h) OVERRIDE;
+ virtual content::NotificationSource GetNotificationSource() OVERRIDE;
+
// Notifies listeners on the UI thread that multiple changes have been made to
// to Autofill records of the database.
// NOTE: This method is intended to be called from the DB thread. It
@@ -314,10 +234,6 @@ class WebDataService : public RefcountedProfileKeyedService {
// be used to temporarily reduce the browser process' memory footprint.
void UnloadDatabase();
- // Cancel any pending request. You need to call this method if your
- // WebDataServiceConsumer is about to be deleted.
- void CancelRequest(Handle h);
-
virtual bool IsDatabaseLoaded();
virtual WebDatabase* GetDatabase();
@@ -457,67 +373,36 @@ class WebDataService : public RefcountedProfileKeyedService {
//
//////////////////////////////////////////////////////////////////////////////
- // Schedules a task to add form fields to the web database.
+ // AutofillWebData implementation.
virtual void AddFormFields(
- const std::vector<webkit::forms::FormField>& fields);
-
- // Initiates the request for a vector of values which have been entered in
- // form input fields named |name|. The method OnWebDataServiceRequestDone of
- // |consumer| gets called back when the request is finished, with the vector
- // included in the argument |result|.
- Handle GetFormValuesForElementName(const string16& name,
- const string16& prefix,
- int limit,
- WebDataServiceConsumer* consumer);
-
- // Removes form elements recorded for Autocomplete from the database.
- void RemoveFormElementsAddedBetween(const base::Time& delete_begin,
- const base::Time& delete_end);
- void RemoveExpiredFormElements();
- void RemoveFormValueForElementName(const string16& name,
- const string16& value);
-
- // Schedules a task to add an Autofill profile to the web database.
- void AddAutofillProfile(const AutofillProfile& profile);
-
- // Schedules a task to update an Autofill profile in the web database.
- void UpdateAutofillProfile(const AutofillProfile& profile);
-
- // Schedules a task to remove an Autofill profile from the web database.
- // |guid| is the identifer of the profile to remove.
- void RemoveAutofillProfile(const std::string& guid);
-
- // Initiates the request for all Autofill profiles. The method
- // OnWebDataServiceRequestDone of |consumer| gets called when the request is
- // finished, with the profiles included in the argument |result|. The
- // consumer owns the profiles.
- Handle GetAutofillProfiles(WebDataServiceConsumer* consumer);
-
- // Remove "trashed" profile guids from the web database and optionally send
- // notifications to tell Sync that the items have been removed.
- void EmptyMigrationTrash(bool notify_sync);
-
- // Schedules a task to add credit card to the web database.
- void AddCreditCard(const CreditCard& credit_card);
-
- // Schedules a task to update credit card in the web database.
- void UpdateCreditCard(const CreditCard& credit_card);
-
- // Schedules a task to remove a credit card from the web database.
- // |guid| is identifer of the credit card to remove.
- void RemoveCreditCard(const std::string& guid);
-
- // Initiates the request for all credit cards. The method
- // OnWebDataServiceRequestDone of |consumer| gets called when the request is
- // finished, with the credit cards included in the argument |result|. The
- // consumer owns the credit cards.
- Handle GetCreditCards(WebDataServiceConsumer* consumer);
+ const std::vector<webkit::forms::FormField>& fields) OVERRIDE;
+ virtual Handle GetFormValuesForElementName(
+ const string16& name,
+ const string16& prefix,
+ int limit,
+ WebDataServiceConsumer* consumer) OVERRIDE;
+ virtual void RemoveExpiredFormElements() OVERRIDE;
+ virtual void RemoveFormValueForElementName(const string16& name,
+ const string16& value) OVERRIDE;
+ virtual void AddAutofillProfile(const AutofillProfile& profile) OVERRIDE;
+ virtual void UpdateAutofillProfile(const AutofillProfile& profile) OVERRIDE;
+ virtual void RemoveAutofillProfile(const std::string& guid) OVERRIDE;
+ virtual Handle GetAutofillProfiles(WebDataServiceConsumer* consumer) OVERRIDE;
+ virtual void EmptyMigrationTrash(bool notify_sync) OVERRIDE;
+ virtual void AddCreditCard(const CreditCard& credit_card) OVERRIDE;
+ virtual void UpdateCreditCard(const CreditCard& credit_card) OVERRIDE;
+ virtual void RemoveCreditCard(const std::string& guid) OVERRIDE;
+ virtual Handle GetCreditCards(WebDataServiceConsumer* consumer) OVERRIDE;
// Removes Autofill records from the database.
void RemoveAutofillProfilesAndCreditCardsModifiedBetween(
const base::Time& delete_begin,
const base::Time& delete_end);
+ // Removes form elements recorded for Autocomplete from the database.
+ void RemoveFormElementsAddedBetween(const base::Time& delete_begin,
+ const base::Time& delete_end);
+
// Returns the syncable service for Autofill addresses and credit cards stored
// in this table. The returned service is owned by |this| object.
virtual AutofillProfileSyncableService*
@@ -725,26 +610,4 @@ class WebDataService : public RefcountedProfileKeyedService {
DISALLOW_COPY_AND_ASSIGN(WebDataService);
};
-////////////////////////////////////////////////////////////////////////////////
-//
-// WebDataServiceConsumer.
-//
-// All requests to the web data service are asynchronous. When the request has
-// been performed, the data consumer is notified using the following interface.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-class WebDataServiceConsumer {
- public:
-
- // Called when a request is done. h uniquely identifies the request.
- // result can be NULL, if no result is expected or if the database could
- // not be opened. The result object is destroyed after this call.
- virtual void OnWebDataServiceRequestDone(WebDataService::Handle h,
- const WDTypedResult* result) = 0;
-
- protected:
- virtual ~WebDataServiceConsumer() {}
-};
-
#endif // CHROME_BROWSER_WEBDATA_WEB_DATA_SERVICE_H__
« no previous file with comments | « chrome/browser/webdata/autofill_web_data_service_impl.cc ('k') | chrome/browser/webdata/web_data_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698