Home | History | Annotate | Download | only in webdata
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_BACKEND_H_
      6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_BACKEND_H_
      7 
      8 class WebDatabase;
      9 
     10 namespace autofill {
     11 
     12 class AutofillWebDataServiceObserverOnDBThread;
     13 
     14 // Interface for doing Autofill work directly on the DB thread (used by
     15 // Sync, mostly), without fully exposing the AutofillWebDataBackend to clients.
     16 class AutofillWebDataBackend {
     17  public:
     18   virtual ~AutofillWebDataBackend() {}
     19 
     20   // Get a raw pointer to the WebDatabase.
     21   virtual WebDatabase* GetDatabase() = 0;
     22 
     23   // Add an observer to be notified of changes on the DB thread.
     24   virtual void AddObserver(
     25       AutofillWebDataServiceObserverOnDBThread* observer) = 0;
     26 
     27   // Remove an observer.
     28   virtual void RemoveObserver(
     29       AutofillWebDataServiceObserverOnDBThread* observer) = 0;
     30 
     31   // Remove expired elements from the database and commit if needed.
     32   virtual void RemoveExpiredFormElements() = 0;
     33 
     34   // Notifies listeners on the UI thread that multiple changes have been made to
     35   // to Autofill records of the database.
     36   // NOTE: This method is intended to be called from the DB thread. It
     37   // asynchronously notifies listeners on the UI thread.
     38   virtual void NotifyOfMultipleAutofillChanges() = 0;
     39 };
     40 
     41 } // namespace autofill
     42 
     43 #endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_BACKEND_H_
     44